Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
266 connectés actuellement
30730586 visiteurs depuis l'ouverture
563 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
Nethal -
posté le 04/07/2024 à 19:36:04 (95 messages postés)
| Local Hyena | Domaine concerné: collisions Logiciel utilisé: RPG Maker MZ Bonjour, je suis en train de faire un passage où le joueur est poursuivit par un loup, et lorsque celui-ci atteint le joueur, c'est game over. Le problème c'est que le loup ne fait non pas 48 pixels de côté mais 240, ce qui fait 5 tiles. Tout marche très bien, sauf la collision, elle se trouve au niveau de ses pattes, sauf lorsqu'il est orienté vers le bas.
J'ai essayé de faire en sorte qu'un évènement se trouve en permanence devant la tête du loup, et lorsque cet évènement de collision et le joueur entrent en contact (event touch), le jeu se termine. Sauf qu'il semblerait que RPG Maker ne considère pas toujours le contact comme un event touch : comme l'évènement de collision se téléporte en permanence, si le joueur reste immobile, l'évènement de collision ne fait que se téléporter au-dessus du joueur, et ne lance pas le game over. Pas terrible dans un jeu plutôt horreur. De plus, il m'est déjà arrivée de me retrouver coincée derrière l'évènement de collision, sous le sprite du loup.
Réduire la taille du loup n'est pas une possibilité sans ce cas.
Une autre idée que j'ai eu mais que j'ai pas encore testée : au lieu que ce soit le loup qui chasse le joueur, c'est plutôt un évènement invisible qui fera également la collision, et le loup suivra cet évènement à la même vitesse.
Bref, si vous avez le moindre conseil, je suis preneuse. Merci beaucoup.
|
"Saute d'abord, réfléchis après" –Issun (Okami) |
-FWT- -
posté le 04/07/2024 à 22:44:45 (173 messages postés)
| | Salut !
Bon, full disclosure, je suis pas du tout un pro de MZ.
Mais si je devais faire cette séquence sous RPG Maker 2003, je testerais soit :
- Ta solution de l'événement invisible
- Ou, pour plus de précision, un événement parallèle qui calculerait sans cesse la position XY du loup et la position XY du joueur dans des variables, suivi d'une branche de condition ordonnant que si la position XY du joueur = celle du loup (en tout cas la zone de contact souhaitée), alors, Game Over. Mais je ne sais pas si c'est transposable à MV.
Bon courage !
|
Ecko -
posté le 05/07/2024 à 00:47:47 (739 messages postés)
- | Contente OwO | ou alors troisième technique mais de sagouin, faire un sprite de taille plus grand pour que tu places la tête du loup au milieu (la ou le jeu calcul la position) et tout le reste en vide. Ca te ferais un giga grand sprite dans les fichiers pour rien mais ça marcherais
|
S'il y a bien une chose que j'aime sur Oniro, c'est que c'est le seul endroit sur internet où personne n'a déjà mon pseudo X) |
-FWT- -
posté le 05/07/2024 à 08:57:27 (173 messages postés)
| | Ou un événement de la taille de celui du perso pour les pattes du loup (ou n'importe quelle zone de contact), sans cesse suivi d'une image qui représente son corps ?
|
Nethal -
posté le 05/07/2024 à 14:04:01 (95 messages postés)
| Local Hyena | Merci pour ces propositions , je testerais tout ça un peu plus tard
Citation: Ou, pour plus de précision, un événement parallèle qui calculerait sans cesse la position XY du loup et la position XY du joueur dans des variables, suivi d'une branche de condition ordonnant que si la position XY du joueur = celle du loup (en tout cas la zone de contact souhaitée), alors, Game Over. Mais je ne sais pas si c'est transposable à MV |
Normalement c'est possible oui
|
"Saute d'abord, réfléchis après" –Issun (Okami) |
Crystal -
posté le 06/07/2024 à 06:48:11 (2146 messages postés)
- | | Si tu obtiens les coordonnées en pixels de l'événement, tu peux les comparer à celles du joueur pour calculer les distances dans un événement en processus parallèle (ou l'équivalent dans MV, je ne suis pas familier):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
x1 = coordonnées X en pixels du joueur
x2 = coordonnées X en pixels du loup
distance X = [valeur absolue de (x1 - x2)]
Si (distance X <= moitié de la largeur du loup + moitié de la largeur du joueur)
y1 = coordonnées Y en pixels du joueur
y2 = coordonnées Y en pixels du loup
distance Y = [valeur absolue de (y1 - y2)]
Si (distance Y <= moitié de la hauteur du loup + moitié de la hauteur du joueur)
Game Over
Fin
Fin |
Au besoin, tu peux changer les valeurs des dimensions selon la direction du loup.
Tu peux aussi avoir une collision avec un hitbox circulaire en additionnant le carré des deux distances, puis en les comparant à [(rayon du loup + celui du joueur) au carré].
|
Nethal -
posté le 07/07/2024 à 11:43:57 (95 messages postés)
| Local Hyena | Crystal a dit: Si tu obtiens les coordonnées en pixels de l'événement, tu peux les comparer à celles du joueur pour calculer les distances dans un événement en processus parallèle (ou l'équivalent dans MV, je ne suis pas familier):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
x1 = coordonnées X en pixels du joueur
x2 = coordonnées X en pixels du loup
distance X = [valeur absolue de (x1 - x2)]
Si (distance X <= moitié de la largeur du loup + moitié de la largeur du joueur)
y1 = coordonnées Y en pixels du joueur
y2 = coordonnées Y en pixels du loup
distance Y = [valeur absolue de (y1 - y2)]
Si (distance Y <= moitié de la hauteur du loup + moitié de la hauteur du joueur)
Game Over
Fin
Fin |
Au besoin, tu peux changer les valeurs des dimensions selon la direction du loup.
Tu peux aussi avoir une collision avec un hitbox circulaire en additionnant le carré des deux distances, puis en les comparant à [(rayon du loup + celui du joueur) au carré]. |
Alors
1) où est-ce que je met ça ?
2) j'utilise MZ pas MV
|
"Saute d'abord, réfléchis après" –Issun (Okami) |
Crystal -
posté le 09/07/2024 à 23:58:11 (2146 messages postés)
- | | 1. Dans un événement qui exécute le code en boucle durant ta séquence. Si tu es un peu perdue à ce niveau, je te conseille fortement d'essayer quelques tutoriels de base.
2. Je ne suis pas non plus familier avec MZ. Ce que je te donne c'est essentiellement l'algorithme à transposer dans le système événementiel de ta version.
| Index du forum > Entraide > [RPG Maker MZ] Collision avec un sprite plus grand
|
|
|