Chillosoph
Ensign
- Registriert
- Juli 2010
- Beiträge
- 139
Hi @all!
Ich hoffe, dass mein Problem nicht zu speziell für dieses Forum ist, ich habe bereits in das Entwicklerforum gepostet aber leider keine Antwort erhalten.
Ich versuche einen Sokoban Klon in Java zu schreiben und verwende dafür das Slick 2D Plugin. Da Spieleprogrammierung für mich Neuland ist hangel ich mich mehr oder weniger an einem Tetristutorial entlang.
Probleme habe ich nun beim rendern des Levels bekommen. Die Levelstruktur ist in einem 2-Dimensionalen Array hinterlegt. Jedes Zeichen steht für ein Element, z.B. '#' für ein Stück Mauer. Dieses Array wird dann durchlaufen und je nach Zeichen das entsprechende Stück Textur gerendert. Soweit die Theorie. Leider funktioniert das rendern nicht, die Funktion sampleTexture.draw() macht einfach nichts. Nun bin ich mit meinem Latein am Ende. Habt ihr vielleicht eine Idee woran das liegen könnte? Falls noch Fragen auftauchen, nur zu!
Nachstehend noch der Code:
Variablen:
renderX: Startpunkt der x-Koordinate
renderY: Startpunkt der y-Koordinate
renderOffsetX: #Pixel, um die das nächste Stück Textur in der Horizontalen versetzt wird
renderOffsetY: #Pixel, um die das nächste Stück Textur in der Vertikalen versetzt wird
'#' = Mauer, ' ' = freie Fläche, '$' = Kiste, '@' = Startposition der Spielfigur
Ich hoffe, dass mein Problem nicht zu speziell für dieses Forum ist, ich habe bereits in das Entwicklerforum gepostet aber leider keine Antwort erhalten.
Ich versuche einen Sokoban Klon in Java zu schreiben und verwende dafür das Slick 2D Plugin. Da Spieleprogrammierung für mich Neuland ist hangel ich mich mehr oder weniger an einem Tetristutorial entlang.
Probleme habe ich nun beim rendern des Levels bekommen. Die Levelstruktur ist in einem 2-Dimensionalen Array hinterlegt. Jedes Zeichen steht für ein Element, z.B. '#' für ein Stück Mauer. Dieses Array wird dann durchlaufen und je nach Zeichen das entsprechende Stück Textur gerendert. Soweit die Theorie. Leider funktioniert das rendern nicht, die Funktion sampleTexture.draw() macht einfach nichts. Nun bin ich mit meinem Latein am Ende. Habt ihr vielleicht eine Idee woran das liegen könnte? Falls noch Fragen auftauchen, nur zu!
Nachstehend noch der Code:
Variablen:
renderX: Startpunkt der x-Koordinate
renderY: Startpunkt der y-Koordinate
renderOffsetX: #Pixel, um die das nächste Stück Textur in der Horizontalen versetzt wird
renderOffsetY: #Pixel, um die das nächste Stück Textur in der Vertikalen versetzt wird
'#' = Mauer, ' ' = freie Fläche, '$' = Kiste, '@' = Startposition der Spielfigur
Code:
@Override
public void render(GameContainer gamecontainer, StateBasedGame sbg, Graphics gc) throws SlickException {
ingameBackground.draw(0, 0);
int i, j;
for (i = 0; i < lvlLoader.lvlSize; i++) {
for (j = 0; j < lvlLoader.lvlSize; j++) {
char tempChar = lvlLoader.lvlArray[i][j];
if (tempChar == '#') {
lvlTextureWall.draw(renderX + renderOffsetX, renderY + renderOffsetY);
}
if (tempChar == ' ') {
lvlTextureGras.draw(renderX + renderOffsetX, renderY + renderOffsetY);
}
if (tempChar == '$') {
lvlTextureBox.draw(renderX + renderOffsetX, renderY + renderOffsetY);
}
if (tempChar == '@') {
lvlTextureGras.draw(renderX + renderOffsetX, renderY + renderOffsetY);
//Spielfigur rendern, fehlt noch in textures.png
}
renderOffsetX += 50;
}
renderOffsetY += 50;
renderOffsetX = 0;
}
}