Animation avec RC_COPY.
GFA :: Programmation :: Graphismes
Page 1 sur 1
Animation avec RC_COPY.
Le listing qui suit vous montre comment faire une animation de sprite avec RC_COPY.
Le sprite suit le déplacement de la souris et est affiché avec une transparence.
Les 2 INLINES peuvent être sauvés en *.PI1 pour vous permettre de voir l'image de fond et le sprite avec son masque.
Cette première technique présente quelques scintillements au passage du sprite devant certaines couleurs, nous verrons dans un deuxième listing comment éviter ce scintillement par un SWAPING (méthode utilisée dans SABOTEUR III mais avec BITBLT).
Le RC_COPY . . . . . ,1 affiche le masque (uniquement la partie en couleur 0, couleur noire dans notre cas).
Le RC_COPY . . . . . ,7 affiche le sprite (uniquement dans le fond en couleur 0, couleur noire dans notre cas).
L'image de fond:
Pièce jointe:
Image de fond.jpg
Le sprite:
Pièce jointe:
Sprites.jpg
Code:
' *****************************************************************************
' * *
' * *
' * D‚placement de sprite sur une image de fond en XBIOS(2) *
' * avec RC_COPY *
' * *
' * *
' *****************************************************************************
'
CLS
'
' ----------------------------- Les ‚crans
INLINE fond%,32066
INLINE sprite%,32066
'
' ----------------------------- Ecran physique
xb%=XBIOS(2)
'
' ----------------------------- On change la palette de couleurs
~XBIOS(6,L:fond%+2,32)
'
' ----------------------------- On affiche l'image de fond
BMOVE fond%+34,xb%,32000
'
' ----------------------------- D‚placement maximum (‚cran - 16)
x_max%=303
y_max%=183
'
' ----------------------------- On sauve la partie d'‚cran o— sera le sprite
RC_COPY xb%,0,0,16,16 TO sprite%,0,20
'
' ----------------------------- On affiche le masque du sprite
RC_COPY sprite%+34,16,0,16,16 TO xb%,0,0,1
'
'
' ----------------------------- On affiche le sprite
RC_COPY sprite%+34,0,0,16,16 TO xb%,0,0,7
'
' ----------------------------- On positionne la souris en 0,0
' ----------------------------- et on cache le curseur
mx%=0
mx2%=0
my%=0
my2%=0
SETMOUSE mx%,my%
HIDEM
'
' ----------------------------- Boucle de d‚placement du sprite
' ----------------------------- en en sort en cliquant un bouton de la souris
DO
MOUSE mx%,my%,mk|
' --------------------------- SORTIE de boucle
EXIT IF mk|>0
'
' --------------------------- EmpŠche la sortie des limites
IF mx%>x_max%
mx%=x_max%
ENDIF
IF my%>y_max%
my%=y_max%
ENDIF
'
' --------------------------- Si la souris est d‚plac‚e,
' --------------------------- repositionne le sprite sur la souris
IF mx%<>mx2% OR my%<>my2%
'
' ------------------------- Remet la partie ‚cran sauv‚e
RC_COPY sprite%,0,20,16,16 TO xb%,mx2%,my2%
'
' ------------------------- Sauve la nouvelle partie d'‚cran
RC_COPY xb%,mx%,my%,16,16 TO sprite%,0,20
'
' ------------------------- Affiche le masque
RC_COPY sprite%+34,16,0,16,16 TO xb%,mx%,my%,1
'
' ------------------------- Affiche le sprite
RC_COPY sprite%+34,0,0,16,16 TO xb%,mx%,my%,7
'
' ------------------------- Actualise mx2% et my2%
mx2%=mx%
my2%=my%
'
ENDIF
LOOP
0015 RC_COPY1.ZIP: [Vous devez être inscrit et connecté pour voir ce lien]
Le sprite suit le déplacement de la souris et est affiché avec une transparence.
Les 2 INLINES peuvent être sauvés en *.PI1 pour vous permettre de voir l'image de fond et le sprite avec son masque.
Cette première technique présente quelques scintillements au passage du sprite devant certaines couleurs, nous verrons dans un deuxième listing comment éviter ce scintillement par un SWAPING (méthode utilisée dans SABOTEUR III mais avec BITBLT).
Le RC_COPY . . . . . ,1 affiche le masque (uniquement la partie en couleur 0, couleur noire dans notre cas).
Le RC_COPY . . . . . ,7 affiche le sprite (uniquement dans le fond en couleur 0, couleur noire dans notre cas).
L'image de fond:
Pièce jointe:
Image de fond.jpg
Le sprite:
Pièce jointe:
Sprites.jpg
Code:
' *****************************************************************************
' * *
' * *
' * D‚placement de sprite sur une image de fond en XBIOS(2) *
' * avec RC_COPY *
' * *
' * *
' *****************************************************************************
'
CLS
'
' ----------------------------- Les ‚crans
INLINE fond%,32066
INLINE sprite%,32066
'
' ----------------------------- Ecran physique
xb%=XBIOS(2)
'
' ----------------------------- On change la palette de couleurs
~XBIOS(6,L:fond%+2,32)
'
' ----------------------------- On affiche l'image de fond
BMOVE fond%+34,xb%,32000
'
' ----------------------------- D‚placement maximum (‚cran - 16)
x_max%=303
y_max%=183
'
' ----------------------------- On sauve la partie d'‚cran o— sera le sprite
RC_COPY xb%,0,0,16,16 TO sprite%,0,20
'
' ----------------------------- On affiche le masque du sprite
RC_COPY sprite%+34,16,0,16,16 TO xb%,0,0,1
'
'
' ----------------------------- On affiche le sprite
RC_COPY sprite%+34,0,0,16,16 TO xb%,0,0,7
'
' ----------------------------- On positionne la souris en 0,0
' ----------------------------- et on cache le curseur
mx%=0
mx2%=0
my%=0
my2%=0
SETMOUSE mx%,my%
HIDEM
'
' ----------------------------- Boucle de d‚placement du sprite
' ----------------------------- en en sort en cliquant un bouton de la souris
DO
MOUSE mx%,my%,mk|
' --------------------------- SORTIE de boucle
EXIT IF mk|>0
'
' --------------------------- EmpŠche la sortie des limites
IF mx%>x_max%
mx%=x_max%
ENDIF
IF my%>y_max%
my%=y_max%
ENDIF
'
' --------------------------- Si la souris est d‚plac‚e,
' --------------------------- repositionne le sprite sur la souris
IF mx%<>mx2% OR my%<>my2%
'
' ------------------------- Remet la partie ‚cran sauv‚e
RC_COPY sprite%,0,20,16,16 TO xb%,mx2%,my2%
'
' ------------------------- Sauve la nouvelle partie d'‚cran
RC_COPY xb%,mx%,my%,16,16 TO sprite%,0,20
'
' ------------------------- Affiche le masque
RC_COPY sprite%+34,16,0,16,16 TO xb%,mx%,my%,1
'
' ------------------------- Affiche le sprite
RC_COPY sprite%+34,0,0,16,16 TO xb%,mx%,my%,7
'
' ------------------------- Actualise mx2% et my2%
mx2%=mx%
my2%=my%
'
ENDIF
LOOP
0015 RC_COPY1.ZIP: [Vous devez être inscrit et connecté pour voir ce lien]
Jb- Messages : 143
Date d'inscription : 25/03/2018
Age : 47
Localisation : Tantonville
Re: Animation avec RC_COPY.
Mon ami George si tu avais par exemple les inline ce sera bien
Si non
Ils peuvent charger leur inline mais juste changer les coordonnées de rc copy par rapport à leur sprite
A plus Jb sans coeur
Si non
Ils peuvent charger leur inline mais juste changer les coordonnées de rc copy par rapport à leur sprite
A plus Jb sans coeur
Jb- Messages : 143
Date d'inscription : 25/03/2018
Age : 47
Localisation : Tantonville
Sujets similaires
» ANIMATION EN GFA EN X ET Y AVEC RC COPY
» Graphismes et Animations/ Graphics & animation
» SND avec des sons au DMA + GFA
» Gfabisc 3.06 avec compilateur
» Problème avec GFA Android
» Graphismes et Animations/ Graphics & animation
» SND avec des sons au DMA + GFA
» Gfabisc 3.06 avec compilateur
» Problème avec GFA Android
GFA :: Programmation :: Graphismes
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|