| Problème avec la cible d'une homing attack | |
|
|
Auteur | Message |
---|
mikbed Nouveau
Messages : 4
| Sujet: Problème avec la cible d'une homing attack Jeu 22 Déc 2011 - 22:26 | |
| Bonjour, je suis entrain d'éditer un ENGINE de Sonic. Je me débrouille quand même assez bien, j'ai fait les effets de boosts et autres. Mais, je suis bloqué pour ajouter une cible à l'homing attack de Sonic. Dans les jeux Sonic, une petite cible apparaît sur l'ennemi pour annoncer qu'on peut déclencher la homing attack. J'ai placé ce code dans STEP dans l'objet ''ennemi'': - Code:
-
{ if (distance_to_object(objSonic) < 100) { //Si Sonic est situé à moins de 100 de l'ennemi.... instance_create(x,y,Homingt);} //Une cible apparaît sur l'ennemi } Mais, voici mon problème: lorsque Sonic est proche de l'ennemi, un nombre infinie de cible apparaît sur l'ennemi jusqu'à ce que Sonic quitte le champ. On dirait que le code n'arrête pas de se répéter et créer un nombre infini de cible.... mais moi j'en veux seulement une... Que dois-je ajouter à mon code pour empêcher ce phénomène? Merci! |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Problème avec la cible d'une homing attack Jeu 22 Déc 2011 - 22:38 | |
| Bin c'est normal vu ce que tu as écrit.
Alors ajoute une condition du genre:
if (not instance_exists(obj_cibleur))
pour n'en créer qu'un.
// je ne garantis pas de l'existence de cette fonction, si ça marche pas, tu devrais trouver un équivalent dans la doc |
|
| |
SPLN Utilisateur confirmé: Rang ***
Messages : 588 Localisation : Sur son ordinateur *vous vois* arrêtez de me regarder comme ça Projet Actuel : En quête de projet(s)!
Mes projets:
SP Lecteur Multimedia (Stand by)
S-Portable Graphics (demo1.8 is out! demo2.0 is planned)
SSB RPG (Stand by)
| Sujet: Re: Problème avec la cible d'une homing attack Ven 23 Déc 2011 - 13:57 | |
| Non je te rassure elle existe . Sinon pour la homming attack je te conseille de mettre le code sur Sonic plutôt car déjà c'est son attaque et que s'il y a plusieurs ennemis à une même distance il faudra en choisir un et pas plusieurs car je le vois mal tuer plusieurs ennemis en une attaque, il est rapide mais quand même Après normalement avec instance_nearest (pour le choix de l'ennemi mais j'aurais plus tendance à créer un script moi même genre ennemy_lock() car instance_nearest ne fonctionne qu'avec un objet) et : - Code:
-
if (distance_to_object(script_identifiant_ennemis) < 100) { //Si Sonic est situé à moins de 100 de l'ennemi.... if (!instance_exists(Homingt)) {instance_create(x,y,Homingt);}} //Une cible apparaît sur l'ennemi Ça devrait être bon. |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 Localisation : Haute Normandie Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.
| Sujet: Re: Problème avec la cible d'une homing attack Ven 23 Déc 2011 - 14:52 | |
| Moi je vois le truc comme ça: (j'ai codé ça en 2minutes crono sans aucun teste , il y a surement des fautes de frappes ou des petites erreurs) obj_cible : Create: - Code:
-
active = false; Step: - Code:
-
x = parent.x; y = parent.y; if( distance_to_object(obj_sonic) > 100 or !instance_exists(parent) ) instance_destroy(); Draw: - Code:
-
if(active) draw_sprite(spt_cible, 0, x, y); parent_ennemi:Step: - Code:
-
if( distance_to_object(obj_sonic) <= 100 ){ var cible = instance_create(x,y,obj_cible); cible.parent= this.id; } obj_sonic:Create: - Code:
-
enn_cible = 0; Step: - Code:
-
if( instance_exists(obj_cible) ) { var nbr_cible = instance_number(obj_cible); if (keyboard_check_pressed('C')) enn_cible +=1; //Change de cible if (enn_cible > nbr_cible) enn_cible = 0; with(obj_cible) active = false; // il faudrait peut être faire une boucle à la place var id_enn_cible = instance_find(obj_cible, enn_cible); id_enn_cible.active = true; if (keyboard_check_pressed('A')) with(id_enn_cible.parent) instance_destroy(); //détruit l'ennemi } |
|
| |
mikbed Nouveau
Messages : 4
| Sujet: Re: Problème avec la cible d'une homing attack Ven 23 Déc 2011 - 15:28 | |
| Non, la Homing attack est déjà entièrement codé Caly, il me manque juste la cible. Le code de arthuro fonctionne mais comme SPLN dit, lorsqu'il y a des ennemis très proche l'un de l'autre, il ne sait plus lequel choisir. Merci pour vos réponses! Le code de SPLN fonctionne à merveille! Revenez souvent ici car il se peut que j'aille d'autres questions plus tard Merci surtout pour la rapidité de vos réponses, c'est très apprécié! |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 Localisation : Haute Normandie Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.
| Sujet: Re: Problème avec la cible d'une homing attack Ven 23 Déc 2011 - 15:40 | |
| - Citation :
- Non, la Homing attack est déjà entièrement codé Caly, il me manque juste la cible
Ça tombe bien c'est ce que mon code réalise. - Citation :
- lorsqu'il y a des ennemis très proche l'un de l'autre, il ne sait plus lequel choisir.
D'ou mon code qui permet d'affiche la cible sans aucun bug et avec le bouton C tu peut changer de cible.... |
|
| |
mikbed Nouveau
Messages : 4
| Sujet: Re: Problème avec la cible d'une homing attack Ven 23 Déc 2011 - 17:41 | |
| Bon, là j'ai un problème avec la homing attack encore. Les cibles fonctionnent bien. Mais le problème, c'est que à cause de cette ligne de code: - Code:
-
if (!instance_exists(Homingt)) {instance_create(x,y,Homingt);}} La cible reste figé sur l'ennemi jusqu'à ce qu'on l'élimine. Ce qui fait que si on oublie un ennemi que le jeu à ciblé et qu'on veut en éliminer un autre, la cible n'apparaît pas puisqu'elle est sur l'autre ennemi qu'on a oublié d'éliminer... Comment régler ça? J'ai essayé de faire: - Code:
-
if (distance_to_object(objSonic) > 70) { //Si Sonic est situé à plus de 100 de l'ennemi.... with (Homingt){ instance_destroy()}} //La cible disparaît Mais ça ne marche pas, même que la cible n'apparaît plus du tout... |
|
| |
Caly Utilisateur confirmé: Rang ****
Messages : 1285 Localisation : Haute Normandie Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.
| Sujet: Re: Problème avec la cible d'une homing attack Ven 23 Déc 2011 - 18:03 | |
| J'aime écrire des lignes de code pour rien ...
Le code que j'ai écrit fait ce que tu demande, il faut juste que tu prenne la peine de le lire et de le comprendre mais apparemment tu n'en a pas envie.
Voici le récapitulatif de mon code: Créer une cible invisible sur tous les ennemis à moins de 100 px de Sonic. Rend une seule cible visible. Si Sonic est plus loin de 100px de l'ennemi la cible se détruit automatiquement. Si l'ennemi ciblé est mort la cible se détruit automatiquement. Si on appuis sur le bouton C on navigue entre les ennemis qui peuvent être visé (moins de 100px).
|
|
| |
mikbed Nouveau
Messages : 4
| Sujet: Re: Problème avec la cible d'une homing attack Ven 23 Déc 2011 - 19:55 | |
| Je comprend ton code, mais c'est que j'édite un engine où est-ce que l'homing attack est déjà créer. Je ne veux pas tout modifier car il y en beaucoup à changer et je pourrais faire buguer mon jeu entièrement.
J'ai réussis à régler le problème tout seul.
Merci quand même |
|
| |
Contenu sponsorisé
| Sujet: Re: Problème avec la cible d'une homing attack | |
| |
|
| |
| Problème avec la cible d'une homing attack | |
|