AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Savoir si un objet est la

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
albisse
Utilisateur confirmé: Rang *


Messages : 228

MessageSujet: Savoir si un objet est la    Jeu 21 Nov 2013 - 12:29

Bonjour !

J'ai une petite question assez complexe pour moi mais peut être qui sais un peut bête :
je voudrai que si un objet précis est sur la map alors un objet tire un autre objet en répétant sa toute les 5 seconde .

Exemple : sur bloomsTD quand il y a des ballon les tower tire des missile jusqua ce que les ballon sois tous mort , je voudrai faire exactement pareil mais je ne sais pas comment ^^
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

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

MessageSujet: Re: Savoir si un objet est la    Jeu 21 Nov 2013 - 12:45

Condition et alarm.
Pour savoir si une instance d'objet existe: instance_exists(obj)

_________________
                 
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *


Messages : 228

MessageSujet: Re: Savoir si un objet est la    Jeu 21 Nov 2013 - 16:38

j'ai essayer un jour les alarmes mais je n'est pas trop réussi et je ne sais pas si c'est possible de lui dire : si il y a un jour alors alarmes loop jus-qu’il n'y est plus l'objet
Revenir en haut Aller en bas
kujaff
Très bonne participation
avatar

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: Re: Savoir si un objet est la    Jeu 21 Nov 2013 - 17:08

J'ai tester, et a priori les alarmes ne marche pas... Étrange... Mais on peux très bien s'en passé ^^

Create Event:

Code:
temps = 0 // Initialise la variable servant pour le temps en frame
Step Event:

Code:
if instance_exists(obj_tonobjet) /// Si "tonobjet" existe alors
{
temps += 1 /// ajoute 1 a la variable temps
}

if temps == 20 /// Si la variable est égale a 20, elle tire
{
instance_create(obj_tonobjetquitire.x, obj_tonobjetquitire.y, obj_balle) // crée l'objet "balle" qui partira de "tonobjetquitire"
}

if temps == 40 /// si la variable temps est égale a 40 alors
{
temps = 0 // rendre égale la variable temps a 0
}

Tu a juste a modifier le nombre quand tu veux quelle tire et qu'elle se réinitialise.
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *


Messages : 228

MessageSujet: Re: Savoir si un objet est la    Jeu 21 Nov 2013 - 18:13

J'avai fait un trus similaire mais il y avait une chose que je n'arrivai pas a faire c'est que justement si l'enemie est encore la l'objet tire encore toute les 3 seconde des objet balle mais justement je ne sais pas trop comment faire pour faire un genre de code :
if instance_exists(obj_tonobjet)
{
loop instance_create(obj_tonobjetquitire.x, obj_tonobjetquitire.y, obj_balle)
}

enfin je veut dire si il y a 10 mod sur la map la tourelle va tirer 10 fois mais alméton que la balle parte dans un mur et j'ai perdu , je voudrai faire comme un blooms ou tant que l'object meure pas alors la tourelle continue de lui tirer dessus a un meme interval , mais sa je ne sais pas faire .. ^^
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Savoir si un objet est la    Jeu 21 Nov 2013 - 18:23

Les alarmes marchent très bien ^^
alarm[0]=30; // par défaut, 30 steps égalent 1s
Si tu veux que ton alarm tourne en boucle, suffit de mettre la ligne précédente à la fin de ton event alarm[0]
Ensuite, pour qu'il tire sur chacun des objets, c'est simple :
Code:

for(int i=0;i<instance_count;i++){
  obj=instance_id[i];
  if(obj.object_index==ennemi_a_shooter){
    // on tire sur obj
  }
}
alarm[0]=90;
Tu met ca dans l'event alarm[0] et t'initialise ton alarm dans le create.

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *


Messages : 228

MessageSujet: Re: Savoir si un objet est la    Jeu 21 Nov 2013 - 20:53

J'ai essayer une technique aussi pour que sa tire une balle toute les 3 seconde si il y a un monstre :
dans alarm 0 :

Code:
alarm[0]=90; // pour que au moment 90 l'objet 99 sois créer
instance_create (0,0,object99) // l'objet est créer
alarm[0]=0; // setter l'alarm a 0 pour le remtre a 0
dans step :

Code:
if instance_exists(object22)
 {
 alarm[0]=0; //pour mettre l'alarme a 0
 }
Le problème c'est que sa marche pas ^^ a mon avis c'est les alarms vue que je suis pas top dans se domaine .
Est-ce possible de placer un objet en relative pour qu'il se place a l'objet qui le fait spawner ?

Un genre de

Code:
instance_create (0,0,object99,relative)
?

Merci beaucoup en tout cas de m'aider ^^ , je n'est pas oublier Térence68 mais il me semble que le code que tu ma donner ne fait pas en sorte que l'objet tire jusqu’à ce que l'objet n’existe plus .
Revenir en haut Aller en bas
kujaff
Très bonne participation
avatar

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: Re: Savoir si un objet est la    Jeu 21 Nov 2013 - 21:22

Térence > ok, j'ai peut être du mal mit prendre ^^' va savoir...

D’après ce que j'ai pue comprendre, ce que t'a donner Térence est bon pour toi, c'est juste que c'est... Vachement "avancer" pour nous ^^'

Mais le code que je t'ai donner est bon, je l'ai tester, t'a juste a changer les valeurs Wink

alarm[0] = 90 veux dire que l'alarme 0 se déclenchera dans 90 steps, donc mettre alarm[0] = 0 signifie que l'alarme va se lancer dans 0 steps ^^' Donc tes alarmes sont fausse.

