www.meckerwiese.de.vu Forum für den Programmierwettbewerb 2007
|
|
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
Steffen Neuling
Geschlecht:  Anmeldungsdatum: 25.02.2007 Beiträge: 4
|
Verfasst am: 27.02.2007, 14:23 Titel: Bug 2? |
|
|
Ich hab da ein Problem mit der Positionsberechnung der Entitäten unter Annahme von Winkel und Geschwindigkeit. Im Code liest man nach (Entity.class):
final protected void step () {
prevpos.x = pos.x;
prevpos.y = pos.y;
double vx = Math.sin(lookdir), vy = Math.cos(lookdir);
Tile t = f.getTile(pos.x, pos.y);
double fac = Math.max(0.5, t!=null?t.getSpeedFactor():0.5);
pos.x+=vx*speed*fac;
pos.y+=vy*speed*fac;
}
Ich kenn das so, dass man die Polarkoordinaten (alpha, r) in R^2 wie folgt in "normale" Koordinaten umrechnet:
x = cos(alpha) * r
y = sin(alpha) * r
Leider stimmt dies nicht mit der Berechnung in step() überein und verwirrt mich beim Programmieren ein wenig. Ist das so gewollt? Wenn ja, dann nehme ich mal an, dass ihr die y-Achse als Bezugsachse für den Winkel verwendet?
Ich wäre euch für eine baldige Antwort sehr verbunden.
Gruss,
Steffen |
|
| Nach oben |
|
 |
zet Forumsjunki
Anmeldungsdatum: 05.02.2007 Beiträge: 85
|
Verfasst am: 27.02.2007, 23:30 Titel: |
|
|
| Hm. Als ich das implementiert hab, hab ich da nicht so dran gedacht. Sorry... hatte in dem Moment wohl gewollt, dass winkel 0 nach oben zeigt. Ähm ja, im nachhinein nicht so klug. Aber jetzt wohl nicht mehr zu ändern. |
|
| Nach oben |
|
 |
Steffen Neuling
Geschlecht:  Anmeldungsdatum: 25.02.2007 Beiträge: 4
|
Verfasst am: 28.02.2007, 09:26 Titel: |
|
|
| Mittlerweile hab ich's hinbekommen. Es war dann doch nur eine Vertauschung der x- und y-Koordinate in der entsprechenden Funktion meiner Vektor-Klasse. |
|
| Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|
|