| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: May 2002
Beiträge: 2
|
Für ein kleines Spielchen bräuchte ich Ball-Objekte, die ständig auf- und abhüpfen (ein bisschen gravity-mässig). Soweit kein Problem. Ich benutze den Code unten, um die Bälle hüpfen zu lassen. Die Variable 'elastic' bestimmt dabei den Abprall-Faktor. Wenn auf 1 gesetzt, erreicht der Ball wieder genau die selbe Höhe wie zuvor (hüpft also ewig auf und ab, wie gewünscht). Aber hier ist der Haken: jeder der Bälle erscheint zu Anfang an einer zufälligen Y-Positon, soll aber, nachdem er das erste mal vom Boden abgeprallt ist, eine ganze bestimmte Höhe erreichen und dann ständig zwischen dieser gewünschten Höhe auf- und abhüpfen. Ich dachte, das liesse sich eventuell lösen, indem ich Bällen, die unterhalb der gewünschten Maximalhöhe erscheinen, einen 'elastic'-Wert von über 1 gebe (für ein bisschen extra-Schwung) und Bällen, die zu hoch beginnen, einen niedrigeren Wert, damit sie nach dem Abprallen nicht mehr so hoch hüfen und exakt die gewünschte Höhe erreichen. Nach dem ersten Abprallen hätte ich den 'elastic'-Wert dann wieder auf 1 gesetzt, damit die Bälle ständig zwischen der gewünschten Höhe und dem Boden auf und ab hüpfen. Jetzt bräuchte ich aber mal eben Hilfe: wie kann ich jetzt für jeden Ball den 'elastic'-Wert (also den Abprallfaktor) so berechnen, das der Ball beim ersten Abprallen exakt eine gewünschte Höhe erreicht? Oder gibt es vielleicht einen besseren Weg, das zu erreichen? Code: gravity = 75;
elastic = 1; // bounce factor 1 = ball will reach same height again
vx = 40; // x speed
ballRadius = _height/2;
screenWidth = 480;
screenHeight = 390;
this.onEnterFrame = move;
function move()
{
x = _x; y = _y;
vy += gravity/10; x += vx/10; y += vy/10;
if (y < ballRadius) { y = ballRadius; vy = -(vy*elastic); }
else if (y > screenHeight-ballRadius) { y = screenHeight-ballRadius; vy = -(vy*elastic); }
if (x < ballRadius) { x = ballRadius; vx = -(vx*elastic); }
else if (x > screenWidth-ballRadius) { x = screenWidth-ballRadius; vx = -(vx*elastic); }
_x = x; _y = y;
} |
| | |
| | #2 (permalink) |
| .--. .. ..- ... Registriert seit: Jul 2002 Ort: munich
Beiträge: 1.345
|
du musst am Anfang eine vy mitgeben, denn wenn der Ball irgendwo eingeblendet wird, wenn er schon fällt, dann hat er bereits eine Geschwindigkeit ... den richtigen vy-Wert bekommst du über die gravity und die Fallhöhe berechnet (Physik )elasticy > 1 würde ich nicht machen, ... sonst wird der Ball immer stärker hinundher springen ...
__________________ one out of many |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Sep 2003
Beiträge: 3
|
hi, den elastic wert fuer eine bstimmte hoehe bekommst du ja durch: ActionScript:
wenn der ball ein mal eine grenze erreicht hat, soll elastic, hoffe ich hab das verstanden, der wert 1 zugewiesen bekommen. ActionScript:
ich denk mal, so muesste es funkioniern |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |