Hallo!
eine Frage:
Möchte einen Ball im Kreis rotieren lassen.
Hab dafür 360 Positionen vorberechnet. leider ruckelt das
Ganze ein wenig.
Gibt es eine Möglichkeit das Ganze etwas Smoothiger zu machen.
Oder wie würdet Ihr das realisieren?
Vielen dank...
Ball im Kreis rotieren ohne tu ruckeln
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
wie sieht denn deine oberfläche und alles aus?
ruckeln liegt bestimmt nicht an zugriff auf 360 vorausberechnete positionen,
das ist eigentlich sogar verdammt schnell....
guggst du:
http://www.purebasic.fr/german/viewtopi ... 5892#65892
...im vorletzten post ist der code auf 4.0 aktualisiert...
ruckeln liegt bestimmt nicht an zugriff auf 360 vorausberechnete positionen,
das ist eigentlich sogar verdammt schnell....
guggst du:
http://www.purebasic.fr/german/viewtopi ... 5892#65892
...im vorletzten post ist der code auf 4.0 aktualisiert...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- FGK
- Beiträge: 249
- Registriert: 09.01.2005 14:02
- Computerausstattung: i5-4430 CPU / 8GB RAM
GeForce GT630
Windows 10 Home / 64-bit - Wohnort: Augsburg
@hmi222
Also ich denke mal nicht das es ruckelt sondern vielmehr
der Ball springt von Position zu Position. Wenn du dir
360 Positionen berechnet hat dann hast du 1 Grad Schritte
da das ganze ja mit dem Kreisradius multipiziert wird, hast du
je größer der Radius wird um so größere Sprünge von Position zu
Position. Du solltest dann einfach kleinere Grad-Schritte machen,
also mehr Positionen vorberechnen.
mit der Formel l = D*sin(180°/n) kannst du sehen wie arg
die Positionsunterschiede bei den verschiedenen Durchmessern
des Kreises pro 1 Grad Schritt sind.
n=360 D=100 => l = 0,87
n=360 D=300 => l = 2,61
usw.
Gruß FGK
Also ich denke mal nicht das es ruckelt sondern vielmehr
der Ball springt von Position zu Position. Wenn du dir
360 Positionen berechnet hat dann hast du 1 Grad Schritte
da das ganze ja mit dem Kreisradius multipiziert wird, hast du
je größer der Radius wird um so größere Sprünge von Position zu
Position. Du solltest dann einfach kleinere Grad-Schritte machen,
also mehr Positionen vorberechnen.
mit der Formel l = D*sin(180°/n) kannst du sehen wie arg
die Positionsunterschiede bei den verschiedenen Durchmessern
des Kreises pro 1 Grad Schritt sind.
n=360 D=100 => l = 0,87
n=360 D=300 => l = 2,61
usw.
Gruß FGK
Winkelfunktionen
Ich weiß nicht ganz, ob ich die Fragestellung verstanden hab, aber hier
trotzdem meine Version:
(ähnelt der von FGK wohl sehr...) :oops
Also, du kannst ja zum ersten dem Ball in jedem neuen Frame eine neue
Coordinate per Winkelfunktion zuweisen:
Aber du kannst auch die Koordinaten in ein Array speichern und
diese dann in der Schleife abrufen!
Ich weiß nicht was davon schneller ist, aber ja wohl höchstwarscheinlich
die zweite Variante!
Ich hoffe, ich konnte dir helfen und dass ich nicht all zu viel Schrott hier
reingeschrieben hab
trotzdem meine Version:
(ähnelt der von FGK wohl sehr...) :oops
Also, du kannst ja zum ersten dem Ball in jedem neuen Frame eine neue
Coordinate per Winkelfunktion zuweisen:
Code: Alles auswählen
radius = 100
mittelpunkt_x = 400
mittelpunkt_y = 400
speed.f = 0.5
repeat()
counter_01 = counter_01+speed
ball_x = mittelpunkt_x+sin(counter_01)*radius
ball_y = mittelpunkt_y+cos(counter_01)*radius
DisplayTransparentSprite(spritenummer,ball_x,ball_y)
forever()
diese dann in der Schleife abrufen!
Ich weiß nicht was davon schneller ist, aber ja wohl höchstwarscheinlich
die zweite Variante!

Ich hoffe, ich konnte dir helfen und dass ich nicht all zu viel Schrott hier
reingeschrieben hab

PB 3.94
Harvest Moon 4Ever!
Harvest Moon 4Ever!
Hi !
Vielen Dank erstmal...
FGK hat es auf den Punkt gebracht....
Bei einem größeren Radius werden die Sprünge größer...
Ich denke mit dem FastSinus Link von Kaeru Gaman müsste ich es lösen
können. (Mehr als 360 Positionen)
Anstatt dem Ball sollte dann ein Scrolltext die Bahn ablaufen... jedoch wurde
das dann ruckeliger...
Werds probieren....
Vielen Dank nochmal...
Vielen Dank erstmal...
FGK hat es auf den Punkt gebracht....
Bei einem größeren Radius werden die Sprünge größer...
Ich denke mit dem FastSinus Link von Kaeru Gaman müsste ich es lösen
können. (Mehr als 360 Positionen)
Anstatt dem Ball sollte dann ein Scrolltext die Bahn ablaufen... jedoch wurde
das dann ruckeliger...
Werds probieren....
Vielen Dank nochmal...