Logicielsmoto.com
http://www.logicielsmoto.com/phpBB/

Debut en asm sur TO8
http://www.logicielsmoto.com/phpBB/viewtopic.php?f=3&t=571
Page 10 sur 19

Auteur:  Samuel Devulder [ 10 Fév 2020, 13:20 ]
Sujet du message:  Re: Debut en asm sur TO8

A remarque aussi que LDY ,U++ (9 cycles) est avantageusement remplacé par PULU Y (7 cycles) qui en plus d'être plus rapide est plus court. Par contre PULU Y ne positionne pas les flags N et Z ce qui peut être un avantage ou un défaut suivant les cas.

Auteur:  adnz [ 10 Fév 2020, 14:15 ]
Sujet du message:  Re: Debut en asm sur TO8

ah oui ?

Car j'ai une partie du code qui est comme ça ! je pourrai mettre PULU Y à la place de chaque ligne ?

Code:
...
fois2               LDU #big_pac_anim
                    LDY  ,U++                               *<- PULU Y ici ?
                    BRA  foissuite
fois4               LDU #big_pac_anim
                    LDY  ,U++                               *<- PULU Y ici ?
                    LDY  ,U++                               *<- PULU Y ici ?
                    BRA  foissuite
fois6               LDU #big_pac_anim
                    LDY  ,U++                               *<- PULU Y ici ?
                    LDY  ,U++                               *<- PULU Y ici ?
                    LDY  ,U++                               *<- PULU Y ici ?
...


!! mais y'a l'increment aussi U++ !

Auteur:  adnz [ 13 Fév 2020, 19:53 ]
Sujet du message:  Re: Debut en asm sur TO8

salut,
Si quelqu'un aurait "2 mn" svp, une idée de comment :

je n'arrive pas à me décider de la meilleure façon de gérer les pacgums !

1 - je pense que y'en n'a trop pour faire un test de collision avec le pacman pour tester si mangé ou pas !!
2 - la meilleur solution c'est de faire un tableau 2D ? avec 0,0,1,1,1,1,0,1,0,1 etc ...
3 - ou tester : si couleur pixel devant le pacman = blanc, alors c'est une pacgum !!
4 - un system qui limite le test autour du pacman seulement !?!!

:voyons:
voilà. merci beaucoup...

Auteur:  Samuel Devulder [ 13 Fév 2020, 22:39 ]
Sujet du message:  Re: Debut en asm sur TO8

La solution du tableau 2D indiquant ce qu'il y a (pac-gum, type de mur, etc) à la coordonnée (x,y) du jeu me plait bien. C'est souple, rapide et les cases de la surface de jeu étant peu nombreuses ca ne prend pas trop de place en mémoire non plus.

Auteur:  adnz [ 14 Fév 2020, 23:09 ]
Sujet du message:  Re: Debut en asm sur TO8

ok, je vais essayer avec un tableau 2d.

J'ai dû refaire le graphisme du level pour que les alignements tombent juste.
Sprite pacman (8x16) px, déplacement droite/gauche de 4px (1 fois ramAB), déplacement haut/bas 5px.

Du coup ça me fait un tableau 26+2 en largeur et 18+2 en hauteur (+2 pour les limites bords)
Image


c'est pas trop grand comme tableau à tester ?

Auteur:  Samuel Devulder [ 15 Fév 2020, 00:43 ]
Sujet du message:  Re: Debut en asm sur TO8

Ben ca te fait un tableau 28x20. Si chaque case occupe un octet, l'ensemble occupe 560 octets. C'est tout petit. En cadeau une routine pour accéder à la case de coordonée (B, A) (B=colonne, A=ligne)
Code:
LDX #tableau
ABX
LDB #20
MUL
LEAX D,X <== X pointe sur la case (B,A)
On peut bien sur remplacer le LEAX final par un peu ce qu'on veut comme CLR D,X pour mettre 0 dans la case (B,A), ou TST D,X pour savoir si cette case est nulle, ou encore INC D,X pour y ajouter 1 (pour passer de 0 à 1 par exemple).. enfin bref.. C'est assez souple.

Auteur:  adnz [ 15 Fév 2020, 14:19 ]
Sujet du message:  Re: Debut en asm sur TO8

merci pour ce petit code. :bien:

j'imagine que le tableau commence donc par (0,0) ?
donc colonne de 0 à 27 et ligne de 0 à 19

