Wieso wird es nicht animiert?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

ReLeNtLeSS

Betreff: Wieso wird es nicht animiert?

BeitragSa, Dez 15, 2007 12:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Heyho, ich habe das Problem das meine Animation nicht animiert abgespielt wird.
Allerdings, wenn ich mir den Code so angucke müsste es eigentlich funktionieren...

Code: [AUSKLAPPEN]

;Tha Callenge
;TopDownShooter

AppTitle "TopDownShooter"
Graphics 1024,768,32
SetBuffer BackBuffer()
Global Timer=CreateTimer(100)

;LOAD

Global playergut=LoadImage("data\Guter.png")
Global playerarsch=LoadImage("data\pöser.png")
Global cross=LoadImage("data\cross.png")
Global zielanim=LoadAnimImage("data\ziel.png",32,32,0,3)

MidHandle cross
MidHandle playergut
MidHandle zielanim

MaskImage playergut,255,0,255
MaskImage cross,255,0,255
MaskImage zielanim,255,0,255

;Global

Global playergutX=100
Global playergutY=40

Global MX%,MY%
Global XE#,YE# ;angeklickte Zielkoordinaten für Entfernungsmessung
Global XP#,YP# ;aktuelle Position vom Objekt
Global XG#,YG# ;Vektorgeschwindigkeit
Global WK#     ;berechneter Winkel zum Ziel (kann auch für Image-Frames angewendet werden)
Const Speed#=1 ;Speedkonstante

;Hauptschleife

Repeat

players()

WaitTimer(Timer)
Flip 0
Cls
Until KeyHit(1)

;Funktionen

Function menu()

End Function

;;;

Function players()

   MX=MouseX()
   MY=MouseY()
   
   If MouseHit(2)
      WK#=ATan2(MY-YP,MX-XP)
      XG=Cos(WK)*Speed
      YG=Sin(WK)*Speed
      XE=MX
      YE=MY
   End If
   
   If Sqr((XP-XE)^2+(YP-YE)^2)>Speed
      XP=XP+XG
      YP=YP+YG
   End If
   
   For I=0 To 2
   DrawImage zielanim,XE-4,YE-4,I
   Next

   DrawImage playergut,XP-4,YP-4

DrawImage cross,MouseX(),MouseY()
End Function


Hab auch nen Timer drinn mit Flip 0 damit der die Animation nicht so schnell abspielt...

Danke schonmal für Hilfe![/code]

The_Nici

BeitragSa, Dez 15, 2007 12:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
   For I=0 To 2
   DrawImage zielanim,XE-4,YE-4,I
   Next

Was soll das bitte sein? Du zeichnest es einfach zweimal, Flipst dazwischen aber nicht.

Wenn schon:
Code: [AUSKLAPPEN]

Graphics 800,600,0,2
Setbuffer Backbuffer()
Anibild=Loadanimimage("bla.png",32,32,0,2)
animt%=Millisecs()
frame%=0
While not Keydown(1)
   If Millisecs()-animt>=100 then
      frame=1-frame
      animt=Millisecs()
   EndIf
   Drawimage Anibild, 0,0,frame
   Flip
   Cls
Wend
End


Tada.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group