Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » créer un sprite qui s’approche de celui qu'on contrôle
Manolo Hors ligne Membre Points: 910 Défis: 13 Message

créer un sprite qui s’approche de celui qu'on contrôle

Posté le 23/08/2018 19:38

bonjours!!!
je fais un pacman tout simple et donc je voudrais faire les fantôme et donc comment faire un sprite qui s’approche ou s’éloigne de celui que l'on contrôle.
merci!


Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 23/08/2018 19:51 | #


C'est pas très dur en soir : il faut que tu connaisse les coordonnées du joueur et celles du fantôme et après dans ta boucle principale tu met un code comme "si Xjoueur>Xfantome alors Xfantome-1" vice-versa et pareil pour les Y Après pour les obstacles... je ne sais pas trop comment faire...
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Manolo Hors ligne Membre Points: 910 Défis: 13 Message

Citer : Posté le 23/08/2018 19:53 | #


c'est ce que fesais sur les terrains vide mais la y'a des murs donc...
Dark storm Hors ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 23/08/2018 19:56 | #


À partir de la recherche intelligence artificielle site:planet-casio.com, j'ai quelques pistes à te proposer :

https://www.planet-casio.com/Fr/forums/topic8443-1-[Tutorial]-L-intelligence-Artificielle,-I.A..html
https://www.planet-casio.com/Fr/forums/topic13963-1-Intelligence-artificielle.html
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 23/08/2018 19:57 | #


Donc il faudrait que tu mette une boucle qui vérifie que la future position de ton fantôme est bien dispo tu peux essayer ça
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Dark storm Hors ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 23/08/2018 19:57 | #


Bien entendu, on attends de toi que tu produise quelque chose avant de quémander de l'aide
On peut t'aider à améliorer un programme, mais on va pas réfléchir à ta place
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 23/08/2018 19:58 | #


Ce dont tu as besoin s'appelle un algorithme de recherche de chemin : tu pars d'une description de la map (murs, etc) et tu as une méthode automatiquement pour trouver le plus court chemin entre ton fantôme et le joueur !

Il y a plusieurs algorithmes pour ça, ici celui dont tu as besoin s'appelle le parcours en largeur.

Algorithme de parcours en largeur sur Wikipédia

Dans ton cas le « graphe » est fait comme ceci :
- Les « noeuds » sont les cases de la map sur lesquelles on peut marcher ;
- Les « arêtes » sont les liens entres les cases qui sont à côtés et sur lesquelles on peut marcher.

Est-ce que tu arrives à comprendre quelque chose à cette page ou rien du tout ?


Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Memallox Hors ligne Membre Points: 161 Défis: 0 Message

Citer : Posté le 23/08/2018 20:06 | #


You have a state (position of the ghost), state transitions (e.g. "ghost goes up", "ghost goes down" etc.) and a goal (state of ghost being next to the player).

The easiest implementation is a tree search. It basically looks like that

void lookAhead(<state>) {
    if (<ghost reached player>) {
        return success;
    }

    for (<every direction the ghost can go>) {
        if (lookAhead(<next state>) == success) {
            return success;
        }
    }
}


If you managed to implemented that, you might look at the A* algorithm. It includes a heuristic and calculates the optimal way much much faster.
Stop starting~ Start finishing~
Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 23/08/2018 20:14 | #


Your code is correct Memallox, I just ought to mention that a depth-first search like this might return unexpected (long) paths...
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Manolo Hors ligne Membre Points: 910 Défis: 13 Message

Citer : Posté le 23/08/2018 20:27 | #


désolé j'ai pas regardé les sites mais j'ai trouvé une solution très simple
voici le code:
e et f sont les coordonnées du sprite et a et b du perso, les mat =1 sont les obstacles
e<a=>mat z[f,e+1]=0=>1->i
ect
i=1=>e+1->e
ect


Ajouté le 23/08/2018 à 20:27 :
et je comprend pas l'anglais...
Memallox Hors ligne Membre Points: 161 Défis: 0 Message

Citer : Posté le 23/08/2018 20:29 | #


@Lephe you're absolutely right xD

Ajouté le 23/08/2018 à 20:31 :
Oh désolé, mon anglais est très mauvais. Je suis un étudiant allemand
Stop starting~ Start finishing~
Ninestars Hors ligne Membre Points: 2461 Défis: 24 Message

Citer : Posté le 23/08/2018 20:39 | #


Dans pac man, chaque fantôme a un comportement différent. Fait une recherche sur Google ça doit être bien documenté
Manolo Hors ligne Membre Points: 910 Défis: 13 Message

Citer : Posté le 23/08/2018 20:59 | #


je sais deja, le rouge va tout le temps vers toi le rose et chaotique ect
Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 23/08/2018 21:01 | #


Memallox a écrit :
Oh désolé, mon anglais est très mauvais. Je suis un étudiant allemand

Which is awesome! Planète Casio now has international cooperation!
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 23/08/2018 21:12 | #


We also have a Japan member if i my memory is good
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 23/08/2018 21:16 | #


You mean Sentaro21. There's another German student, P4nix, but ups! We're going off-topic. Gotta move somewhere else
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 69 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd