AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Cdiscount : -30€ dès 300€ ...
Voir le deal

 

 Sauter sur un ennemi pour le tuer.

Aller en bas 
2 participants
AuteurMessage
Sasida
Débutant



Messages : 11

Sauter sur un ennemi pour le tuer. Empty
MessageSujet: Sauter sur un ennemi pour le tuer.   Sauter sur un ennemi pour le tuer. EmptyDim 4 Nov 2012 - 0:50

Salut à tous.

Je débute en GML mais en essayant de faire plus compliqué, je me retrouve confronté à des problèmes.
C'est justement mon manque d'expérience qui engendre des problèmes donc je suis très limité. triste2

J'aimerais faire un truc à la mario. Sauter sur un ennemi peut le tuer, mais si l'ennemi nous heurte des côtés c'est le joueur qui meurt.
Dans ma tête j'ai pensé "Et si on pouvait faire deux collisions? Une sur la tête de l'ennemi et une autre sur les côtés, ça serait super!".
Mais j'ai tout de suite vu que c'était impossible. (Si c'est possible vous allez me le dire n'est-ce pas? rire )

Merci d'avance à celui ou celle qui me donnera la réponse.
Amicalement.
Revenir en haut Aller en bas
Craki
Utilisateur confirmé: Rang ****
Craki


Messages : 1496
Localisation : Dans l’univers de métamatière

Sauter sur un ennemi pour le tuer. Empty
MessageSujet: Re: Sauter sur un ennemi pour le tuer.   Sauter sur un ennemi pour le tuer. EmptyDim 4 Nov 2012 - 3:48

C'est assez simple.

Dans mario, pour tuer un ennemi, il faut que deux critères soient respectés :
• Mario est en train de descendre (vspeed > 0) ;
• ses pieds sont au moins à mi-hauteur de l'ennemi (y(pieds de Mario) < mi-hauteur de l'ennemi).

Pour connaître la mi-hauteur d'un sprite quelque soit sa taille, il faut faire la demi-somme des ordonnées correspondant au sommet et à la base de sa bounding box. La bounding box est un rectangle entourant les sprites. Pour les configurer, va dans le sprite, puis décoche "Precise collision checking" (collision au pixel près, donc long à calculer et très mal adapté pour les jeux de plate-formes) et "Separate collision masks". Ensuite, va dans Modify mask, choisis un rectangle. Pour les coordonnées, pas besoin de trop s'embêter.

Donc maintenant que tu as une bounding box adaptée, tu dois utiliser deux variables magiques (que je t'invite à fouiller dans la doc) qui renvoient l'ordonnée du haut et du bas de la hitbox. Après, en faisant la moyenne entre les deux, tu as la mi-hauteur de l'ennemi. Compare-la avec la hauteur des pieds du héros et le tour est joué.

Petite précision, si un objet change de sprite, il changera aussi de bounding box, chose très dérangeante pour les collision, notamment avec les murs. Pour y rémédier, rends-toi dans l'objet en question et dans Mask (à gauche), choisis un sprite avec une bounding box bien configurée.

_________________
Sauter sur un ennemi pour le tuer. 357g46o
Revenir en haut Aller en bas
Sasida
Débutant



Messages : 11

Sauter sur un ennemi pour le tuer. Empty
MessageSujet: Re: Sauter sur un ennemi pour le tuer.   Sauter sur un ennemi pour le tuer. EmptyDim 4 Nov 2012 - 4:29

Merci pour la réponse, je vais essayer ça tout à l'heure! Smile
Revenir en haut Aller en bas
Sasida
Débutant



Messages : 11

Sauter sur un ennemi pour le tuer. Empty
MessageSujet: Re: Sauter sur un ennemi pour le tuer.   Sauter sur un ennemi pour le tuer. EmptyLun 5 Nov 2012 - 5:45

Ok ça marche, merci beaucoup! happy1
Revenir en haut Aller en bas
Contenu sponsorisé





Sauter sur un ennemi pour le tuer. Empty
MessageSujet: Re: Sauter sur un ennemi pour le tuer.   Sauter sur un ennemi pour le tuer. Empty

Revenir en haut Aller en bas
 
Sauter sur un ennemi pour le tuer.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» PLATEFORME tuer un ennemi
» [help] Comment créer un ennemi et le tuer (mario-like) ?
» [b]problème pour tuer un monstre façon mario[/b]
» programmation: j'ai besoin d'aide pour créer un ennemi.
» sauter

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: