Déplacer le sprite hard de Link

Plus d'informations
28 Juil 2020 17:19 #84 par ZISQUIER
Déplacer le sprite hard de Link a été créé par ZISQUIER
Bon voici comment j'ai gérer le déplacement de Link, par exemple ici vers la gauche.
Sachant que dans le jeu les collisions de certaines tiles se font exclusivement vers le haut (comme l'accès au donjon c'est quand on va vers le haut)


signé, Zisquier

proverbe de pro-CPC : « çà sert à rien d'avoir des sprites hard et un scroll fluide avec des graph sont dégueu, une palettes moches et un jeu vide»
Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
28 Juil 2020 17:28 #85 par ZISQUIER
Réponse de ZISQUIER sur le sujet Déplacer le sprite hard de Link
continuer_gauche
		LD		hl,(SPRH0_X)				; récupération des coordonnées en X de link.
		dec		hl:	dec		hl
		dec		hl:	dec		hl				; à gauche de 4
		LD		(SPRH0_X),hl				; on sauve la nouvelle coordonée dans les deux
		LD		(SPRH1_X),hl				; animations de link (j'utilise 2 sprites pour link)
		ld		(SPRH_X),hl					; puis dans la variable générale.
		call 	collision_gauche
		ld		B,114						; au delà de 114 on passe pas
		LD		A,(ntile_spr0)	
		SBC		A,B
		CALL	NC,stop_gauche_link			; et là on rétablit les coordonées pour plus avancer.
		
		; test de la collision avec le bord gauche de l'écran
		ld		hl,	(SPRH_X)				; on récupere les coordonnée Y de Link
		OR		A							; on remet les flag à zero
		LD		DE,(bord_gauche)			; on donne la coordonnée à partir de laquelle 
		SBC		HL,DE						; link touche le bord bas de l'écran	
		JP		Z,VERS_LA_GAUCHE_LINK		; egale à zéro on va vers le bas
			
		LD		a,(compteur_anim_link)		; un compteur pour déterminer pendant combien de
		dec		a							; boucle link va garder le même mouvement
		LD		(compteur_anim_link),a
		CP		a,0							; quand c'est fini Link change de mouvement.
		JP		z,reinit_anim_link			; et on jump à sa ré initialisation
		JP		retour_direction

signé, Zisquier

proverbe de pro-CPC : « çà sert à rien d'avoir des sprites hard et un scroll fluide avec des graph sont dégueu, une palettes moches et un jeu vide»

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
29 Juil 2020 19:58 #86 par ZISQUIER
Réponse de ZISQUIER sur le sujet Déplacer le sprite hard de Link
Voici ce qui se passe quand link se déplace vers le haut ou vers le bas (car oui il rencontre plusieurs tiles qui permettent de savoir si on rentre ou si l'on sort de tel ou tel endroits)



signé, Zisquier

proverbe de pro-CPC : « çà sert à rien d'avoir des sprites hard et un scroll fluide avec des graph sont dégueu, une palettes moches et un jeu vide»
Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
29 Juil 2020 20:06 #87 par ZISQUIER
Réponse de ZISQUIER sur le sujet Déplacer le sprite hard de Link
Voici ma routine actuelle pour tester tout çà quand Link va vers le haut :
HAUT
	call 	recuperation_des_donnees		; comee d'habitude on récupère les valeurs de bank et coordonnées de sprite.
	LD		a,(direction_en_cours)			; on test la direction qui est en cours d'exectution
	CP		a,3								; 3 = haut. Si on est déjà dans ce sens on recharge pas les sprites
	JP		z,continuer_haut				; du coup on continue vers le haut avec les sprites actuels.
	LD		a,1								; on met le flag à 1 comme quoi link est en mouvement.
	LD		(link_bouge),a
	call	rom_on							; si on arrive là c'ets qu'on était en cours d'une autre direction 
	LD		hl,(table_type_link)			; donc on lit l'adresse de la table d'adresses des sprites de link
	LD		a,h							
	add		a,#06							; on va chercher 6 octets plus loin
	LD		h,a								; pour tomber sur l'adresse du sprite haut de link
	LD		(LINK_ADR),hl					; on la place dans une variable générale
	LD		(SPRH0_ANIM_1),hl				; et dans la 1ere animation du sprite
	LD		hl,(SPRH0_ANIM_1)
	LD		de,(SPRH_ADR)
	LD		bc,#200
	LDIR
	call	rom_off
	LD		a,3
	LD		(direction_en_cours),a			; on indique que la direction en cours est à présent vers la haut
	LD		a,0								
	LD		(link_bouge),a
	JP		retour_direction
CONTINUER_HAUT
	; mise à jour de la position de Link
	LD		hl,(SPRH0_Y)
	dec		l
	dec		l
	LD		(SPRH0_Y),hl
	LD		(SPRH1_Y),hl
	ld		(SPRH_Y),hl
	
	; mise à jour de la position du radeau et de link su le radeau
	ld		a,(flag_radeau)
	cp		a,0
	jp		z,on_a_pas_de_radeau
	ld		a,(radeau_en_cours)
	cp		a,0
	jp		z,on_saut_le_radeau_haut
	inc		l
	inc		l
	inc		l
	inc		l
	inc		l
	inc		l
	ld		(SPRH3_Y),hl
on_saut_le_radeau_haut
		; test de la collision avec l'eau
	ld		a,(flag_ocean)
	cp		a,1
	jp		z,on_est_pas_dans_l_ocean
	call 	collision_haut
	LD		A,(ntile_spr0)	
	cp		a,6											; on test si on touche une porte tile 001
	JP		Z,LINK_RADEAU	
	LD		a,(radeau_en_cours)
	cp		a,1
	JP		Z,retour_radeau_haut
	
on_est_pas_dans_l_ocean
on_a_pas_de_radeau	
	; test de la collision avec le décors
	call 	collision_haut
	ld		B,114
	LD		A,(ntile_spr0)	
	SBC		A,B
	CALL	NC,stop_haut_link
retour_radeau_haut

	; test de la collision avec une tile passage secet ou marchand
	OR 		A
	LD		A,(ntile_spr0)	
	cp		a,1								; on test si on touche une porte tile 001
	JP		Z,affiche_boutique
	
		; test de la collision avec une tile donjon
	OR 		A
	LD		A,(ntile_spr0)	
	cp		a,071							; on test si on touche une porte tile 071 (porte fermé)
	JP		Z,entree_donjon	
	cp		a,072							; on test si on touche une porte tile 072 (porte ouverte)
	JP		Z,entree_donjon	
	
		; test si on est dans l'ocean ou pas
	ld		a,(flag_ocean)
	cp		a,0
	jp		z,on_est_pas_dans_l_ocean
	OR 		A
	LD		A,(ntile_spr0)	
	cp		a,007							; on test si on touche une tile 007 qui déclanche la sorte de l'eau
	call	Z,link_sur_terre	
on_est_pas_dans_l_ocean	
	
	; test de la collision avec le bord haut de l'écran
	ld		hl,(SPRH_Y)						; on récupere les coordonnée Y de Link
	OR		A								; on remet les flag à zero
	LD		DE,(bord_haut)					; on donne la coordonnée à partir de laquelle link touche
	SBC		HL,DE							; le bord haut de l'écran
	JP		Z,VERS_LE_HAUT_LINK				; egale à zéro on va vers le haut

	; compteur d'animation delink
	LD		a,(compteur_anim_link)
	dec		a
	LD		(compteur_anim_link),a
	CP		a,0
	JP		z,reinit_anim_link
	JP		retour_direction

signé, Zisquier

proverbe de pro-CPC : « çà sert à rien d'avoir des sprites hard et un scroll fluide avec des graph sont dégueu, une palettes moches et un jeu vide»

Connexion ou Créer un compte pour participer à la conversation.