jeu voiture - ASM - Programmation
Marsh Posté le 23-05-2005 à 15:43:30
montre ton code, Harko va t'aider
Marsh Posté le 23-05-2005 à 16:16:37
voici mon code
pour l'instant il n'y a que le circuit et la voiture qui est dessiné
mais comme je debute ma voiture c'est un carré ! lol
;jeu de voiture
data_seg Segment
ancien_mode db ?
data_seg ENDS
pile segment stack
dw 100 DUP(?)
pile ENDS
Code Segment
assume ds : data_seg
assume cs : Code
assume ss : pile
;procedure de temporisation
tempo proc near
push ax
push bx
push cx
push dx
; lit l'heure courante
mov ah, 2ch
int 21h
; additionne l'heure courante avec les valeurs d'attente
mov ah, ch
add al, cl
add bh, dh
add bl, dl
; on ajuste les valeurs pour garder un sens
cmp bl, 100 ; on commence par les centiemes de s
jb secs
sub bl, 100
inc bh
secs: cmp bh, 60
jb mins
sub bh, 60
inc al
mins: cmp al, 60
jb hrs
sub al, 60
inc ah
hrs: cmp ah, 24
jne check
sub ah, ah
; on attend
check: push ax
mov ah, 2ch
int 21h
pop ax
cmp cx, ax
ja quit
jb check
cmp dx, bx
jb check
quit: pop dx
pop cx
pop bx
pop ax
ret
tempo endp
attente_touche PROC NEAR
push ax
mov ah,08
int 21h
pop ax
ret
attente_touche ENDP
colorfond Proc near
push cx
push ax
push bx
push dx
mov cx,200 ; hauteur de la ligne verticale
mov ax,0A000h
mov es,ax
mov bx,200; hauteur de la ligne numero de la ligne
color :
mov ax,bx
push cx
mov cx,320 ; atteindre un pixel
mul cx
pop cx
mov di,ax
mov al,2 ; couleur du circuit
cld
push cx
mov cx,320 ;longeur de la ligne horizontale
rep STOSB
pop cx
dec bx
loop color
pop ax
pop bx
pop cx
pop dx
ret
colorfond endp
parcours proc near
; sauvegarde des données modifiées
push cx
push ax
push bx
push dx
;deplacement du curseur
mov cx,200 ; hauteur de la ligne verticale
mov ax,0A000h
mov es,ax
mov bx,200; hauteur de la ligne numero de la ligne
circuit :
mov ax,bx
push cx
mov cx,320 ; atteindre un pixel
mul cx
pop cx
mov di,ax
add di,90 ; faire un décalage
mov al,8 ; couleur du circuit
cld
push cx
mov cx,150 ;longeur de la ligne horizontale
rep STOSB
pop cx
dec bx
loop circuit
pop ax
pop bx
pop cx
pop dx
ret
parcours endp
voiture proc near
; sauvegarde des données modifiées
push cx
push ax
push bx
push dx
mov cx,25 ; boucle du compteur
mov ax,0A000h
mov es,ax
mov bx,190 ;numero de la ligne ou se trouve notre voiture
saut:
mov ax,bx ;sauvegarde de bx dans ax pour garder mon ancienne valeur pour ainsi decrementer bx et construire un carré
push cx
mov cx,320 ; atteindre un pixel
mul cx
pop cx
mov di,ax
add di,160 ; faire un décalage
mov al,4
cld
push cx
mov cx,15 ;longeur de la ligne vertical
rep STOSB
pop cx
DEC BX
loop saut
pop ax
pop bx
pop cx
pop dx
ret
voiture endp
main proc Far
; on conserve l'ancien mode graphique
mov ax, data_seg
mov ds, ax
; on récupere le mode graphique
mov ah, 0fh
int 10h
mov ancien_mode, al
; mode graphique
mov al,13h
mov ah,0
int 10h
; coloriage de l'ecran
call colorfond
;dessin parcours
call parcours
; dessin voiture
call voiture
add di,15
; tempo de 0.5s
xor ax, ax
mov bh,0
mov bl, 50
call tempo
;defilement du circuit
; deplacement de la voiture
call attente_touche
; interruption fin de programme
mov ah, 08
int 21h
mov al, ancien_mode
mov ah, 0
int 10h
mov ah, 4ch
int 21h
main ENDP
Code ENDS
END main
Marsh Posté le 23-05-2005 à 15:30:37
Coucou
je recherche quelqu'un qui aurait un programme d'assembleur sur un jeu de voiture ou quelqu'un qui pourrait m'aider a faire defiler l'ecran et à bouger ma voiture
merci beaucoup !!