AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -28%
Précommande : Smartphone Google Pixel 8a 5G ...
Voir le deal
389 €

 

 [résolu]Programmer un ennemi à la Cave Story

Aller en bas 
2 participants
AuteurMessage
LarryWal
Nouveau



Messages : 4
Localisation : La Bourboule
Projet Actuel : Passer moins de temps sur l'ordi'

[résolu]Programmer un ennemi à la Cave Story Empty
MessageSujet: [résolu]Programmer un ennemi à la Cave Story   [résolu]Programmer un ennemi à la Cave Story EmptyJeu 1 Aoû 2013 - 13:35

Bonjour. Je suis nouveau sur ce forum et je me trouve malheureusement bloqué pour la réalisation de l'IA d'un ennemi. Je débute, j'ai suivi le tutoriel Débutant-Intermédiaire-Confirmé qui n'a que 2 parties réalisées à ce jour malheureusement encore, et je me suis mis en tête de reproduire, en guise d'exercice, un moteur physique, des contrôles... similaires à ceux de Cave Story qui selon moi est l'un des jeux de plateforme les plus accomplis. Je précise que j'évite le D&D et je compte réaliser ce projet/exercice en GML


Mais voilà, si je suis ici, c'est que je planche sur l'IA du premier ennemi rencontré de Cave Story; pour ceux qui ne connaissent/se souviennent pas de celui-ci, brève description :
-Un monstre en forme de boule immobile, qui si le héros s'approche à un certaine distance
                                                          - Change de sprite pour montrer qu'il fait pas office de tapisserie
          -si le héros s'approche encore plus près, saute vers lui.


Voilà le topo. Moi ce que je comptais faire c'est un truc du genre:

Code:
Détecter ou est le héros
S'il est à Telle_distance_1
{S'il est à droite
sprite_tourné_vers_la_droite}
else
sprite_tourné_vers_la_gauche // je ferai ça avec sprite_index

S'il est à telle_distance_2
{S'il est à droite
sauter à droite} //je vais bricoler le saut avec vitesseh et vitessev
else
sauter à gauche


Mais voilà, le problème, c'est que je n'ai aucune idée de la fonction qui met en place la zone de détection de l'IA. J'espère que quelqu'un pourra me donner celle-ci en m'expliquant ses arguments. Après pour le code, je pense pouvoir me débrouiller. Merci d'avance


Dernière édition par LarryWal le Jeu 1 Aoû 2013 - 18:53, édité 1 fois
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[résolu]Programmer un ennemi à la Cave Story Empty
MessageSujet: Re: [résolu]Programmer un ennemi à la Cave Story   [résolu]Programmer un ennemi à la Cave Story EmptyJeu 1 Aoû 2013 - 13:53

Tu peux accéder aux coordonnées des chaque objets. A partir de là tout est possible.
Dans un objet, les variables x et y sont ces coordonnées.
Tu peux accéder depuis un objet aux coordonnées d'un autre objet de plusieurs méthodes:
* Si l'objet est seul <nomDeLObjet>.x et <nomDeLObjet>.y renvoie les coordonnés de la première (ou dernière je ne sais pas) instance de l'objet en jeu.
* Chaque objet possède un identifiant (un entier) . Si tu peut récupéré cet entier (noté identifiant) tu accède depuis n' importe quel objet avec identifiant.x et identifiant.y.
A noté que la variable id d'un objet renvoie sont identifiant.
* Tu peut utiliser le mot clé with
exemple:
Code:
n=0
dernierx=0
with objet1
{
other.n += 1
other.dernierx=x
}
with fait une boucle sur l’ensemble des instance de objet1. Et le bloc de code interne à la particularité suivante, le variable sont les variables locale à l'instance courante de objet1. Pour utiliser les variables locales de l'instance executant with, il les faires précédé de other (comme dans l'exemple).

Voila c'est tout.

Donc pour ton problème:


Code:
if (abs(perso.x-x) <=150 and abs(perso.y-y)<=150)
{
    changer de sprite
}
devrait fonctionner (dans l'objet ennemi)

_________________
[résolu]Programmer un ennemi à la Cave Story Pochette[résolu]Programmer un ennemi à la Cave Story Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
LarryWal
Nouveau



Messages : 4
Localisation : La Bourboule
Projet Actuel : Passer moins de temps sur l'ordi'

[résolu]Programmer un ennemi à la Cave Story Empty
MessageSujet: Re: [résolu]Programmer un ennemi à la Cave Story   [résolu]Programmer un ennemi à la Cave Story EmptyJeu 1 Aoû 2013 - 16:03

Ça marche parfaitement, merci Arthuro. mrgreen2 
Revenir en haut Aller en bas
LarryWal
Nouveau



Messages : 4
Localisation : La Bourboule
Projet Actuel : Passer moins de temps sur l'ordi'

[résolu]Programmer un ennemi à la Cave Story Empty
MessageSujet: Re: [résolu]Programmer un ennemi à la Cave Story   [résolu]Programmer un ennemi à la Cave Story EmptyJeu 1 Aoû 2013 - 16:22

Wups. En fait la fonction marche parfaitement pour une zone rectangulaire autour de l'ennemi, mais j'aimerais faire la distinction entre la zone rectangulaire qui est à droite et à gauche de l'ennemi.
C'est possible avec la fonction abs où en faut-il une autre?
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1483
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[résolu]Programmer un ennemi à la Cave Story Empty
MessageSujet: Re: [résolu]Programmer un ennemi à la Cave Story   [résolu]Programmer un ennemi à la Cave Story EmptyJeu 1 Aoû 2013 - 17:28

Code:
if (abs(perso.x-x) <=150 and abs(perso.y-y)<=150)
{
    if (x>perso.x)
    {
        changer pour sprite qui regarde à gauche
    }
    else
    {
        changer pour sprite qui regarde à droite
    }
}

_________________
[résolu]Programmer un ennemi à la Cave Story Pochette[résolu]Programmer un ennemi à la Cave Story Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
LarryWal
Nouveau



Messages : 4
Localisation : La Bourboule
Projet Actuel : Passer moins de temps sur l'ordi'

[résolu]Programmer un ennemi à la Cave Story Empty
MessageSujet: Re: [résolu]Programmer un ennemi à la Cave Story   [résolu]Programmer un ennemi à la Cave Story EmptyJeu 1 Aoû 2013 - 18:52

Merci pour ton aide Arthuro. Le programme fonctionne à merveille.gnii 
Revenir en haut Aller en bas
Contenu sponsorisé





[résolu]Programmer un ennemi à la Cave Story Empty
MessageSujet: Re: [résolu]Programmer un ennemi à la Cave Story   [résolu]Programmer un ennemi à la Cave Story Empty

Revenir en haut Aller en bas
 
[résolu]Programmer un ennemi à la Cave Story
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] Ecraser un ennemi et rebondir sur le haut d'un objet
» Programmer un kamehameha RESOLU
» Pb avec other... Comment programmer l'exemple? [Résolu]
» [Résolu] touche un ennemi
» [Résolu] Faire un ennemi à la mario ?

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: