Skip to content
Snippets Groups Projects
Commit 46bfc177 authored by RHECHIM OUALID's avatar RHECHIM OUALID
Browse files

finally fixed mouvement problem

parent 19bbb1c0
Branches
No related merge requests found
......@@ -459,7 +459,7 @@ tailleGrille: .word 16 # Nombre de case du jeu dans une dimension.
# La tête du serpent se trouve à (snakePosX[0], snakePosY[0]) et la queue à
# (snakePosX[tailleSnake - 1], snakePosY[tailleSnake - 1])
tailleSnake: .word 2 # Taille actuelle du serpent.
tailleSnake: .word 3 # Taille actuelle du serpent.
snakePosX: .word 0 : 1024 # Coordonnées X du serpent ordonné de la tête à la queue.
snakePosY: .word 0 : 1024 # Coordonnées Y du serpent ordonné de la t.
......@@ -530,57 +530,52 @@ updateGameStatus:
#Retour: $v0 La valeur 0 (haut), 1 (droite), 2 (bas), 3 (gauche), 4 erreur
li $t1, 4
MoveUp:
bne $a0, 0, MoveDown
lw $a1, snakePosY($zero)
sw $a1, snakePosY($t1)
lw $a1, snakePosX($zero)
sw $a1, snakePosX($t1)
addi $a1, $a1, 1
sw $a1, snakePosX($zero)
j exitU
MoveDown:
bne $a0, 2, MoveR
lw $a1, snakePosY($zero)
sw $a1, snakePosY($t1)
lw $a1, snakePosX($zero)
sw $a1, snakePosX($t1)
addi $a1, $a1, -1
sw $a1, snakePosX($zero)
j exitU
MoveR:
bne $a0, 1, MoveL
lw $a1, snakePosX($zero)
sw $a1, snakePosX($t1)
lw $a1, snakePosY($zero)
sw $a1, snakePosY($t1)
addi $a1, $a1, 1
sw $a1, snakePosY($zero)
j exitU
MoveL:
bne $a0, 3, exitU
lw $a1, snakePosX($zero)
sw $a1, snakePosX($t1)
lw $a1, snakePosY($zero)
sw $a1, snakePosY($t1)
addi $a1, $a1, -1
sw $a1, snakePosY($zero)
j exitU
addi $sp $sp -32
sw $t0 0($sp)
sw $t1 4($sp)
sw $t2 8($sp)
sw $t3 12($sp)
sw $ra 16($sp)
QueueUpdate:
lw $t0, tailleSnake ## t0 = size of snake
la $t1, snakePosX ## $t1 = snakePosX[0]
la $t2, snakePosY ## t2 = snakePosY[0]
addi $s0, $t0,-2 ## offset
li $a3, 1 #index
loop:
beq $a3, $t0, fin_loop
sll $t3, $s0, 2 #t3 = 4 * $s0
## Updating snakePosX
addu $t3, $t3, $t1
lw $t4, 0($t3)
sw $t4, 4($t3)
## Updating snakePosY
sll $t3, $s0, 2 #t3 = 4 * $s0
addu $t3, $t3, $t2
lw $t5, 0($t3)
sw $t5, 4($t3)
addi $a3, $a3, 1
addi $s0, $s0, -1
j loop
fin_loop:
lw $a0, snakePosX($zero)
addi $a0, $a0, 1
sw $a0, snakePosX($zero)
exitU:
lw $t0 0($sp)
lw $t1 4($sp)
lw $t2 8($sp)
lw $t3 12($sp)
addi $sp $sp 32
jr $ra
############################### conditionFinJeu ################################
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment