Ich versuch hier grade eine hintergrundgrafik unendlich zu wiederholen, wenn sich der spieler bewegt.
das klappt aber einfach nicht so richtig.
das soll in x und y richtung passieren. bis jetzt hab ich versucht die grafik 4 mal zu zeichnen, und immer die richtige grafik an die entsprechende stelle zu verschieben, je nachdem in welche richtung die bewegung verläuft:
die folgende methode wird jedes mal aufgerufen wenn es keine kollision gibt. dx und dy sind entweder 0,1 oder -1.
level.pos ist die position die sich bei tastendruck verändert, der spieler bleibt dabei immer in der mitte.
mit nx und ny hab ich versucht festzustellen ob die grafiken rechts oder links gezeichnet werden sollen.
wenn sich der spieler nur in x richtung bewegen kann wär das kein problem, aber hier klappt das nicht.
also hat jemand eine idee wie man das macht?
das klappt aber einfach nicht so richtig.
das soll in x und y richtung passieren. bis jetzt hab ich versucht die grafik 4 mal zu zeichnen, und immer die richtige grafik an die entsprechende stelle zu verschieben, je nachdem in welche richtung die bewegung verläuft:
Code:
if(level.pos.getX()<=0)
{
nx=1;
}
else
{
nx=-1;
}
if(level.pos.getY()<=0)
{
ny=1;
}
else
{
ny=-1;
}
bg.drawImage(level.ground,level.bgx,level.bgy,null);
bg.drawImage(level.ground,level.bgx+(bgWidth*nx),level.bgy,null);
bg.drawImage(level.ground,level.bgx+bgWidth*nx,level.bgy+bgHeight*ny,null);
bg.drawImage(level.ground,level.bgx,level.bgy+bgHeight*ny,null);
die folgende methode wird jedes mal aufgerufen wenn es keine kollision gibt. dx und dy sind entweder 0,1 oder -1.
Code:
public void bgMove()
{
bgx+=dx*playerSpeed;
if(bgx>ground.getWidth(null) || bgx<=-ground.getWidth(null) )
{
bgx=0;
}
bgy+=dy*playerSpeed;
if(bgy>ground.getHeight(null) || bgy<=-ground.getHeight(null) )
{
bgy=0;
}
}
level.pos ist die position die sich bei tastendruck verändert, der spieler bleibt dabei immer in der mitte.
mit nx und ny hab ich versucht festzustellen ob die grafiken rechts oder links gezeichnet werden sollen.
wenn sich der spieler nur in x richtung bewegen kann wär das kein problem, aber hier klappt das nicht.
also hat jemand eine idee wie man das macht?