Ball im Kreis rotieren ohne tu ruckeln

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
hmi222
Beiträge: 69
Registriert: 23.03.2007 13:20
Kontaktdaten:

Ball im Kreis rotieren ohne tu ruckeln

Beitrag 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...
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
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

Beitrag 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
Benutzeravatar
Kurono
Beiträge: 44
Registriert: 28.10.2006 15:03
Wohnort: Mineral Town
Kontaktdaten:

Winkelfunktionen

Beitrag 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! :lol:

Ich hoffe, ich konnte dir helfen und dass ich nicht all zu viel Schrott hier
reingeschrieben hab :mrgreen:
PB 3.94
Harvest Moon 4Ever!
wasser
Beiträge: 125
Registriert: 27.11.2006 21:16

Beitrag 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
hmi222
Beiträge: 69
Registriert: 23.03.2007 13:20
Kontaktdaten:

Beitrag 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...
Antworten