Auteur:  Samuel Devulder [ 15 Fév 2020, 14:55 ]
Sujet du message:  Re: Debut en asm sur TO8

Oui exact.

Si on suppose que tableau déclaré comme "char tableau[20][28]" en C. Quand on fait tableau[A][B], on accède à la case "tableau + B +A*20". C'est exactement ce que calcule la fonction ci-dessus. "ABX" correspond au +B (résultat dans X) et le "LDB #20" suivit par "MUL" calcule A*20 (résultat dans D), et donc le D,X est en fait "tableau + B + A*20", pile ce dont on a besoin.

Auteur:  adnz [ 16 Fév 2020, 03:20 ]
Sujet du message:  Re: Debut en asm sur TO8

:bien:

Auteur:  adnz [ 19 Fév 2020, 20:40 ]
Sujet du message:  Re: Debut en asm sur TO8

bonjour,
Petite question!

Le moyen le plus simple de faire un incrément de 0.5 ou -0.5 !!

c'est de de temporiser 1 fois sur 2 un incrément de 1 ??

ou y'a une meilleur solution ?

Merci.

Auteur:  Samuel Devulder [ 19 Fév 2020, 23:13 ]
Sujet du message:  Re: Debut en asm sur TO8

Ben ca dépends de ce que tu veux incrémenter, mais a priori je vais dire "oui", en moyenne ca revient à augmenter de 0.5 à chaque fois.

Auteur:  adnz [ 20 Fév 2020, 00:25 ]
Sujet du message:  Re: Debut en asm sur TO8

oui en faite c'est pour créer une temporisation dans une boucle qui lit une valeur (00-ff) dans un tableau.

lit valeur 1
temporisation 1
lit valeur 2
temporisation 1
etc..

ou en fonction de la temporisation ça peut faire ça

lit valeur 1
temporisation 0.5
lit valeur 1
temporisation 0.5
lit valeur 2
temporisation 0.5
lit valeur 2
etc..

enfin je sais pas si j'ai bien expliqué !

Auteur:  Samuel Devulder [ 20 Fév 2020, 00:37 ]
Sujet du message:  Re: Debut en asm sur TO8

Tu dis temporisation et incrémenter. Incrémenter n'a pas d'unité (c'est un nombre) alors qu'une temporisation s'exprime en unité de temps (1 seconde, 1/2 seconde, etc). Donc bref, je ne comprends pas bien ce que tu veux dire dans la notion de temporisation demi entière entre 2 lectures.

Auteur:  adnz [ 20 Fév 2020, 01:10 ]
Sujet du message:  Re: Debut en asm sur TO8

oui désolé ! c'est vrai, je suis pas claire !

Le truc c'est de faire une routine "scale sprite".
Pour zoomer ou dézoomer un sprite (afficher plus grand ou plus petit que la taille normal du sprite).

Donc mon idée c'était de lire un tableau (le graphisme) par exemple Tableau = [1,2,3,4,5,6,7,8]

lecture taille normal : 1,2,3,4,5,6,7,8
lecture taille plus grand : 1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8
lecture taille plus petite : 1,3,5,7

du coup en dupliquant la lecture des valeurs du tableau ou en sautant des valeurs, je zoom ou dézoom mon sprite.

Désolé si pas encore plus claire !

Auteur:  Samuel Devulder [ 20 Fév 2020, 15:11 ]
Sujet du message:  Re: Debut en asm sur TO8

En fait tu as 2 cas de figure. Soit tu fais des pas p<1 en moyenne ce qui revient à augmenter de 1 toutes les int(1/p) étapes. Soit tu fais des pas p>=1 ce qui revient à augmenter de int(p) à chaque étape. Ca fait donc pour moi 2 routines avec comme paramètre int(1/p) ou int(p) suivant qu'il faille grossir ou diminuer. Mais attention tu n'évoque que l'avancement dans le sens horizontal. Il y a le vertical à prendre en compte aussi.

Mais avoir un paramètre variable est souvent préjudiciable à la vitesse. Perso ce que je ferais ce serait plutôt une routine d'affichage générale d'un sprite de n'importe quelle taille, et plusieurs dessins représentant les sprites rétrécis ou grossis. La vitesse sera bonne et le dessin bien mieux soigné qu'avec l'approche du paragraphe précédent.

Page 10 sur 19 Heures au format UTC + 1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/