Der Mouse wird nicht "gefolgt"
Übersicht

![]() |
MoBetreff: Der Mouse wird nicht "gefolgt" |
![]() Antworten mit Zitat ![]() |
---|---|---|
N`abend Blitzer,
ich steh mal wieder auf einem mächtig dicken Schlauch und komm einfach nicht runter. ![]() Angaben: Ich hab ein Bild mit 8 Frames, 4 Frames für ein Animation nach rechts und 4 für links. Was soll passieren: Ich hab einen Mousezeiger, der, wenn er weiter rechts von meinem Image ist, die Animation für Rechts abspielen soll. Wenn der Zeiger weiter links ist, klar, die Animation für Links soll abgespielt werden. Was passiert wirklich: Wenn der Zeiger weiter rechts vom Image ist, wird die Animation schön abgespielt. Wenn der Zeiger aber links vom Image ist, spielt er erst noch die restlichen Frames der Rechtsanimation aus. Im Grunde weiß ich, was der „Fehler“ ist. Die Frames gehen immer frame=frame+1 und nur weil if frame>=8 then frame=4 dasteht, heißt das ja nicht gleich, dass das Image „weiß“, dass es bei Frame 4 starten soll. Versuche: Ich hab „gesagt“, wenn der Mousezeiger = der X-Achse von dem Image ist, soll es ein einzelnes Frame von der Linksanimation zeigen. Also im Prinzip wie bei Keyhit, das die Richtung nur „angeschlagen“ soll. Da die Mouse aber zu schnell ist, geht das nicht. Anderer Versuch war, dass ich einfach 2 Bilder genommen hab (eines für die Links- und eines für die Rechtsani) und sie dann abspielen hab, wenn der Mouszeiger in die Richtung zeigt: Gab aber beim wechseln von links nach rechts immer eine Lücke. So und bevor die Fragezeichen über euren Köpfen noch größer werden, pack ich einfach mal den Code rüber. ![]() Code: [AUSKLAPPEN] Graphics 800,600,0,2 SetBuffer BackBuffer() Global figur=LoadAnimImage ("Figur.png",50,40,0,8) MaskImage figur,255,0,255 Global lauf,frame,timer,x=200,y=300 HidePointer ;Haupt Repeat Cls ;Figur zeichnen und animation DrawImage figur, x, y, frame Select lauf Case 1 If MilliSecs()>timer+100 Then timer=MilliSecs() frame=frame+1 If frame>=4 Then frame =0 EndIf Case 2 If MilliSecs()>timer+100 Then timer=MilliSecs() frame=frame+1 If frame>=8 Then frame=4 EndIf End Select ;Mousezeiger Rect mx,my,5,5 mx=MouseX() my=MouseY() ;- If mx<=x lauf=1 Else lauf=2 EndIf ;- Flip Until KeyHit(1) End |
||
500 Euro Studiengebühren... ich glaub ich zieh in den Wald!!!
Eine Floßfahrt die ist lustig... *sing* ![]() |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
versuchs mal damit:
wenn der mauszeiger rechts ist ist startframe=4 und endframe=8 bei links eben das andere und dann prüfst du: if frame>endframe then frame=startframe |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oder du machst einfach dort wo du lauf=2 setzt auch gleich frame=4.
Aber ansonsten ist die Variante meines vorschreibers vorzuziehen, da sie es dir ermöglicht "unendlich viele" neue Situation hinzuzufügen, da die Grenzen variabel neu gesetzt werden können. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Mo |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Dreamora: Also bei dir bekomm ich ein Standbild, da, wenn der Zeiger rechts ist, immer das Frame 4 angezeigt wird. Trotzdem Danke. ![]() @Step Tiger: Hab deins mal ausprobiert und auf unterschiedliche Art und Weise. Nur komm ich immer wieder beim gleichen raus und zwar: bis frame>endframe ist, müssen immer noch alle Frames abgespielt werden. Die Logik, die dahinter steckt kapier ich: dass beim wechseln der Mousseite sich auch die Start- und Endframes ändern und dadurch das Startframe entweder gleich auf 0 (für links) oder auf 4 (für rechts) setzt... ach ich glaub es ist grad einfach zu spät, ich mach morgen weiter. Trotzdem Danke euch beiden ![]() |
||
500 Euro Studiengebühren... ich glaub ich zieh in den Wald!!!
Eine Floßfahrt die ist lustig... *sing* ![]() |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
dann musst du die derzeitige frame auch beim wechsel auf startframe stellen ^^ | ||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
Mo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ha, wie gesagt, ein bisschen Schlaf und die Sache klappt wieder. Habs ein bisschen überdacht und schon läufts. Danke ![]() |
||
500 Euro Studiengebühren... ich glaub ich zieh in den Wald!!!
Eine Floßfahrt die ist lustig... *sing* ![]() |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group