Viele Objekte unterschieldiche Geschwindigkeit usw.
-
Hallo
Ich habe mal wieder vor ein kleines Spiel zu programmieren. Dabei bin ich bei meiner logischen druchdenkung auf ein Problem gestoßen was ich nicht so ohne weiteres lösen kann. Also jeder kennt ja diese billig Spiele wo von oben was runter gefallen kommt und man das danneinsammelt oder das ne gegner ist oder so was. Mein Problem ist nun das ich nicht weiß wie das das Realisieren soll. Ich würde eine klasse für machen natürlich. Aber wie benutze ich diese klasse dann mehrfach mit unterschiedlichen Variablen auf einmal?
Hoffe man verstehe was ich meine
MFG
Jens
-
Jens Bond schrieb:
Hallo
Hoffe man verstehe was ich meine
JensNeee

-
Ich habs auch nicht auf anhip verstanden aber jetzt hab ich es

-
Meinst du dass jedes Objekt das "runterfällt" eine unterschiedliche Geschiwindigkeit hat? Oder wie?
Dann mach doch einfach eine sowas in der Art:class cObject{ float geschwindigkeit; public: void init(float start_geschwindigkeit){ geschwindigkeit=start_geschwindigkeit; // Andere Werte.... } };?
-
Schau mal in ein Physikbuch für die Formel, und dann bloss noch passende Parameter einsetzen.
Bye, TGGC (Fakten)
-
vielleicht war die frage grundsätzlicher gemeint.
was bedeutet "schneller" überhaupt? das kommt auf dein system an. zwei varianten sind:
-
die objektbewegung ist immer gleich, z.b. 1 pixel je bewegungsschritt. die geschwindigkeit beruht dann darauf, wie lange ein objekt an seiner aktuellen position verweilt
-
objektbewegung ist relativ zum bildschirm. d.h., schnellere objekte überspringen pro frame mehr pixel, als langsamere objekte.
-
-
Ich komme jetzt auch nicht so ganz draus was du meinst. Aber ich schau mal ob ich dir mit diesem Ansatz vielleicht helfen kann.
Du hast ja ein Spiel und ein Spiel läuft wodurch wenn man so will immer eine While schlaufe ausgeführt wird. Dabei hat man normalerweise eine MoveFunktion drin sowie ein Zeichnungs(Render)Funktion. In der MoveFunktion wird alles bewegt und in der RenderFunktion alles gezeichnet. Nun misst du wie lange jeweils die MoveFunktion und RenderFunktion dauern und übergibts beim nächsten mal diesen gemessenen Wert.
Der jeweiligen Klasse mit den Objekten, welche sich bewegen übergibst du nun eine Geschwindigkeit und eine aktuelle Position. So kannst du dann deine Objekte fortbewegen lassen. Schliesslich hast du verstrichene Zeit und die Geschwindigkeit ...Hoffe das konnte dir ein wenig helfen.
Grüssli
-
also ich will im grundgenommen nur eine instanz einer klasse erzeugen. So viel habe ich schon rausgefunden aber wie das geht da bin ich noch net hinter gekommen
Obowlh ich schön langer programmiere habe ich mich mit klassen noch net so auseinanderegesätzt!
-
Dann musst du das jetzt nachholen.
Sieh mal, es ist ja nicht so gedacht, dass wir dir jetzt hier die Grundlagen vorkauen. In der rechten oberen Ecke findest du mehrere Tutorials und Bücherempfehlungen, die dir das nötige Wissen vermitteln.
-
ich glaube das problem ist nicht wirklich spiele/graphik-relevant

-
Dieser Thread wurde von Moderator/in rapso aus dem Forum Spiele-/Grafikprogrammierung in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.