Je ne sais pas, il faut justement les chercher après finir cette partie de la routine de bataille.
Est-ce que tu as fait quelque chose avec les maps ? Tous les tiles sont incorrects :/
chickendude (./124) :
Et une autre chose, tu crois qu'avoir tous les calculs va bénéficier ton jeu ?
;*********************************
ld hl,menu_key_loop ;*
push hl ;* where to jump
;*********************************
ld a,$fe ;check arrows
call get_key
or $f0 ;erase bits 4-7
ld b,a
inc b ;if b+1 = 0, b = $FF then no arrows have been pushed
ld hl,cursor_wait ;the counter
jr nz,$+4 ;jump if a key has been pushed
ld (hl),b ;reset the counter
ret
dec (hl) ;counter-1
ret p ;quit if plus (>=0)
ld (hl),cursor_speed ;refill the counter
chickendude (./134) :
Mais si on fait la pause, si tu pousses une autre touche pendant la pause le curseur n'avancera pas.
#define cursor_speed 20
menu_key_loop:
ld b,cursor_speed
call wait ;slow down the cursor
ld a,$df ;check ALPHA
call get_key
rla
ret nc
ld a,$bf ;check 2nd ($bf = key group #7 : Y=, WINDOW, ZOOM, TRACE, GRAPH, 2nd, MODE, DEL)
call get_key
cp 223 ;2nd
jr z,menu_select
;*************************
ld hl,menu_key_loop ;*
push hl ;* where to jump
;*************************
ld a,$fe ;check arrows
call get_key
or $f0 ;erase bits 4-7
ld b,a
inc b ;if b+1 = 0, b = $FF then no arrows have been pushed
ret p ;quit if plus (>=0)
; etc...
chickendude (./134) :
Et comment devraient être les valeurs de CE ?
0 = not effective
1 = normal
2 = super effective
3 = no effect?
chickendude (./136) :
Quant au commit, c'est parce qu'en Chine on n'aime pas Google, la plupart des fois mes commits sont bloqués :/
chickendude (./136) :
La routine "calculate_damage" est presque près, aussi, mais il faut que je me couche dans quelques minutes
ld c,(hl) ;max HP
dec hl
ld h,(hl) ;cur HP
ld l,0
call hl_div_c ;curHP/maxHP (l will hold the remainder, aka the fraction)
ld b,50
call slow_mult_hl_b ;the bar takes up 50 pixels
Maintenant la routine est plus rapide et plus petite J'ai simplifié les calculs des barres de PV :
J'ai presque fini les batailles ::
chickendude (./144) :
Oui, mais les PVs ne sont-elles limitées (pour le moment) à 255 ? Plus tard on peut utiliser une valeur 24-bit pour le faire, si tu veux augmenter la gamme de valeurs.
chickendude (./144) :
Personnellement je crois qu'il se voit mieux en minuscules, mais si tu veux rester fidèle à l'originale c'est bon aussi, le plus important c'est qu'il marche :P
chickendude (./146) :
Comme ça, on calcule une fois les stats du pokémon et après on peut les utiliser dans tous les calculs, les strings, etc. Pour le moment c'est pas très important, mais je crois que quand tu travailleras avec les dresseurs ça va te simplifier beaucoup la vie. Au finale d'une bataille tu peux recopier les données nécessaires à ton équipe (HP, niveau, état, ...). Qu'en penses-tu ?
chickendude (./146) :
Quant à la vitesse, je suis d'accord, avant c'était trop rapide, peut-être on pourra s'acheter un vélo ou des chaussures de course ?
deeph (./147) :Je les ajoute seulement parce que je m'en sers dans la routine de menu, mais oui c'est facile à les trouver avec l'id pokédex. A propos, dans gbavar.inc il dit : backBuffer = saferam1
Oui c'est vrai que ça facilitera la récupération des données dans le cas des dresseurs. Mais je ne pense pas que recopier le nom/le sprite du pokémon en RAM soit obligatoire : ce sont des données "statiques" qu'on peut retrouver si on a son ID pokédex.
deeph (./147) :Qu'est-ce que tu veux dire ? Tu ne pensais pas ajouter de dialogues avec les npcs ? Je parlais simplement d'une méthode pour marcher plus vitement, comme le vélo dans l'original.
Oui mais il faudra ajouter un (petit) système de dialogue avec les npc dans ce cas. On pourra s'inspirer de ce qu'on fait avec les dresseurs (avoir des tiles propres aux npc et une table par map).
chickendude (./148) :
Est-ce que l'on utilise saferam1 aussi ?
chickendude (./148) :
Qu'est-ce que tu veux dire ? Tu ne pensais pas ajouter de dialogues avec les npcs ? Je parlais simplement d'une méthode pour marcher plus vitement, comme le vélo dans l'original.
chickendude (./148) :
et pour les attaques comme "growl" qui ne font aucun dommage, je crois que l'on peut utiliser un "effet d'état" pour les gérer, par exemple 5 = baisser la défense, 6 = baisser la défense beaucoup, 7 = augmenter la défense, etc.
chickendude (./148) :
Je crois que je pourrai optimiser un peu tes routines pour calculer l'expérience gagné, mais pour le moment l'expérience ne marche pas.