Logicielsmoto.com

Nous sommes le 26 Nov 2020, 05:28

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 75 messages ]  Aller à la page Précédente  1, 2, 3, 4, 5
Auteur Message
MessagePosté: 16 Nov 2020, 03:09 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 259
"Mangeage" pac-man animation : OK :D

Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 16 Nov 2020, 03:18 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1303
Localisation: Brest
Il est cuit ce pacman qui fond!

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 16 Nov 2020, 19:42 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 259
Selection de l'animation selon un état du fantôme :

test :
Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 16 Nov 2020, 22:23 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 259
Changement status ghost en mode scatter...

Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 16 Nov 2020, 22:31 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1303
Localisation: Brest
Ca prend forme!

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 16 Nov 2020, 22:45 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 259
yep,
dire que j'ai les 3 autres à rendre "intelligent", j'espère que j'aurais assez de place entre $7300->$9FFF

pour le moment c'est $7300->$8FA7 :beuh:


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 17 Nov 2020, 01:42 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1303
Localisation: Brest
Tu ne factorises pas le comportement des fantômes de façon générique ? (tu passes en paramètre un pointeur sur une structure régulière identique mais à des adresses mémoire différentes pour chaque fantômes.)

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 17 Nov 2020, 02:01 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 259
oui j'été en train de réfléchir à ça,

Car selon ce que j'ai vu, les 4 fantômes sont basés sur les même principe de déplacement et de collision,
seuls le "target"(tileX, tileY) est différent pour chacun des fantômes !

Donc je pourrais faire un seul même algo. utilisé pour les 4 et juste initialiser en entrée : index du fantôme, target X, target Y avant d'appeler l'IA.

ça pourrait le faire comme ça je pense...


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 19 Nov 2020, 11:28 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 119
Samuel Devulder a écrit:
Tu ne factorises pas le comportement des fantômes de façon générique ? (tu passes en paramètre un pointeur sur une structure régulière identique mais à des adresses mémoire différentes pour chaque fantômes.)


C'est ce que j'aurais prévu pour le Bubble Bobble.

Il faut créer des fonctions assembleur chaque fois que c'est nécessaire (avec un JSR). Par exemple, j'ai une fonction qui positionne un sprite "sur écran" avec des valeurs prédéfinies de largeur, hauteur et statut (Tiles ou non), qui fait appel à une fonction autre d'affichage de sprite/tile (c'est la même fonction en vérifiant le statut TILES), qui affiche ce sprite/tiles quelle que soit sa taille. Ces 2 fonctions font environ 150 octets.

Petite astuce, tu dois avoir un ensemble de 4 sprites pour ton pacman, eh bien on peut faire un "INC" sur un pointeur ( 0 à 3) et un "AND #3" sur ce pointeur pour annuler les bit de poids supérieur à 2.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 19 Nov 2020, 11:45 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 119
adnz a écrit:
oui j'été en train de réfléchir à ça,

Car selon ce que j'ai vu, les 4 fantômes sont basés sur les même principe de déplacement et de collision,
seuls le "target"(tileX, tileY) est différent pour chacun des fantômes !

Donc je pourrais faire un seul même algo. utilisé pour les 4 et juste initialiser en entrée : index du fantôme, target X, target Y avant d'appeler l'IA.

ça pourrait le faire comme ça je pense...


Voilà t'as tout compris!! Et c'est ce que j'ai fais pour Bubble Bobble...

