Animation help plz!!!

Blitz3D Forums/Blitz3D Beginners Area/Animation help plz!!!

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

K thanks m8 here is my code

;*****************
;* Mouse Routine *
;* Cannon Fodder *
;* Style *
;*****************

Graphics 640,480,16
SetBuffer BackBuffer()

;-Types-----------------------------------------------------

Type bullet
Field x#,y#
Field ang#,speed#
Field img
Field life#
End Type

Type player
Field x#,y#
Field ang#,speed#
Field frm ;animation frame
End Type

Type particle
Field x#,y#
Field dx#,dy#
Field size#
Field r,g,b
End Type

;-Globals-------------------------------------------------------

Global me.player=New player
Global clickedx#,clickedy#
Global imgplayer
Global imgshot
Global sndshot
Global sndgun
Global fps = CreateTimer(60)

;-Graphics+Sounds-----------------------------------------------

imgplayer=LoadAnimImage("fodman3.png",15,14,0,23)
imgshot=LoadImage("shot.bmp")
sndshot=LoadSound("shot.wav")
sndgun=LoadSound("gun.wav")
MaskImage imgplayer,255,0,255
MidHandle imgplayer
MidHandle imgshot
me\x=160
me\y=100

;-Main loop-------------------------------------------------

While Not KeyHit(1)

Cls

Color 50,100,150
Rect 0,0,640,480,1

angle=ATan2(MouseX()-me\x,MouseY()-me\y)

If Angle<0 Angle=Angle+360


If MouseHit(2)

clickedx=MouseX()
clickedy=MouseY()
me\ang=ATan2(clickedx-me\x,clickedy-me\y)
me\speed=2

EndIf

If Sqr(me\x-clickedx)^2+(me\y-clickedy)^2<9
me\speed=0
EndIf

If KeyDown(42) And MouseDown(2)
me\speed=6
End If

If MouseHit(1)

b.bullet = New bullet ;Create bullet
b\x = me\x : b\y = me\y
b\ang= ATan2(MouseX()-b\x,MouseY()-b\y)+Rnd(-3,6)
b\speed=6
b\life=30
b\img=imgshot
PlaySound(sndgun)

End If

For b.bullet = Each bullet
movebullet(b)
Next
If angle<0 angle=angle+360

If angle>160 And angle<200
me\frm=4;up
EndIf

If angle>110 And angle<160
me\frm=22;up right
EndIf

If angle>70 And angle<110
me\frm=10;right
EndIf

If angle>20 And angle<70
me\frm=16;down right
EndIf

If angle>345 Or angle<15 Or angle=0
me\frm=1;down
EndIf

If angle<335 And angle>290
me\frm=13 ;down left
EndIf

If angle<290 And angle>245
me\frm=7 ;left
EndIf

If angle<245 And angle>200
me\frm=19 ;up left
EndIf

;-Move particles----------------------------------------------
For pt.particle = Each particle

pt\x = pt\x + pt\dx
pt\y = pt\y + pt\dy
pt\size = pt\size - .6

If pt\size=<0 Then Delete pt

Next

me\y=me\y+(Cos(me\ang)*me\speed)
me\x=me\x+(Sin(me\ang)*me\speed)

For pt.particle = Each particle

Color pt\r,pt\g,pt\b
Oval pt\x-pt\size/2,pt\y-pt\size/2,pt\size,pt\size

Next

Color 255,255,255
DrawImage imgplayer,me\x,me\y,me\frm;player gfx

Color 255,25,25
Rect MouseX(),MouseY(),2,2; mouse gfx

Flip
Wend

End

;-Functions-------------------------------------------------


Function MoveBullet(b.bullet)



b\y=b\y+(Cos(b\ang)*b\speed)
b\x=b\x+(Sin(b\ang)*b\speed)


DrawImage b\img,b\x,b\y,0


b\life=b\life-1


If b\life<0 ;Then Delete b.bullet
For i=1 To 50

pt.particle = New particle
pt\x = b\x
pt\y = b\y
pt\dx = Rnd(-2,2):pt\dy=Rnd(-2,2)
pt\size = Rnd(2,4)
col# = Rnd(48,128)
pt\r = col: pt\g = col: pt\b = col

If i>30 Then

pt\r=255: pt\g=300-pt\size*40: pt\b=0 ;colour it red/yellow
pt\dx=pt\dx/2 ;slow it down
pt\dy=pt\dy/2

End If
Next

Delete b.bullet
chnwave1=PlaySound(sndshot)
ChannelVolume chnwave1,.2


End If

End Function