AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-14%
Le deal à ne pas rater :
Lave-linge hublot HOOVER HWP 10 kg (Induction, 1600 trs/min, Classe ...
299.99 € 349.99 €
Voir le deal

 

 Instance_nearest zoné ?

Aller en bas 
3 participants
AuteurMessage
Gumboy
Débutant
Gumboy


Messages : 10
Localisation : Dijon

Instance_nearest zoné ? Empty
MessageSujet: Instance_nearest zoné ?   Instance_nearest zoné ? EmptyJeu 16 Fév 2017 - 19:54

Bonsoir à vous Smile

me revoilà avec un autre soucis (j'espère un peu plus complexe que mon dernier post ^^') concernant mon projet de rogue-like.

Problème :

Je me suis crée un script d'auto-lock qui se joue avec l'angle du joystick droit de mon gamepad et la touche R2/RB (autolock).

En gros lorsque j'ai mon joystick droit d'actif, j'ai une vision d'angle de (precision) + direction du joystick qui s'active, et celui-ci détecte si un ennemie (tous parentés avec une instance global d'ennemies) est dans cette zone, et le lock tant que le joueur le suit avec le joystick droit.

Le problème, c'est que dans mon script, la vision ne détecte uniquement l'objet si celui-ci est le plus proche du joueur, même si celui-ci est hors de la zone de vision.
Donc peut-on mettre une condition à une instance_nearest() pour que celui-ci ne soit identifié que dans une zone spécifique ?

Code:

///scr_player_lock()
var posdir = instance_nearest(x,y,obj_life_parent);

if instance_exists(obj_life_parent)
{
var a = point_direction(x,y, posdir.x, posdir.y)
}


///init de l'autolock
if((xdir !=0) || (ydir !=0))
{
    targetlock = 0;
    rdir = point_direction(0,0, xdir, ydir);
    obj_locktarget.x = 0;
    obj_locktarget.y = 0;
    
    if (autolock) && instance_exists(obj_life_parent) && (rdir<a+obj_stats_player.precision && rdir>a-obj_stats_player.precision)
    {
        if point_distance(x,y,posdir.x,posdir.y)<400
        {
        targetlock = 1;
        obj_locktarget.x = posdir.x;
        obj_locktarget.y = posdir.y;
        rdir = point_direction(x,y, posdir.x, posdir.y);
        }
    }
} else {
    if ((xaxis != 0) || (yaxis != 0))
    {
        targetlock = 0;
        rdir = point_direction(0,0, xaxis, yaxis);
        obj_locktarget.x = 0;
        obj_locktarget.y = 0;
    }
}

if gamepad_button_check_released(0,gp_shoulderrb)
{
targetlock =0;
obj_locktarget.x = 0;
obj_locktarget.y = 0;
}

j'ai fait un petit exemple rapide sous paint :
-en haut est ce que j'ai actuellement.
-en bas ce que je souhaiterais faire.

partie rouge : zone de detection de instance_nearest()
trait bleu : le lock auto
boule grise : ennemies

Instance_nearest zoné ? 189969prob1

pour finir, je sait que mon problème se situe dans ma variable "posdir" et qu'il faudrait que celle-ci soit :
posdir = ((instance_nearest(x,y,mon_parent_ennemy) dans la zone de mon rdir + precision)

mais je ne sait comment formuler ça :/
Merci d'avance pour votre réponse !
Revenir en haut Aller en bas
Griph42
Débutant
Griph42


Messages : 10
Localisation : France (rhone alpes)
Projet Actuel : Demon expel

Instance_nearest zoné ? Empty
MessageSujet: Re: Instance_nearest zoné ?   Instance_nearest zoné ? EmptyLun 13 Mar 2017 - 13:23

Tu n'a qu'a mettre
if distance_to_point(variable x du monstre,variable y du monstre)<distance que tu veut
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9183
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Instance_nearest zoné ? Empty
MessageSujet: Re: Instance_nearest zoné ?   Instance_nearest zoné ? EmptyMar 14 Mar 2017 - 11:03

Il va falloir que tu recrées l'algorithme d'instance_nearest manuellement, en bouclant sur toutes les instances voulues et en ajoutant ta condition de cône de vision dans le test.

Edit: tu as un instance_nearest manuel dans la FAQ: https://cbna.forumactif.com/t13101-faq-instances
Revenir en haut Aller en bas
Contenu sponsorisé





Instance_nearest zoné ? Empty
MessageSujet: Re: Instance_nearest zoné ?   Instance_nearest zoné ? Empty

Revenir en haut Aller en bas
 
Instance_nearest zoné ?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu]Son dans une zone
» zone noir
» Zone texte
» Zone de texte
» Zone d'écriture

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: