Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Deplacement [ Divers / Débutant(e) ] (FireMan57)

jeudi 17 janvier 2008 à 01:50:22 | Deplacement

FireMan57

Bonjour, je débute en asm x86 et j'aimerais savoir comment faire pour effectuer correctement le déplacement d'un personnage en mode graphique. J'ai déjà tenter quelque chose mais les touches utilisées ne sont pas bonnes et au lieu de simplement se déplacer mon "personnage" trace une ligne . Merci de votre aide voici mon morceau de code :

;---------PACMAN-------------------------------------------------------------------

                                                                         
    ;apparution
         mov si,y      ;mise en place de pacman
          imul si,320
          add si,x
        
         mov byte ptr es:[si],6  ; chiffre = couleur      
                                               
                                                                         
        

    ;deplacement
        mov ah,1     ;attente touche
        int 16h
       
        jz rien        ;pas de touche
       
        mov ah,0     ;touche
        int 16h

   
         cmp al,'p'
         jne quit
        
         jmp fini 
        
  quit:      
         cmp al,'z'        
         jne pashaut                                                        
         
         mov ax,0                                                     
         add x,ax
         mov ax,-1                                                     
         add y,ax                                                     
        
         jmp rien                                                   
  pashaut:                                                                  
         cmp al,'s'        
         jne pasbas                                                        
                                                             
         mov ax,0                                                     
         add x,ax
         mov ax,1                                                     
         add y,ax
        
         jmp rien                                                   
  pasbas:                                                                  
         cmp al,'q'        
         jne pasgauche 
                                                               
         mov ax,-1                                                     
         add x,ax
         mov ax,0                                                     
         add y,ax
                                                               
         jmp rien                                                   
  pasgauche:                                                                  
         cmp al,'d'        
         jne rien
                                                           
         mov ax,1                                                     
         add x,ax
         mov ax,0                                                     
         add y,ax

   
   
rien:   

    
;---------bouclage-----------------------------------------------------------------

    jmp boucle

 

jeudi 17 janvier 2008 à 08:25:21 | Re : Deplacement

Nasman

Bonjour Fireman57,

Je pense que ton problème vient du fait que tu dessines ton personnage quand tu le déplaces mais que tu ne restaures pas l'ancien emplacement. Il faudrait cependant que tu précises la résolution de ton écran (320 colonnes ?) et les boucles d'attente.

Nota: Pourquoi ajouter 0 à un nombre, à quoi celà sert-il ?

Pour mettre à zéro un registre, préférer xor registre,registre

A+


jeudi 17 janvier 2008 à 11:02:37 | Re : Deplacement

FireMan57

Pour ce qui est du mode graphqie c'est celui-ci :


    mov ax,13h ;mode video320*200 remplit de 0
    int 10h   

    mov ax,0a000h ;=ES  (mémoire vidéo)                     
    mov es,ax  

je pensais que remttre un zero a ce nombre m'anulerai sa position précédente.
Il faut donc que j'utilise xor est-il possible d'avoir une exemple pour un mouvement vers la drotie par exemple ?

Je vous remercie.





Cette discussion est classé dans : add, mov, ax, al, cmp


Répondre à ce message

Sujets en rapport avec ce message

probleme de conversation de hexa en ascii [ par wapiti ] voici le programme qui converti du binaire en ascii.model small.stack;-------------------------------------------------------------------------------- Multiplication de deux nombres compris entre 0 et 99 en assembleur [ par petitspirou ] salut, j'ai un programme a faire mais je suis nul en assembleur, voici ce que j'ai fais mais ca ne fonctionne pas.Quelqun peut'il me le corriger et me Kernel qui n'est pas chargé par le bootloader [ par JB_59 ] Salut tout le monde !Voilà j'ai un problème de chargement de Kernel; j'ai codé un boot loader en asm qui m'affiche la phrase "Chargement du kernel..." probleme avec un bootloader [ par anonyme_man_in_this_world ] salut !! je voudrais coder un bootloader , tous ce compile bien ,je copie / colle le fichier .BIN dans une disquette ,mais lors le redemmarrage d Modifer le vecteur d'interruptions [ par vecchio56 ] Bonjour J'essaie de refaire la source http://www.cppfrance.com/code.aspx?ID=33558 en assembleur (ca consiste à modifier la routine de l'interruption 0 Graphique [ par RM50Man ] Bonjour a tous!!!!Je veux tracer une ligne mais ca ne marche pas, je passe les parametre par la pile,et ensuite ds la fonction principale, je remplis Bonjour [ par red4ever ] J'aurai aimer savoir comment permettre a l'utilisateur d'entrer une chaine de caractere,la ranger dans bx et ensuite l'afficher a l'ecran??J'ai beau e problème : nombres aléatoires random [ par dmontavon ] Je cherche à générer un nombre aléatoire avec le code :Random:   mov dx,128             & assembleur [ par unionx ] Bonjour a tousbon;j'aime bien apprendre la programmation en assembleur , sous ms-dos :) , mais j'ai pas trouvé des bonnes tutorial , il est vraiment d Afficher l'heure avec la memoire video [ par RootASM ] Bonjour,Je voudrais afficher l'heure grace à la mémoire vidéo car elle permet d'économiser une interuption.Quand je le lance sous afd, j'ai bien dans


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.