website logo
Auteur
avatar
critonsgate

Forum » » Création-Développement » » 3 mini moteur Hollywood pour un jeux...


Posté : 27-11-2010 18:19 icone du post

Exemple de layers animé pour un starfield fullscreen :
; cette fonction rafraichi le layer etoiles
Function p_!refresh!_starfield()

; Si on ne crée pas de mask, pas de transparence du layer...
SelectMask(n_layer_star,#LAYER)
SetMaskMode(#MASKINVISIBLE)
Cls ; Tous les pixels sont transparents.
SetMaskMode(#MASKVISIBLE) ; permet l'ajout de pixels visibles
EndSelect
SelectLayer(n_layer_star, #SELMODE_COMBO)
For Local i = 0 To 498
Plot(stars[i].x, stars[i].y, stars[i].color)
Next
EndSelect()

EndFunction

Combiné avec les fonctions :

; cette fonction calcule l'avancée du starfield...
; TODO : Ajouter un angle en paramètre et calculer la position x et y des étoiles.
Function p_incrementer_Stars(i_orientationx, i_orientationy)
If i_orientationx = 1 And i_orientationy = 0
For Local i = 0 To 498
If stars[i].x >= 1024 Then stars[i].x = stars[i].x - 1024
stars[i].x = stars[i].x + stars[i].speed
Next
EndIf
If i_orientationx = 0 And i_orientationy = 1
For Local i = 0 To 498
If stars[i].y >= 768 Then stars[i].y = stars[i].y - 768
stars[i].y = stars[i].y + stars[i].speed
Next
EndIf
EndFunction
/* preparation du starfield */
Function p_InitStars()

; nous avons 399 étoiles
For Local i = 0 To 498
; pour x anciennement 720 et y anciennement 476
stars[i] = {
x = Rnd(1024),
y = Rnd(744) + 24,
speed = Rnd(10) + 1,
color = (Rnd(11) + 4) * 0x111111}

Next


CreateLayer(0,0,1024,768, {Name = "etoiles"})
n_layer_star = GetAttribute(#LAYER,"etoiles",#ATTRLAYERID)
layer_id = n_layer_star + 1

EndFunction

Avec les layers tu peux aussi utiliser les fonctions d'animations.

De plus un layer est modifiable au même titre qu'une brush, et tu peux utiliser toute une tripotée d'objet (plot, line, les polygones, les brushs) permettant l'écriture des pixels dans ceux-ci, et animer le layer par le biais de la fonction AsyncDrawFrame(obj) cela permet ainsi d'animer un ensemble de layer en même temps.


CritonSgate ~ Pegasos 2 G4 ~ Morphos 3.9
Ibook g4 - morphos 3.9
SAM 440 EP - 667 - os4 Final Édition

Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=923&forum=14