SparkMonkay
Commander
- Registriert
- Feb. 2013
- Beiträge
- 2.337
Moinsen,
ich bin mit meinen Klausuren durch und hatte vor etwas kleines zu programmieren, da kam ich auf die Idee ein kleines Spiel zu programmieren.
Aktuell sitze ich an der Grafik wie der Titel es schon sagt. Wir haben folgendes Szenario: Ich bin auf einer Karte mit der Breite X und der Höhe Y un mein Mänchen darf sich von (0,0) bis (X,Y) frei durch das Teil bewegen. Jedoch wenn ich zu nah an die Ränder gege bekomme ich ArrayOutOfBounds Exceptions ab. Somit kam ich auf die Idee für die Ecken und Kanten eigene Zeichen-Methoden zu schreiben, damit ich das umgehe.
Aktuell habe ich die für die obere linke Ecke aber die obere Kante will mir nicht gelingen, geschweige denn eine anderen Ecken. Ich weiß nicht warum, ich sitze an einer Ecke bzw. Kante schon über einer Stunde, vielleicht sieht jemand den Fehler.
Hier der Teil meines Programms:
Ich weiß nicht, warum aber es werden nur die ersten beiden if-Abfragen bearbeitet, bzw. obwohl ich die bed. für die dritte if-Abfrage erfülle geht er nicht da rein...
Außerdem wenn es Verbesserungsvorschläge gibt, dann immer her damit
Ich bin mir etwas unsicher ob es so sein sollte, dass ich 9 if abfragen hier haben soll.
Danke für eure Hilfe!
ich bin mit meinen Klausuren durch und hatte vor etwas kleines zu programmieren, da kam ich auf die Idee ein kleines Spiel zu programmieren.
Aktuell sitze ich an der Grafik wie der Titel es schon sagt. Wir haben folgendes Szenario: Ich bin auf einer Karte mit der Breite X und der Höhe Y un mein Mänchen darf sich von (0,0) bis (X,Y) frei durch das Teil bewegen. Jedoch wenn ich zu nah an die Ränder gege bekomme ich ArrayOutOfBounds Exceptions ab. Somit kam ich auf die Idee für die Ecken und Kanten eigene Zeichen-Methoden zu schreiben, damit ich das umgehe.
Aktuell habe ich die für die obere linke Ecke aber die obere Kante will mir nicht gelingen, geschweige denn eine anderen Ecken. Ich weiß nicht warum, ich sitze an einer Ecke bzw. Kante schon über einer Stunde, vielleicht sieht jemand den Fehler.
Hier der Teil meines Programms:
Code:
public void drawFields(GraphicsContext gc)
{
//grenzen für die Schleifen es werden 40 Elemente in der horizontalen und 26 in der vertikalen gezeichnet
int limitX=player.x+20;
int limitY=player.y+13;
//Die Variablen für die Position der Elemente auf den Bildschirmen
int grapX=0;
int grapY=0;
//draw center of map
if( (player.x - 20) >= 0 && (player.x + 20) <= x && (player.y - 13) >= 0 && (player.y + 13) <= y)
{
for (int countX = player.x - 20; countX < limitX; countX++)
{
for (int countY = player.y - 13; countY < limitY; countY++)
{
gc.drawImage(map[countX][countY][0].image, grapX, grapY);
grapY += 32;
}
grapY = 0;
grapX += 32;
}
//der Spieler
gc.drawImage(player.image, (1280 / 2), (800 / 2), 32, 64);
}
//TOP LEFT CORNER
else if( player.x < 19 && player.y < 14)
{
for( int countX=0; countX< 40; countX++)
{
for( int countY=0; countY<26; countY++)
{
gc.drawImage(map[countX][countY][0].image, grapX, grapY);
grapY += 32;
}
grapY =0;
grapX += 32;
}
gc.drawImage(player.image, player.x*32, player.y*32, 32, 64);
}
//TOP RIGHT CORNER
else if( player.x > x-20 && player.y < 14)
{
for( int countX=limitX-20; countX< 40; countX++)
{
for( int countY=0; countY<26; countY++)
{
gc.drawImage(map[countX][countY][0].image, grapX, grapY);
grapY += 32;
}
grapY =0;
grapX += 32;
}
gc.drawImage(player.image, player.x*32, player.y*32, 32, 64);
}
//top
else if( player.y > 14)
{
for( int countX=player.x - 20; countX< limitX; countX++)
{
for( int countY=0; countY< 26; countY++)
{
gc.drawImage(map[countX][countY][0].image, grapX, grapY);
grapY += 32;
}
grapY =0;
grapX += 32;
}
gc.drawImage(player.image, 1280/2, player.y*32, 32, 64);
}
}
Ich weiß nicht, warum aber es werden nur die ersten beiden if-Abfragen bearbeitet, bzw. obwohl ich die bed. für die dritte if-Abfrage erfülle geht er nicht da rein...
Außerdem wenn es Verbesserungsvorschläge gibt, dann immer her damit
Ich bin mir etwas unsicher ob es so sein sollte, dass ich 9 if abfragen hier haben soll.
Danke für eure Hilfe!