CPC Rulez
https://cpcrulez.fr/forum/

[Gestion des sprites]
https://cpcrulez.fr/forum/viewtopic.php?f=4&t=56
Page 1 sur 1

Auteur :  antibug [ 16 Oct 2007, 15:48 ]
Sujet du message :  [Gestion des sprites]

Salut !
Je suis en tain de me faire une bibliothèque pour gérer des Sprites,
j'ai pas mal d'idées sur la façon de modéliser tout çà mais j'aimerai avoir
quelques retours d'expérience de codeurs !

Actuellement pour stocker mes Sprites je passe par une structure qui mepermet de stocker les dimentions de mon sprite, le maque logique associé et les données de la zone graphique impactée (sauvegarde des données affichées à l'écran); de cette manière
je peux pour chaque Sprite, compiler ses données avec le masque logique la zone graphique impactée et afficher le tout !

Question: Par retour d'expérience, est-il plus résonnable de disocier le tout,
c.à.d. créer un tableau contenant les données des Sprites, un tableau contenant les masques et un tableau contenant les données sauvegardées de l'écran ?
Je suis peneur de toute info !

Merci d'avance ...

-( ANTIBUG )-

Auteur :  eliot [ 16 Oct 2007, 18:28 ]
Sujet du message : 

Pour un nième projet de jeu, je me souviens avoir intercalé un sprite et son masque un octet sur 2 pour n'avoir qu'un INC L au lieu d'un INC HL.

Ca devait faire un truc dans le genre :

ld hl,SPRITE ; adr du sprite en mémoire
ld de,SCREEN ; adresse ecran

ld a,(HL) ; on lit l'octet du sprite
INC L ; on passe au MASK
OR (HL) ;
AND (DE) ;
ld (DE),a ; on POKE a l'écran
;
inc DE ; ou mieux INC E si la config écran le permet, pour passer à l'adresse écran suivante
;
INC L ; pour passer à l'octet suivant du SPRITE

(je na garantis pas les operateurs logiques mais cela ne change pas grand chose au principe)

Auteur :  BDCIron [ 16 Oct 2007, 18:45 ]
Sujet du message : 

C'est aussi un principe utilisé dans certains jeux comme wild west seymour par exemple... Cela dit pour chaque jeu la methode peut etre différente...

Donc pas vraiment de solution idéale...

Auteur :  antibug [ 17 Oct 2007, 08:19 ]
Sujet du message :  re.

Merci ç'est déjà un début de réponse...

Auteur :  eliot [ 17 Oct 2007, 08:33 ]
Sujet du message : 

antibug a écrit :
Merci ç'est déjà un début de réponse...


Autre piste à creuser pour optimiser tes routines, tu peux intégrer directement dans le code les valeurs de tes sprites et masques. pour chaque octet du sprite. Ca oblige à dérouler tout le code et à avoir une routine différente pour chaque sprite. Ca prend plus de mémoire c'est clair, mais bon la routine sera plus rapide !

Auteur :  antibug [ 17 Oct 2007, 14:38 ]
Sujet du message :  re.

Salut eliot

en ce moment je regarde ce qui est mieux, plus propore et réutilisable
au niveau de mon code. Je suis en train de regarder comment mettre en place une gestion dynamique pour le chargement de mes sprites (sprites et masque)
Je cherche surtout comment mon code doit être structuré le mieux possible ... si tu as des exemples d'ogranisation de code je suis preneur !!

@++

Auteur :  BDCIron [ 17 Oct 2007, 22:08 ]
Sujet du message : 

Autre technique qui peux aussi être interessante pour des sprites animés qui ne ce déplacent pas (élements de décors par exemple) est de stocker des différences entre chaque étape d'animation et cela aussi en autogénéré... Ca fait gagner pas mal de temps !!!

Auteur :  antibug [ 18 Oct 2007, 06:31 ]
Sujet du message :  re

BDCIron a écrit :
Autre technique qui peux aussi être interessante pour des sprites animés qui ne ce déplacent par élements de décors par exemple) est de stocker des différences entre chaque étape d'animation
et cela aussi en autogénéré... Ca fait gagner pas mal de temps !!!


Salut BCDIron,
justement j'y pensais !
Merci quand même pour l'info
@++

Page 1 sur 1 Le fuseau horaire est UTC+1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/