1

resalu, ben en fait j'avance toujour dans mon snake (mon premier prog)

bon un snake c pa tro dur , g fé un menu super au nivo presentation .........
j' ai pa encore fini la partie "OPTIONS" mais la je commence à faire le moteur du jeu
le tuc c que j'avais pas envie de faire un snake moche com une barre noire (snake 1 sur nokia)
au debut g voulu imiter le snake 2 de nokia mais j'ai rapidement vu que cT vraiment tro compliqué pour moi pour l'instant
avec la gestion de la tete et de la queue et les "vertebres" qui se deforment dans les virages, le snake qui ouvre la bouche avant de bouffer...................
en fin bon j' ai abandonné

je me sui alors di que je vais faire un peu com celui sur ti 89 cadire une barre noire mais arrondie a la tete et a la queue
mon snake fé 4 pixels de large, et a la tete et a la queue il y a les 2 pixels du milieu qui ressortent pour donner l'effet d'arrondi
mais il y a un GROOOOOOOOOSSSSSS probleme

c que comme ces 2 pixels ressortent il fo faire des "vertebres" (la case qu'on ajoute a la tete pour faire avancer) qui s'emboitent
et donc la tete aura une forme avec un carre noir au mileu , 2 pixels proeminant a l'avant et les 2 pixels externes de l'arriere proeminants aussi
(pour s'emboiter avec la case d'avant)

jusque la je m'en suis assez bien sorti en modifiant la routine de ion pour qu'elle "affiche" les sprites ou les "effacent" et non les "xor" cad que si c noir sur l'ecran ca le restera avec "affiche"

mais la ou je seche c pour la queue............
en effet comme mes sprites ont un sens(du a l'arrondi)

il fo que je fasse 4 sprites en tou (pour chaque direction)

quand je change de direction pour la tete il y a pa de probleme puisque je le sé

alor que pour la queue..............
je ne sais pa que il faudra changer de dirction en effacant puisque ca s'est passé il y a qq "tours" deja

g pensé a faire une 2eme liste pour indiquer a l'historique dans quel sens est le snake à telles coordonnées
mais bon avec il faudra faire plein de labels et des "cp" et des "jp" .......
pour savoir la direction et quel sprite effacer
..........

bon voila g essayé de trouver un truc a effacer ui soit universel mais c pa possible parce que a cause de l'arrondi mon sprite deborde sur la case d'apres
donc .........
voila.......


il y a aussi un autre prob un peu moins navrant mais tou de meme
c que je veu faire un snake qui peu passer d'un coté de l'ecran a l'autre
et comme les sprites d'une case debordent sur celle d'avant comment je vé diviser celui ci pour que la partie qu'il fo apparaisse de l'autre coté
............................. g pensé un retouché encore un peu la routine d'affichage des sprites de ion pour la "customiser" vraiment a mon snake
est ce une bonne idée




VOILA POUR CEUX QUI ONT LU ET COMPRIS CE GROS PAVE POURRIEZ VOUS M' AIDER A FAIRE MON PREMIER PROG
QUI D'AILLEURS S'IL EST COM JE L'IMAGINE SERA SANS DOUTE LE MEILLEUR SNAKE z80 DU NET

si je n'ai pa éT assez clair sur certains points n'hestez pa a demandé des precision mais pliiiiiiiiiiiiiiiizzzzzzzzzzz aiiiiiiiiidez moiiiiiiiiiiii..............

MERCI D'AVANCE!

2

j'ai lu vite fait
ton prob, c'est que tu n'arrives pas à afficher/effacer les bons sprites en fonction de la direction du serpent ?
comment geres tu les directions, l' "historique" du serpent ? l'effacage de la queue ?
-pacHa

3

exactement
ben pour les directions je fai une boucle pour chaque direction
l'histo c une liste que je decale a chaque foi avec "lddr" et je met les coordonnées de la queue avant
et pour effacer avant de decaler j'efface le dernier element de la liste (celui qui sera ecrasé apres le decalage)

mais sinon g reussi a resoudre le problem en repensant un peu le design

mais la g un autre problem qui doit etre bcp plus simple a resoudre c que je sais pa comment ralentir mon serpent en fonction de la vitesse
quand je fait une boucle avec "halt" ca bloque le jeu et avec "nop" ben c com s'il y avait rien il attend pa la durée du cycle
en fait voila ce que je fé

ld a,(vitesse) ; plu la vitesse est petite plu il fo ralentir
ld b,a ; 11 c la vitesse max
ld a,11
sub b
loopVit:
halt/nop
dec a
cp 0
jr nz,loopVit
....................
Voila alors c quoi mon erreur est ce que le fait que ca soi sous ion affecte qq chose mais je pense pa alors????
a noter que g testé avec Vti donc peut etre ca vien de la????
mais il y a bcp de jeux qui utilisent un systeme de vitesse et qui fonctionnent sou ion dans Vti

4

'halt' fonctionne très très bizarrement avec vti
et de toute facon, halt c'est pas bien
le mieux serait de mettre des instructions mettant en jeu sp ou ix, qui sont des instructions assez lentes (ex (sp),hl \ ex (sp),hl à la place de nop/halt ca devrait le faire)
-pacHa

5

ben merci maiiiisss..............
voila ma boucle ca ralenti pa d'un poil

ld a,50
gloop:
ex (sp),hl
ex (sp),hl
ex (sp),hl
ex (sp),hl
ex (sp),hl
ex (sp),hl
ex (sp),hl
ex (sp),hl
dec a
cp 0
jr nz,gloop
et pourtant g abusé des "ex"
et g mi 50 dans le compteur!!!!!!
est ce que c mon TASM carrement qui est detraqué ou il y a un problem ??? ou quoi????
je comprend plu rien........ouiiiiiiiiiiiiiiiiiiiinnnnnnnnnnnnnnnnnnnn lol
est ce que qq chose qui est avant dans mon source peu influer?????
merci beaucoup Pacha en tou cas mem si je sui toujour aussi deprimé............... mur

6

euh
alors deja, petitr remarque, reiseigne sur djnz, ca permet de faire des boucles avec compteur, pareil que ca que tu fais avec a, mais avec b, et avec des opcodes spéciaus (djnz xxx)
euh sinon, j'ai pas regardé quand j'ai dit ex (sp),hl, c'est ptet pas très lent...regarde un truc genre z80.txt
-pacHa

7

ta boucle ne ralenti pas parce que tout simplement ta boucle n'est pas suffisante.... et oui l'asm, ce n'est pas le basic, c'est trop rapide.... regarde ton autre poste, je t'ai fais une routine qui doit etre plus efficace.....