102104Fermer
deephLe 25/04/2013 à 14:14
Je suis en train de débuter le système des dresseurs, je pense faire comme ça : avoir un tableau avec leurs données (type de dresseur : normal/spécial (qui peut être battu tout le temps)/champion d'arène/etc..., pokémons, fric qu'il donne et surtout ID de la map où il est et celle de son tile sur la carte), et mettre un switch pour chacun dans les données du joueur (pour savoir s'il ont été battus).

Par exemple, avec ces tiles :

XcVF

Il pourrait y avoir 10 dresseurs différents par carte (les 10 points à la fin), chaque fois que le joueur marchera sur ces tiles, il suffira de regarder quel dresseur c'est par rapport à la carte, et si le joueur essai de parler directement au sprite (tile) du dresseur, ce sera plus simple de ne rien faire.

Voilà par exemple ce que ça donnerait :

N9Yn

Vous en pensez quoi ? smile

edit : d'ailleurs je peux même coder le switch sur 1 bit avec quelque chose du genre (pour 32 dresseurs) :
get_trainer_state:	; le carry flag est mis si le dresseur a déjà été battu
	ld a,(trainer_id)
	push af
	srl a
	srl a
	srl a	; a/8
	ld (de),a
	ld hl,trainers_state
	add hl,de
	pop af
	and %00000111
	ld b,a
	ld a,(hl)
 
get_trainer_state_loop:
	sla a
	djnz get_trainer_state_loop
	ret
 
trainers_state:
	.db 0,0,0,0

(J'ai pas testé par contre et il y a surement plus optimisé, et une routine "set_trainer_state" risque d'être un peu plus chiante à faire, vu qu'on ne peut pas choisir "dynamiquement" le numéro du bit qu'on change avec l'instruction set...)

edit 2 : j'ai changé la taille des sprites des pokémons, on passe de 40*26 pixels à 32*26.

edit 3 : bon c'est à mon tour de partir une petite semaine sans internet, j'ai commencé l'ajout de nouvelles fonctions à l'éditeur de maps : la gestion des données des pokémons, des attaques et de quelques paramètres globaux (où le joueur est placé lors d'une nouvelle partie etc...), donc je compte continuer ça de mon côté. J'attends ton (vos ?) avis sur le système des dresseurs, et si c'est bon je pense commencer à coder ça ensuite.

Pour les combats, il ne manque en gros que l'ajout des objets (pokéballs surtout), la gestion de la fuite, l'IA des dresseurs et le réglage de quelques bugs (répartition de l'XP toujours sick).