Logicielsmoto.com

Nous sommes le 28 Mar 2024, 15:48

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 281 messages ]  Aller à la page Précédente  1 ... 7, 8, 9, 10, 11, 12, 13 ... 19  Suivante
Auteur Message
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 10 Fév 2020, 13:20 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
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.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 10 Fév 2020, 14:15 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
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++ !

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 13 Fév 2020, 19:53 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
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...

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 13 Fév 2020, 22:39 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
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.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 14 Fév 2020, 23:09 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
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 ?

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 15 Fév 2020, 00:43 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
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.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 15 Fév 2020, 14:19 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
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

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 15 Fév 2020, 14:55 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
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.

_________________
Good morning, that's a nice Tnetennba


Dernière édition par Samuel Devulder le 16 Fév 2020, 03:24, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 16 Fév 2020, 03:20 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
:bien:

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 19 Fév 2020, 20:40 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
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.

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 19 Fév 2020, 23:13 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
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.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 20 Fév 2020, 00:25 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
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é !

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 20 Fév 2020, 00:37 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
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.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 20 Fév 2020, 01:10 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
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 !

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 20 Fév 2020, 15:11 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1802
Localisation: Brest
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.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 281 messages ]  Aller à la page Précédente  1 ... 7, 8, 9, 10, 11, 12, 13 ... 19  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 44 invités


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