En fait tu essaies de définir les paramètres propre aux fantomes (position, droite-gauche, index sprite entre 0 et 3, statut... En fait même tu pourrais utiliser un octet our les 2 dernier paramètres cité, mais je pense qu'il y a de la place en mémoire). En fat il faut que tu pense comme de la programmation structurée! Fais un tableau d'octets pour les paramètres des fantômes (tu as X, Y qui sont entre 0 et 255 en mode bm16, l'index de prite, le satut, en gros tu as entre 5 et 10 octets par fantome et grâce au 6809 et les accès indexé, qui n'existe pas sur le 6502 par exemple, ça permet de gérer facilement les tableaux)

Pour ce qui est de l'IA, la partie la plus difficile, je t'ai donné des pistes déjà, mais ici, c'est à grand coup de fonctions récursives que tu t'en sors (écrire l'ensemble des parcours suivant une position dans le labyrinthe prendrait trop de place mémoire dans les 64kO)... pour le statut "poursuite", essaie d'abord de voir si la distance fantôme-Pacman ne dépasse pas une certaine distance, en sommant dX et dY (pas la peine de faire du Pythagore ici) pour lancer la procédure de chasse, par exemple 7 C'est vraimenr la partie ardue (et la plus motivante en terme d'algo) du jeu. Dans la procédure récursive, ça marche évidemment avec des piles. Tu te crées 2 tableau de "char"... le meilleur temporaire et celui en cours de test contenant NSOE

En tous cas ton résultat actuelle est très prometteur!! J'adore les couleurs. Je pense que la version Titus (qui doit être en 320x200 mode TO) n'utilise pas les IA pour les fantômes.

Miss Pac-Man n'utilise pas les IA non plus.

J'ai regardé vite fait les Pac-Land existant aussi, et les personnages ne sont jamais effacé par un quelconque relief! Donc l'adaptation en 3D isométrique peur aussi se faire relativemetnt facilement (c'est juste un recalcul vite fait des position X et Y sur l'écran rien de plus et encore...)


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 19 Nov 2020, 23:13 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 259
- mise en place des vies, du texte GameOver et MAJ de quelques petits détails graphiques...
- modif de l'effacement des pacgum et superpacgum, j'efface les pixels au lieu du TILE complet !

Image

...


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 25 Nov 2020, 21:14 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 259
Test de maquettes pour étiquettes ...

Image

Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 26 Nov 2020, 00:19 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1303
Localisation: Brest
Zoli! :love:

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 26 Nov 2020, 00:53 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 259
merci, j'ai fais une pose d'asm.

- tous ce passe bien intro:OK intro2:OK affichage jusqu'a l'apparition de READY puis la disparition de READY: OK
- puis ça plante sur la machine TO8, dès le debut de la boucle principale du jeux, alors que ça fonctionne sur DCMOTO.
- donc faut que je trouve la fuite ou le hic, pas evident !

- dans le mainloop, y'a des JSR > puis JSR > puis JSR et RTS <- RTS <-RTS
y'a un moment y'a un truc qui dois faire perdre le fil des RTS !

je suis en train de debugger avec des breakpoints mais c'est long lol :voyons:
et vu que ça bug pas dans DCMOTO, je dois relire instruction par instruction voir le potentiel problème !

Moment du bug
Image


Image


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 26 Nov 2020, 01:52 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 259
y'a peut être un truc qui se perd ici !

dans la "mécanique" de l'animation d'un sprite je fais ça :

Code:
boucle
...
    JSR setanimplayerStart
...
   JMP boucle


ici A obligatoirement 0,1,2 ou3
disont ici A=0
Code:
setanimplayerStart              * set player anim
            LDA  player_set_num
            CMPA #0
            LBEQ  p_set_anim_r
            CMPA #1
            LBEQ  p_set_anim_l
            CMPA #2
            LBEQ  p_set_anim_t
            CMPA #3
            LBEQ  p_set_anim_b
setanimplayerend           
            RTS


puis

Code:
p_set_anim_r
            LDX #player_r_anim
            STX player_anim
            LBRA setanimplayerend      <---ici je fais donc un saut pour retourner setanimplayerend pour que le RTS suivant me remet de là ou je suis parti à la base (d'ici  JSR setanimplayerStart)


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 75 messages ]  Aller à la page Précédente  1, 2, 3, 4, 5

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com