[2D] Scrolling et Parallax

Programmation avancée de jeux en PureBasic
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

[2D] Scrolling et Parallax

Message 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)
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
raven
Messages : 222
Inscription : jeu. 06/janv./2005 15:45

Re: [2D] Scrolling et Parallax

Message par raven »

merci falsam,
je vais testé ta procedure pour ma demo :)
Pb5.24 Lts/5.31 Windows 7 64 nvidia 560 ti E8500 8g ram
Répondre