FPS-riippumaton animointi
Author: aXu
Added: 27. kesäkuuta 2012 kello 19.40
Edited: 27. kesäkuuta 2012 kello 19.40
Category: Objektit
Description
Tämä toimii kahdella tavalla FPS-riippumattomasti:
Jos pelissä on vaihtuva deltatime eli ukkoja liikutetaan erimäärä riippuen framen pituudesta, kerro nopeus delta-ajalla. (tähän kaiketi toimii myös cb:n oma animointi)
Jos pelissä on fiksattu deltatime, mutta simulaatiota edistetään useammalla askeleella framea kohti, yksinkertaisesti kutsu tätä joka silmukan sisällä ja animaatiot pysyvät tahdissa. (cb:n oma animointi päivittää animaation vasta DrawScreenin/DrawGamen kohdalla)
Lisäominaisuutena on animaation pituuden ilmoittaminen sen loppuframen sijaan. Takaperin pyöriviä animaatiota ei tueta.
Vaatii ObjectFloatin käyttöönsä animoitavilla objekteilla. ObjectFloatia voi siis käyttää ObjectFramen tavoin, paitsi myös lukemaan frame myös vaihtamaan sen käsin.
Code
Select all1 2 3 4 5 6 7 8 9 10 11 | Function AnimateObject(Obj, StartF = 0, Length = 1, Speed# = 0.1)
EndF = StartF + Length
CurrentF# = ObjectFloat(Obj)
If CurrentF < StartF Or CurrentF > EndF Then CurrentF = StartF
CurrentF = CurrentF + Speed
If CurrentF => EndF Then CurrentF = CurrentF - Length
ObjectFloat Obj, CurrentF
CurrentF = RoundDown(CurrentF)
PlayObject Obj, CurrentF, CurrentF
EndFunction
|
Comments
No comments. You can be first!
Leave a comment
You must be logged in to comment.