[2D] Scrolling et Parallax
Publié : mer. 12/mars/2014 20:37
Une procédure pour créer un système de scrolling Vertical et/ou Horizontal.
■ Définir une stucture minimum d'un sprite.
■ Instancier le sprite à scroller.
Exemple :
■ Charger un sprite et fournir l'identifiant du sprite à la structure.
■ Pour exécuter un scrolling, vous devez fournir à la procédure la structure du sprite, la position x,y d'affichage du sprite ainsi que le décalage horizontal (StepX) et/ou vertical (StepY)de l'image représentant le sprite.
■ La procédure ScrollSprite()
Vous trouverez un exemple complet incluant un system de paralax. (Scrolling.pb)
Télécharger parallax.zip (Sources 2.2 Mo)
■ Définir une stucture minimum d'un sprite.
Code : Tout sélectionner
Structure Scrolling
Sprite.i
PositionX.i
PositionY.i
EndStructure
Exemple :
Code : Tout sélectionner
Global Background.Scrolling
Code : Tout sélectionner
LoadSprite(#background, "data/images/background.jpg")
background\Sprite = #background
■ La procédure ScrollSprite()
Code : Tout sélectionner
Procedure ScrollSprite(*sprite.scrolling, x, y, StepX, StepY)
Protected SpriteWidth = SpriteWidth(*sprite\Sprite)
Protected SpriteHeight = SpriteHeight(*sprite\Sprite)
Protected sx, sy
*sprite\PositionX+StepX
*sprite\PositionY+StepY
If *sprite\PositionX > SpriteWidth
*sprite\PositionX = 0
EndIf
If *sprite\PositionX < 0
*sprite\PositionX = SpriteWidth
EndIf
If *sprite\PositionY > SpriteHeight
*sprite\PositionY=0
EndIf
If *sprite\PositionY < 0
*sprite\PositionY = SpriteHeight
EndIf
For sx=0 To 2
For sy=0 To 2
DisplaySprite(*sprite\Sprite, x+ SpriteWidth * sx - *sprite\PositionX, y + SpriteHeight * sy - *sprite\PositionY)
Next
Next
EndProcedure