Quand a la relative, c'est possible, je te l'ai même donner dans mon code.

Code:
{
instance_create(obj_tonobjetquitire.x, obj_tonobjetquitire.y, obj_balle) // crée l'objet "balle" qui partira de "tonobjetquitire"
}
x = tonobjet.x
y = tonobjet.y

bon, après tu peux toujours ajuster en rajoutant des "+ x/y" ou "- x/y". Genre tonobjet.x+15.(ça va prendre la coordonné x de ton objet et x rajouter 15)
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Savoir si un objet est la    Ven 22 Nov 2013 - 8:06

Kujaff> oui ton code devrait marcher, c'est juste qu'il ne tire pas sur tous les ennemis ^^
Et alarm[0]=0 ne marche pas a mon souvenir, faut mettre au moins 1. En plus mettre l'alarm a 0 dans l'évent alarm0 ca fait une boucle infinie ^^
Pour mon code, le fonctionnement global est simple, faut juste connaitre les fonctions/variables utilisés : en gros pour tous les objets de la room, on teste si c'est bien un objet ennemie (sur lequel on veut tirer), et si c'est le cas, bah a toi de lui tirer dessus Wink

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *


Messages : 228

MessageSujet: Re: Savoir si un objet est la    Ven 22 Nov 2013 - 11:00

Térence j'ai tester ton code mais il me dit qu'il y a une éreur au "i" de cette ligne : for(int i=0;i<instance_count;i++)

Sinon j'ai la version de kujaff ce qui est top pour moi car je peut changer tout sa avec des variable et donc apret je pourrais changer le temps de "recherge" ^^

J'ai juste un mini problème c'st que si j'ai deux objet sur le map un seul objet tire 2 balle ce qui rend pas très réaliste vous ne savez pas si c'est possible que chacun des objet tire depuis sa tower .
si vous navez pas comprit ( c'est un peut compliquer ) si j'ai 2 objet un seul et meme objet tire 2 balles ce qui est normal pour les 2 balle sauf que je voudrai que chaque objet tire une balle et non que juste 1 objet tire le nombre de balles égale au nombre de tower c'est comme si j'avais une arme et que si un amis tire la balle de mon amis sort de mon cannon ^^

En tout cas merci beaucoup ^^
Revenir en haut Aller en bas
kujaff
Très bonne participation
avatar

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: Re: Savoir si un objet est la    Ven 22 Nov 2013 - 15:10

Tu a mit le script dans l'objet qui tir ? Enfin... je me comprend ^^'

Code:
{
instance_create(obj_tonobjetquitire.x, obj_tonobjetquitire.y, obj_balle) // crée l'objet "balle" qui partira de "tonobjetquitire"
}
Je t'avais donner se code car je ne savais pas que c’était un TD, donc si plusieurs tourelle on le même code c'est certes embêtant...

donc, dans ton cas, c'est tout simplement

Code:
{
instance_create(x, y, obj_balle) // crée l'objet "balle" qui partira de cette objet
}
Mais bon, pour un TD j'aurais plutot utilisé "si la distance de l'objet est de" que plutot "si l'objet existe", mais après, ce n'est que mon avis ^^'

Quand au "int", c'est normal que ça ne marche pas ^^' Ce n'est pas du gml ^^' C'est ce qui arrive quand on code dans plusieurs language.


Dernière édition par kujaff le Ven 22 Nov 2013 - 15:36, édité 1 fois
Revenir en haut Aller en bas
albisse
Utilisateur confirmé: Rang *


Messages : 228

MessageSujet: Re: Savoir si un objet est la    Ven 22 Nov 2013 - 15:27

et oui c'est justement par ce que j'ai pliseur objets en meme temps ^^ donc me faudrai le code que tu ma donner " le premier" ce que j'ai fait mais bon sa me fait se problème et le second est impossible car j'en ai plusieurs donc impossible ^^

Mais merci quand même .
Revenir en haut Aller en bas
kujaff
Très bonne participation
avatar

Messages : 127
Localisation : Dans mon Atelier
Projet Actuel : Puzzle/Reflexion

MessageSujet: Re: Savoir si un objet est la    Ven 22 Nov 2013 - 15:33

le code suivant est bon.
Code:
{
instance_create(x, y, obj_balle) // crée l'objet "balle" qui partira de cette objet
}
soit le complet

Code:
if instance_exists(obj_tonobjet) /// Si "tonobjet" existe alors
{
temps += 1 /// ajoute 1 a la variable temps
}

if temps == 20 /// Si la variable est égale a 20, elle tire
{
instance_create(x, y, obj_balle) // crée l'objet "balle" qui partira de cette objet
}

if temps == 40 /// si la variable temps est égale a 40 alors
{
temps = 0 // rendre égale la variable temps a 0
}
La balle partira de ton objet, si tu a 36 même objet sur la map, chaque objet tira de ça position.
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Savoir si un objet est la    Ven 22 Nov 2013 - 15:34

Ahah x) désolé pour le int ^^'
Bah sinon le truc le plus simple et le plus réaliste, c'est de faire que chaque tour tire sur l'ennemi le plus proche, que tu peux récupérer grâce à instance_nearest().
En fait là j'ai un peu l'impression que tu ne sais pas trop ce que tu veux, nan ? Wink

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Savoir si un objet est la    

Revenir en haut Aller en bas
 
Savoir si un objet est la
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Inhalation d’un objet
» A savoir: Amsterdam, Capitale mondiale du livre 2008
» Nouveau site « Savoir revivre »
» Les bonnes adresses du net pour tout savoir sur les couches lavables!
» Application iphone "Savoir inutile"

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: