| Savoir si un objet est la | |
|
|
Auteur | Message |
---|
albisse Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Savoir si un objet est la Jeu 21 Nov 2013 - 13: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 ^^ |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Savoir si un objet est la Jeu 21 Nov 2013 - 13:45 | |
| Condition et alarm. Pour savoir si une instance d'objet existe: instance_exists(obj) |
|
| |
albisse Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Savoir si un objet est la Jeu 21 Nov 2013 - 17: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 |
|
| |
kujaff Très bonne participation
Messages : 127 Localisation : Dans mon Atelier Projet Actuel : Puzzle/Reflexion
| Sujet: Re: Savoir si un objet est la Jeu 21 Nov 2013 - 18: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. |
|
| |
albisse Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Savoir si un objet est la Jeu 21 Nov 2013 - 19: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 .. ^^ |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Savoir si un objet est la Jeu 21 Nov 2013 - 19: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.
|
|
| |
albisse Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Savoir si un objet est la Jeu 21 Nov 2013 - 21: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 . |
|
| |
kujaff Très bonne participation
Messages : 127 Localisation : Dans mon Atelier Projet Actuel : Puzzle/Reflexion
| Sujet: Re: Savoir si un objet est la Jeu 21 Nov 2013 - 22: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 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 .xy = tonobjet .ybon, 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) |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Savoir si un objet est la Ven 22 Nov 2013 - 9: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 _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
albisse Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Savoir si un objet est la Ven 22 Nov 2013 - 12: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 ^^ |
|
| |
kujaff Très bonne participation
Messages : 127 Localisation : Dans mon Atelier Projet Actuel : Puzzle/Reflexion
| Sujet: Re: Savoir si un objet est la Ven 22 Nov 2013 - 16: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 - 16:36, édité 1 fois |
|
| |
albisse Utilisateur confirmé: Rang *
Messages : 233
| Sujet: Re: Savoir si un objet est la Ven 22 Nov 2013 - 16: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 . |
|
| |
kujaff Très bonne participation
Messages : 127 Localisation : Dans mon Atelier Projet Actuel : Puzzle/Reflexion
| Sujet: Re: Savoir si un objet est la Ven 22 Nov 2013 - 16: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. |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: Savoir si un objet est la Ven 22 Nov 2013 - 16: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 ? _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Contenu sponsorisé
| Sujet: Re: Savoir si un objet est la | |
| |
|
| |
| Savoir si un objet est la | |
|