Vordefinierte Bewegungen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hallo!

ich wollte wissen, wie man vordefinierte bewegungen erstellet. Z.B.: ein ball soll 100 pixel nach rechts fahren, dann 50 pixel nach oben, dann 30 pixel nach rechts und dann wieder 50 pixel nach unten. ich will es in einem applet machen.

danke im voraus!
 

Hansdampf

Bekanntes Mitglied
oben:1
rechts:2
unten:3;
links:4;
stehenbleiben:0;

100+50+30+50=230;
int[] richt=new int[230];
int index=0;
for(int i=0;i<100;i++){
richt[index]=rechts;
index++;
}
for(int i=0;i<50;i++){
richt[index]=oben;
index++;
}
for(int i=0;i<30;i++){
richt[index]=rechts;
index++;
}
for(int i=0;i<50;i++){
richt[index]=unten;
index++;
}

...
if(richt[jetzt%richt.length]==unten)...

geht auch schöner, willst du aber bestimmt nicht.
 

0xdeadbeef

Top Contributor
Gerade in diesem einfachen Fall erscheint mit der Ansatz mit dem Array unnötig aufwendig.

Allgemein würde man sowieso einen Ansatz mit Wegpunkten nehmen. Solange sie wie im einfachen Beispiel nur eine Korrdinaten ändert, kann man dann in jeder Bewegungsphase diese Koordinate um ein Delta erhöhen, bis der Wegpunkt erreicht ist, dann wechselt man zum nächsten Wegpunkt.

Im allgemeinen werden sich aber oft auch zwei Korrdinaten ändern, dann kann man einen Bresenham-Algorithmus verwenden - oder man rechnet sich halt ein deltaX und deltaY als double aus.

Für komplexere Pfade, bei denen sich ein Objekt auf möglichst "runden" Bahnen durch Wegpunkte bewegt, könnte man mit Spline-Interpolation arbeiten.
 

Hansdampf

Bekanntes Mitglied
0xdeadbeef hat gesagt.:
Gerade in diesem einfachen Fall erscheint mit der Ansatz mit dem Array unnötig aufwendig.
gerade in diesem einfachen Fall ist es genau richtig.
wie würdest du denn mit deinen einfachen Methoden z.B. ein "Stehenbleiben" machen? (brauchte er zwar nicht, aber wenn?)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben