AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-50%
Le deal à ne pas rater :
-50% Baskets Nike Air Huarache Runner
69.99 € 139.99 €
Voir le deal

 

 Utilisation de other [Résolu]

Aller en bas 
2 participants
AuteurMessage
Malax
Utilisateur confirmé: Rang **
Malax


Messages : 496
Localisation : Aix-en-Provence
Projet Actuel : Lemmings Struggle (abandonné)

Utilisation de other [Résolu] Empty
MessageSujet: Utilisation de other [Résolu]   Utilisation de other [Résolu] EmptyVen 5 Jan 2007 - 19:20

Bonsoir à tous, (assez technique)

Je vais faire au mieux:

Prenons une grille, il faudrait que je selectionne (mp_grid_add_cell en fait) une case objet si il y a, seulement sur les cases adjacentes (pas en diagonales), au moins deux autres cases objets.

Cela se complique lorsque il faut faire intervenir une variable qu'on appellera move et doit etre égale à 0.

Une première idée consisterait à utiliser ds_grid_create et faire ajouter "un" à toutes les adjacentes puis regarder celle dont la valeur est supérieur ou égale à deux mais cela ralentirait puisque le programme devrait tester toutes les cases (estimer à 256*256=65536 cases)

Une seconde idée de créer un sprite(capteur) qui se positionne sur les quatres cases adjacentes et de compter le nombre de collision de l'objet courant avec le capteur. Appellons capt le capteur et obj l'objet:

if(collision_point(x,y,capt,0,false))

Et maintenant comment dire le test d'une collision avec un autre capt ?
avec other surement mais j'arrive po. surtout qu'il faudrait préciser que les deux capt ont la variable move=0.

Voilou, j'ai mis les deux idées, histoire de comparer; merci d'avance
gnii


Dernière édition par le Sam 6 Jan 2007 - 13:08, édité 2 fois
Revenir en haut Aller en bas
OKSYD
Utilisateur confirmé: Rang *****
OKSYD


Messages : 2302
Localisation : Pioneer 2
Projet Actuel : Hard Pac III

Utilisation de other [Résolu] Empty
MessageSujet: Re: Utilisation de other [Résolu]   Utilisation de other [Résolu] EmptySam 6 Jan 2007 - 8:46

tu peux utiliser ça, mais c'est peut être un peu moins précis:
Citation :
with(instance_nearest(x,y,capt))
{
tes actions...
}
Cette fonction retourne l'id de l'instance "capt" la plus proche de "x" et de "y" de ton objet. noel

_________________
Utilisation de other [Résolu] Hardpac3uv4
Revenir en haut Aller en bas
Malax
Utilisateur confirmé: Rang **
Malax


Messages : 496
Localisation : Aix-en-Provence
Projet Actuel : Lemmings Struggle (abandonné)

Utilisation de other [Résolu] Empty
MessageSujet: Re: Utilisation de other [Résolu]   Utilisation de other [Résolu] EmptySam 6 Jan 2007 - 11:21

Oui c'est une bonne idée à mon avis, je vais essayer super
Revenir en haut Aller en bas
Malax
Utilisateur confirmé: Rang **
Malax


Messages : 496
Localisation : Aix-en-Provence
Projet Actuel : Lemmings Struggle (abandonné)

Utilisation de other [Résolu] Empty
MessageSujet: Re: Utilisation de other [Résolu]   Utilisation de other [Résolu] EmptySam 6 Jan 2007 - 12:14

object6:capteur; object0:l'objet

Code:

if(move=0)
{
id2=instance_create(x,y,object6);
with(instance_nearest(x,y,object6))
    {
    if(collision_point(other.x,other.y,object0,0,false))
        {
        mp_grid_add_cell(global.grid,(x-18)/36,(y-18)/36);
        }
    }
with id2 instance_destroy;

*** En testant, vu que chaque objet doit créer une instance capteur (pour ceux qui n'imagine pas super, c'est en forme de croix et cela déborde sur les cases de droite, gauche,haut et bas) je pense que instance_nearest selectionne celle qui est créée. En plus mon programme n'est pas correct, ya pas à dire c'est difficile. J'écris la traduction ligne par ligne si quelqu'un veut essayer de corriger :gniah:

Code:

if(move=0)          // ...
{
id2=instance_create(x,y,object6);      // création du capteur
with(instance_nearest(x,y,object6))    // on repére l'id du cap+proche
    {
    if(collision_point(other.x,other.y,object0,0,false)) //teste la collision avec un autre capteur mais object0 devrait etre l'instance courante ... en + du problème ***
        {
        mp_grid_add_cell(global.grid,(x-18)/36,(y-18)/36); //interdire grille
        }
    }
with id2 instance_destroy; // détruire l'instance créée

:snif2:


Dernière édition par le Sam 6 Jan 2007 - 13:10, édité 1 fois
Revenir en haut Aller en bas
Malax
Utilisateur confirmé: Rang **
Malax


Messages : 496
Localisation : Aix-en-Provence
Projet Actuel : Lemmings Struggle (abandonné)

Utilisation de other [Résolu] Empty
MessageSujet: Re: Utilisation de other [Résolu]   Utilisation de other [Résolu] EmptySam 6 Jan 2007 - 13:10

colere2
Aie en fait il n'est pas nécessaire de comparer toutes la grille vu que je peux sélectionné les cases ou il y a une chance avec ds_grid_get.... Merci quand meme OKSYD :pac_dr: :pac_dr: :pac_dr:
Revenir en haut Aller en bas
Contenu sponsorisé





Utilisation de other [Résolu] Empty
MessageSujet: Re: Utilisation de other [Résolu]   Utilisation de other [Résolu] Empty

Revenir en haut Aller en bas
 
Utilisation de other [Résolu]
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [RESOLU] Utilisation de "draw_set_blend_mode(bm_add)"
» [résolu]Utilisation de place_free
» [RESOLU] - Utilisation de variable qui pue la prout !
» Probleme utilisation file_open_text [résolu]
» Ultimate 3D : Utilisation de modèles (résolu)

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: