Jeux simple en assembleur
Résolu/Fermé
bene54800
Messages postés
26
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 janvier 2010
-
11 janv. 2010 à 21:28
Utilisateur anonyme - 21 janv. 2010 à 23:19
Utilisateur anonyme - 21 janv. 2010 à 23:19
A voir également:
- Jeux simple en assembleur
- Jeux java itel football - Télécharger - Jeux vidéo
- Iphone 14 simple - Guide
- Zuma jeux - Télécharger - Jeux vidéo
- Jeux java itel 5360 ✓ - Forum Jeux vidéo
- Jeux comme amour sucré - Forum Jeux vidéo
17 réponses
Utilisateur anonyme
12 janv. 2010 à 11:25
12 janv. 2010 à 11:25
Bonjour,
vérifie que tu spécifies bien le type de tes variables de position.
Du genre, précise mov ax, dword:[variableposX] si tu as défini la variable comme un dword (dd)
Une fois j'avais un problème à cause de ça.
Sinon, pour les collisions c'est très simple, a chaque fois qu'une action est lancée, aller d'un pixel à gauche par exemple, avant de repeindre le pixel tu vérifies que tes positions mur et positionX - 1 ne sont pas égales.
vérifie que tu spécifies bien le type de tes variables de position.
Du genre, précise mov ax, dword:[variableposX] si tu as défini la variable comme un dword (dd)
Une fois j'avais un problème à cause de ça.
Sinon, pour les collisions c'est très simple, a chaque fois qu'une action est lancée, aller d'un pixel à gauche par exemple, avant de repeindre le pixel tu vérifies que tes positions mur et positionX - 1 ne sont pas égales.
bene54800
Messages postés
26
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 janvier 2010
12 janv. 2010 à 16:40
12 janv. 2010 à 16:40
Salut, dsl de pa répondre vite mais je travaille beaucoup sur le jeux...
Donc j'ai réussis a faire bouger mon perso dans son labyrinthe (j'ai jouer sur la couleur du pixel d'après)
J'ai un nouveau problème je voudrais faire évoluer 2 personnage est donc stocker les coordonné de chacun en temps réel. Je m'explique:
1) bouger le 1er perso
2) sauvegarder sa nouvel position
3) bouger le 2eme perso
4) sauvegarder sa nouvel position
Le principe est assez simple me direz vous et la solution aussi je pense mais je ne trouve pas. Il me suffit de stocker les valeur de dx et cx ( cx et dx sont des coordonnées)
J'ai donc essayé : mov dx, variable1
mov cx, variable2
variable1 db 0 dup(0FFH)
variable2 db 0 dup(0FFH)
Mais sa ne marche pas.
Pour simplifié mon problème : Je ne sais pas comment stocker dx et cx dans des variable !
Donc j'ai réussis a faire bouger mon perso dans son labyrinthe (j'ai jouer sur la couleur du pixel d'après)
J'ai un nouveau problème je voudrais faire évoluer 2 personnage est donc stocker les coordonné de chacun en temps réel. Je m'explique:
1) bouger le 1er perso
2) sauvegarder sa nouvel position
3) bouger le 2eme perso
4) sauvegarder sa nouvel position
Le principe est assez simple me direz vous et la solution aussi je pense mais je ne trouve pas. Il me suffit de stocker les valeur de dx et cx ( cx et dx sont des coordonnées)
J'ai donc essayé : mov dx, variable1
mov cx, variable2
variable1 db 0 dup(0FFH)
variable2 db 0 dup(0FFH)
Mais sa ne marche pas.
Pour simplifié mon problème : Je ne sais pas comment stocker dx et cx dans des variable !
Utilisateur anonyme
12 janv. 2010 à 16:50
12 janv. 2010 à 16:50
essaye mov dx, byte[variable1]
et mov cx, byte[variable2]
C'est ce que te disais plus tot. Le compilateur n'a aucun moyen de connaitre la taille de tes variables. Or tu dois quand même lui indiquer, grace a la taille suivie de crochets.
Pour sauvegarder :
mov byte[sauvegarde1], byte[variable1]
mov byte[sauvegarde2], byte[variable2]
Si c'est ce que tu veux... Mais je n'en vois pas l'interet.
Apres, pourquoi mets-tu un DUP() apres ta déclaration de variable ?
DUP est pour un tableau, or il n'y en a pas besoin la je crois...
et mov cx, byte[variable2]
C'est ce que te disais plus tot. Le compilateur n'a aucun moyen de connaitre la taille de tes variables. Or tu dois quand même lui indiquer, grace a la taille suivie de crochets.
Pour sauvegarder :
mov byte[sauvegarde1], byte[variable1]
mov byte[sauvegarde2], byte[variable2]
Si c'est ce que tu veux... Mais je n'en vois pas l'interet.
Apres, pourquoi mets-tu un DUP() apres ta déclaration de variable ?
DUP est pour un tableau, or il n'y en a pas besoin la je crois...
bene54800
Messages postés
26
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 janvier 2010
12 janv. 2010 à 18:06
12 janv. 2010 à 18:06
Je vien d'arrivé chez moi, je vais manger un petit truc pi je mis met, je te tiens au courant.
eu juste, je les déclare : variable1 db ??
eu juste, je les déclare : variable1 db ??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
12 janv. 2010 à 18:25
12 janv. 2010 à 18:25
variable db ?
puisqu'au départ tu ne sais pas quelle valeur mettre dedans.
Sur mon site, peu complet d'ailleurs, va dans la section sources, et télécharge le projet "graph" tu auras la source, comme ça ca te donne certaines info, comment je l'ai fait etc...
C'est de l'asm 16 bits sous x86.
puisqu'au départ tu ne sais pas quelle valeur mettre dedans.
Sur mon site, peu complet d'ailleurs, va dans la section sources, et télécharge le projet "graph" tu auras la source, comme ça ca te donne certaines info, comment je l'ai fait etc...
C'est de l'asm 16 bits sous x86.
bene54800
Messages postés
26
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 janvier 2010
12 janv. 2010 à 19:53
12 janv. 2010 à 19:53
Re, alors j'ai essayé : mov byte[variable1] ( déclaration: variable1 db)
mov byte[variable1] ( déclaration: variable1 dw)
mov variable1 ( déclaration: variable1 db)
mov variable1 ( déclaration: variable1 dw)
et j'ai a chaque une erreur : pgp.asm(3868) : error A2006: undefined symbol : variable1
Je suis a bout..
mov byte[variable1] ( déclaration: variable1 dw)
mov variable1 ( déclaration: variable1 db)
mov variable1 ( déclaration: variable1 dw)
et j'ai a chaque une erreur : pgp.asm(3868) : error A2006: undefined symbol : variable1
Je suis a bout..
bene54800
Messages postés
26
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 janvier 2010
12 janv. 2010 à 19:55
12 janv. 2010 à 19:55
la déclaration est fausse je pense. je ne sais pas comment on déclare une valeur numérique
bene54800
Messages postés
26
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 janvier 2010
12 janv. 2010 à 20:05
12 janv. 2010 à 20:05
je vien de dl ton programme ozox, c'est pas mal jolie !!! lol
je vais voir un peu comment tu as fait pi je vais essayer de continuer, fait moi signe quand tu est la
je vais voir un peu comment tu as fait pi je vais essayer de continuer, fait moi signe quand tu est la
bene54800
Messages postés
26
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 janvier 2010
12 janv. 2010 à 20:43
12 janv. 2010 à 20:43
Alors grâce a ton programme j'ai vu que je n'avais pas de segment data... je débute en assembleur et honnêtement je ne savais pas qu'il fallait en mettre un.
mon ancien:
assume cs:cseg,ds:cseg,ss:cseg
cseg segment
TOUT MON PROGRAMME
cseg ends
Nouveau assume
cs:cseg,ds:data,ss:cseg
cseg segment
TOUT MON PROGRAMME
cseg ends
data segment
variable1 dw ?
variable2 dw ?
Mais ces instructions ne marche toujours pas:
mov dx[variable1] pgp.asm(3871) : error A2008: syntax error : in instruction
mov dx, byte[variable1] pgp.asm(3871) : error A2009: syntax error in expression
Celle-ci marche:
mov dx, variable1
est-ce-que la valeur de dx se retrouve dans variable1 ?
mon ancien:
assume cs:cseg,ds:cseg,ss:cseg
cseg segment
TOUT MON PROGRAMME
cseg ends
Nouveau assume
cs:cseg,ds:data,ss:cseg
cseg segment
TOUT MON PROGRAMME
cseg ends
data segment
variable1 dw ?
variable2 dw ?
Mais ces instructions ne marche toujours pas:
mov dx[variable1] pgp.asm(3871) : error A2008: syntax error : in instruction
mov dx, byte[variable1] pgp.asm(3871) : error A2009: syntax error in expression
Celle-ci marche:
mov dx, variable1
est-ce-que la valeur de dx se retrouve dans variable1 ?
Utilisateur anonyme
12 janv. 2010 à 21:25
12 janv. 2010 à 21:25
Bizarre...
En tout cas, ss:cseg est faux. Dans tout programme il faut une pile.
Attention aussi, le langage asm dépend du processeur, mais aussi du compilateur. Cette synthaxe que je t'expliquet correspond au compilateur TASM.
En tout cas, ss:cseg est faux. Dans tout programme il faut une pile.
Attention aussi, le langage asm dépend du processeur, mais aussi du compilateur. Cette synthaxe que je t'expliquet correspond au compilateur TASM.
bene54800
Messages postés
26
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 janvier 2010
12 janv. 2010 à 21:44
12 janv. 2010 à 21:44
je suis sur le 8086, avec radasm, MASM
alors j'ai réussis a stocker en faisant: mov variable1, dx
mais je ne sais pas si on peut récrire sur variable1 paske j'ai fait quelque test non concluant...
Je dois mettre quoi a la place de ss:cseg ?
alors j'ai réussis a stocker en faisant: mov variable1, dx
mais je ne sais pas si on peut récrire sur variable1 paske j'ai fait quelque test non concluant...
Je dois mettre quoi a la place de ss:cseg ?
bene54800
Messages postés
26
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 janvier 2010
12 janv. 2010 à 21:53
12 janv. 2010 à 21:53
La variable se sotck bien ça marche niquel, mais j'ai l'impression que quand la valeur est modifié et que je la restock et bin elle ne se stock pas
Utilisateur anonyme
12 janv. 2010 à 23:13
12 janv. 2010 à 23:13
ss:pile
Et plus bas tout a la fin mais avant end begin tu mets ça :
pile segment stack
Var 256 db DUP(?)
pile ends
end begin ( begin est en fait le nom de ton premier label ok ?)
Et plus bas tout a la fin mais avant end begin tu mets ça :
pile segment stack
Var 256 db DUP(?)
pile ends
end begin ( begin est en fait le nom de ton premier label ok ?)
bene54800
Messages postés
26
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 janvier 2010
16 janv. 2010 à 13:36
16 janv. 2010 à 13:36
Salut, désolé de répondre aussi tard mais j'ai terminer le jeux !!! =)
Pour la pile j'ai fait ce que tu ma dit OZOX. Enfin Je me suis aussi servis du programme sur ton sité, c'est surtout ça qui ma aidé, c'est pour ça que je veux te dir un gros merci paske j'ai eu 20/20 a mon jeux !!!! =)
Si tu veu laisse moi ton e-mail je te l'envoi.
merci pour tout a bientot peu etre
Pour la pile j'ai fait ce que tu ma dit OZOX. Enfin Je me suis aussi servis du programme sur ton sité, c'est surtout ça qui ma aidé, c'est pour ça que je veux te dir un gros merci paske j'ai eu 20/20 a mon jeux !!!! =)
Si tu veu laisse moi ton e-mail je te l'envoi.
merci pour tout a bientot peu etre
bene54800
Messages postés
26
Date d'inscription
vendredi 17 octobre 2008
Statut
Membre
Dernière intervention
31 janvier 2010
21 janv. 2010 à 12:40
21 janv. 2010 à 12:40
tu peut me donner ton adresse e-mail pour que je te l'envoi si tu veux...