Seite 1 von 1
Ball im Kreis rotieren ohne tu ruckeln
Verfasst: 31.03.2007 11:10
von hmi222
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...
Verfasst: 31.03.2007 12:13
von Kaeru Gaman
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...
Verfasst: 31.03.2007 13:08
von FGK
@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
Winkelfunktionen
Verfasst: 31.03.2007 13:42
von Kurono
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:
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()
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

Verfasst: 31.03.2007 13:58
von wasser
was für eine kiste mit grafikkarte hast du denn laufen?
vielleicht sind dein erwartungen gegenüber deinem rechener zu hoch und du erwartest zuviel von purebasic, purebasic arbeitet im dynamischen grafikbereich am besten mit irrlicht, das andere ist geschissen.
mfg
Verfasst: 31.03.2007 18:02
von hmi222
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...