simply animated sprites - for dummies from dummies ;)

Previous topic - Next topic

siatek

im really newbie but maybe its usefull for somebody ...

Quote

TYPE TAnimation

   firstFrame%
   lastFrame%
   currentFrame%
   delay%
   tick%

   FUNCTION SetLoop: first%, last%
      self.firstFrame = first
      self.lastFrame = last
   ENDFUNCTION


   FUNCTION SetDelay: delay%
      self.delay = delay
   ENDFUNCTION


   FUNCTION Reset:
      self.currentFrame = self.firstFrame
   ENDFUNCTION


   FUNCTION Update:

      IF self.tick > self.delay
         self.tick = 0
         INC self.currentFrame
      ENDIF

      IF self.currentFrame > self.lastFrame THEN self.currentFrame = self.firstFrame
      IF self.currentFrame < self.firstFrame THEN self.currentFrame = self.firstFrame

      INC self.tick

   ENDFUNCTION


   FUNCTION Finished:
      IF self.currentFrame = self.lastFrame
         RETURN TRUE
      ELSE
         RETURN FALSE
      ENDIF
   ENDFUNCTION


   FUNCTION Start:
      IF self.currentFrame = self.firstFrame
         RETURN TRUE
      ELSE
         RETURN FALSE
      ENDIF
   ENDFUNCTION

ENDTYPE

example usage

somewhere in "update":

Quote

self.animation.Update()

   IF self.isFiring

      self.animation.SetLoop(8, 15)
      self.animation.SetDelay(10)

      IF self.animation.Finished() THEN Something()

   ENDIF


somewhere in draw:

QuoteDRAWANIM sprHelloKitty, self.animation.currentFrame, self.position.x, self.position.y
glbasic roxx !!!