Page 1 sur 1

[2D] Scrolling et Parallax

Publié : mer. 12/mars/2014 20:37
par falsam
Une procédure pour créer un système de scrolling Vertical et/ou Horizontal.

■ Définir une stucture minimum d'un sprite.

Code : Tout sélectionner

Structure Scrolling
  Sprite.i
  PositionX.i
  PositionY.i
EndStructure
■ Instancier le sprite à scroller.
Exemple :

Code : Tout sélectionner

Global Background.Scrolling
■ Charger un sprite et fournir l'identifiant du sprite à la structure.

Code : Tout sélectionner

LoadSprite(#background, "data/images/background.jpg")      
background\Sprite = #background
■ 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()

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
Vous trouverez un exemple complet incluant un system de paralax. (Scrolling.pb)
:arrow: Télécharger parallax.zip (Sources 2.2 Mo)

Re: [2D] Scrolling et Parallax

Publié : lun. 21/avr./2014 17:11
par raven
merci falsam,
je vais testé ta procedure pour ma demo :)