Animation

Sir Robin

Erfahrenes Mitglied
Hallo,

für so´n kleines Pinballspiel, welches später mit künstlicher Intelligenz ausgestattet werden soll (sagt der Info-Lehrer zumindest) muss ich was in VB animieren...soweit auch kein großes Problem...ich hab das jetzt mit Do while und den x/y Koordinaten gemacht...das Doofe an der ganzen Sache ist halt, das es eine Endlosschleife ist, was ich irgendwie nicht sonderlich förderlich finde, da daraus eine sehr hohe Prozessorlast entsteht...

deswegen wollt ich fragen ob´s ne angenehmere Variante gibt...und gibt´s eine?

Danke soweit :)
 
Sorry, vielleicht stell ich mich nur zu doof an, aber ich weiß nicht genau was du meinst.
Was willst du denn animieren und was steht in deiner DoWhile Schleife drin?
 
also...nehmen wir mal an ick hab einfach nen Shape irgendwo in der Form...und das soll jetzt einfach von links nach rechts hin und her sich gleichmäßig fortbewegen...

...das hab ich jetzt also mit einer Do While-Schleife gelöst (hab ich grad nicht hier, weil auf´m anderen Rechner) bei der die Position des Shapes abgefragt wird, und anhand derer nach der Formel v=s*t (also nen Stück Physik) das Shape fortbewegt wird...des Weiteren ist da halt ne If-Abfrage drin, in der geprüft wird ob der Ball sich nach links oder nach rechts bewegt werden muss (es wird einfach abgefragt ob ein bestimmter x-Wert erreicht ist, und dann die Richtung geändert)...

...in Wirklichkeit ist die Formel noch´n kleines Stück komplizierter weil Reflexion mit eingebaut ist (halt cos alpha und sin alpha und so)...aber das ist ja an sich kein Problem, denn wie ich ja schon anmerkte funktioniert das Ganze ja ganz gut...

jetzt aber mein Problem: Dadurch das bei dieser Schleife eine Endlosschleife entsteht (das Shape "fliegt" die ganze Zeit in der Form rum, und reflektiert an dessen Wänden), entsteht gleichzeitig eine enorm hohe Prozessorlast...und genau das ist der Knackpunkt...ich will halt gerne wissen ob´s ne bessere Methode gibt irgendwie etwas zu animieren...ohne dabei eine Endlosschleife zu produzieren...



...ich hoffe das ist jetzt verständlicher ausgedrückt :)
 
theoretisch müsste das ganze doch auch mit nem timer funktionieren.
Ob das dann aber besser is, weiß ich nicht.
Was anderes würde mir jetzt auch nicht einfallen!:rolleyes:

Animieren und so krimskram is halt immer so ne Sache mit VB.
 
Vielleicht hilft ein DoEvents in der Schleife, dann hat der Prozessor auch Zeit sich um andere Sachen zu kümmern.
Und dann ist auch egal ob die Prozessorlast hoch ist, da du keine allzu großen Nachteile dadurch hast.

mfg Grimreaper
 
Einen Timer würde ich auch nicht unbedingt nehmen, weil bei einem zu niedrigen Intervall die CPU noch stärker ausgelastet werden würde.
An einer Endlosschleife wirst Du wohl nicht vorbeikommen, wenn die Animation anhalten soll. Und wie schon gesagt, kannst Du mit DoEvents ja immerhin dafür sorgen, dass Deine Anwendung nicht einfriert und noch genügend Rechenleistung für andere Prozesse übrig bleibt.

Dritte Möglichkeit wäre es, das ganze mit verschiedenen Threads zu lösen, aber wie weit das mit VB überhaupt möglich ist, kann ich Dir leider auch nicht sagen.
 

Neue Beiträge

Zurück