MapAnimFrameRate
MapAnimFrameRate MapIndex, AnimIndex, FrameRate
 
Parameters:

    MapIndex = The Index of the Map that you wish to create an anim within
    AnimIndex = The Index of the tile animation to create
    FrameRate = The frame rate of this animation
Returns: NONE
 

      MapAnimFrameRate sets the rate of change (in updates) of a block animation.

      The animation speed is not given in frames per second, rather it works as a frame counter. Each time map anims are updated, the "CurrentFrameRate" counter decreases until it reaches zero (or bellow), upon doing that, the counter is reset, and the current frame is changed to the next in the animation sequence.

      For example,

      If you set an animation frame rate to 10, then this animation requires 10 calls to the UpdateMapAnims command before it will actually change frames. Since UpdateMapAnims should only be called once per update of your games main loop. So you can think of the frame rate as being a counter for the number of frames that should pass, before the current animation frame changes.



FACTS:


      * Animations frames rate default to a speed of 1. This means the anim will change fraes every time "UpdateMapAnims" is called.




Mini Tutorial:


      This example shows the hands on creation of a Map, and the basic creation of a map Anims. It then displays the anims information for you. Which should give you a feel, for how the block animation commands are used togethert.


  
; ==============================
; Part 1 - Create Map
; ==============================
  
; Set Width & Height variables of the Map tiles
  TileWidth=16
  Tileheight=16
  
; Get a free Map index
  MyMap=GetFreeMap()
  
; Create a map with provision for 5 levels
  CreateMap MyMap,5
  
; ==============================
; Part 2 - Create Tile Animations
; ==============================
  Print "Number Of Animations in Map:"+Str$(GetMapAnims(MyMap))
  
; Create Room for 50 Block Animations with this map
  MapAnimQuantity MyMap,5
  
; Create Anim 1,with space for 10 frames in the anim
  CreateMapAnim MyMap,1,10
  
; Poke some frames into the Anim 1
  For lp=0 To 10
     PokeMapAnim MyMap,1,lp,10+lp
  Next
  
; Set the frame rate
  MapAnimFrameRate MyMap,1,3
  
  
; ==============================
; Part 3 - Display the Anim Information
; ==============================
  
  Print "Number Of Animations in Map:"+Str$(GetMapAnims(MyMap))
  
; List the Info about each Anim
  For Anim=0 To GetMapAnims(MyMap)
     If  GetMapAnimStatus(MyMap,Anim)=true
        Print "Anim #"+Str$(anim)
        f$=""
        Print "Frames:"+Str$(GetMapAnimSize(mymap,anim))
        Print "Frame Rate:"+Str$(GetMapAnimFrameRate(mymap,anim))
        Print "Current Frame Rate:"+Str$(GetMapAnimCurrentFrameRate(mymap,anim))
        Print "Anim Type:"+Str$(GetMapAnimType(mymap,anim))
        For Frames=0 To GetMapAnimSize(myMap,Anim)
           f$=f$+Str$(PeekMapAnim(myMap,anim,Frames))+","
        Next
        Print "Tile Sequence:"+TrimRight$(F$,",")
     Else
        Print "Anim #"+Str$(anim)+" Doesn't exist"
     EndIf
     Print ""
  Next
  
; Display the screen and loop back to the DO
  Sync
  WaitKey
  



This example would output.

  
  Number Of Animations in Map: 0
  Number Of Animations in Map: 5
  Anim #0 Doesn't exist
  
  Anim #1
  Frames:10
  Frame Rate:3
  Current Frame Rate:3
  Anim Type:1
  Tile Sequence:10,11,12,13,14,15,16,17,18,19,20
  
  Anim #2 Doesn't exist
  
  Anim #3 Doesn't exist
  
  Anim #4 Doesn't exist
  
  Anim #5 Doesn't exist
  

 
Related Info: CreateMapAnim | DeleteMapAnim | GetMapAnimStatus :
 


(c) Copyright 2002 - 2024 - Kevin Picone - PlayBASIC.com