| Pb avec other... Comment programmer l'exemple? [Résolu] | |
|
|
Auteur | Message |
---|
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Pb avec other... Comment programmer l'exemple? [Résolu] Lun 22 Jan 2007 - 14:19 | |
| Je veux que lorsqu' une carrapace entre en collision avec une instance, pouvoir modifier une variable dans cette instance et non dans toutes les instances du type de cet objet.
Par exemple est t'il possible de faire un truc du genre : remplacer other par un goomba... ou par un goomba métalique
sur le Goomba : vulnerabiliter_carapace=1 donc il perd un PV
sur le Goomba métalique : vulnerabiliter_carapace=0 donc il ne perd pas de PV et la carapace rebondi et part dans le sens opposé...
dans le step de la carapace if(place_meeting(x,y,other)) { if(other.vulnerabiliter_carapace==1) { other.PV=other.PV-1
} else { hspeed=-hspeed }
}
Le problème, c'est que j'ai du mal à me servir de other... other.PV risque pas de retourner les PV d'une autre instance? Quand peut t'on se servir de other? Comment ? oubien sinon il va falloir que je m'arrange pour retourner l'ID de l'instance...
Bon, je par réviser tout cela dans l'aide de GM6.1...
Si vous pouvez m'éclaircir un ou plusieurs points , ne vous privez pas... Si vous connaissez des GM6 illustrant un peu cela... _________________ Topique pour le Projet Hello Mario en préparation. Sorti du topique lorsque la première démo sera disponible.
Dernière édition par le Ven 26 Jan 2007 - 10:39, édité 1 fois |
|
| |
Devil37 Utilisateur confirmé: Rang *****
Messages : 1815
| Sujet: Re: Pb avec other... Comment programmer l'exemple? [Résolu] Lun 22 Jan 2007 - 16:09 | |
| J'ai ma petite idée : Définit une variable dans ta carapace dans "Create"( prenons par exemple "prout" que nous attribuons 0) Le mot clé all pour tous les objets, fais bien gaffe à définir la variable "vulnerabiliter_carapace" dans TOUS les objets sans quoi ça bugera Mets ensuite dans tous les objets autres la valeur 2. Si tu ne veux pas tout définir, mets la variable uniquement sur ceux dont le chemin se trouve sur celui de la carapace et mets deux fois "with ..." en remplacant le mot clé all de with par tes deux bêtes - Code:
-
if(place_meeting(x,y,all)) { with all {if(vulnerabiliter_carapace=1){other.prout = id} if(prout.vulnerabiliter_carapace = 1) { prout.PV=prout.PV-1
} if(prout.vulnerabiliter_carapace = 0) { hspeed=-hspeed }
}
|
|
| |
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Pb avec other... Comment programmer l'exemple? [Résolu] Lun 22 Jan 2007 - 17:13 | |
| ça m'a l'air pas trop mal Mais après avoir cerné l'algorythme , je me doute qu'il y a des failles ; par exemple if(prout.vulnerabiliter_carapace = 1) { prout.PV=prout.PV-1 } Si il y a 5 prouts (un "s" ou pas ? C'est quoi le pluriel ); Il suffirait que la carrapace en touche 1 pour que tout les prouts perdent 1 PV. C'est justement là mon problème :snif2: Merci pour la réponse, si tu as d'autres idées , n'hésite pas :p_merci: _________________ Topique pour le Projet Hello Mario en préparation. Sorti du topique lorsque la première démo sera disponible.
|
|
| |
Devil37 Utilisateur confirmé: Rang *****
Messages : 1815
| Sujet: Re: Pb avec other... Comment programmer l'exemple? [Résolu] Lun 22 Jan 2007 - 17:21 | |
| Ah oui désolé je n'avais pas tout exploité Ba dans le with met un IF avec par exemple un collision_rectangle ou un point_distance ... C'est marqué dans l'aide Encore désolé je n'avais pas vu et j'avais bien compris ton problème |
|
| |
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Pb avec other... Comment programmer l'exemple? [Résolu] Lun 22 Jan 2007 - 18:37 | |
| En faite , il faudrait pouvoir retourner l ID de l'autre instand de la colision
Par exemple , si la carapace heurte un champi, il faudrait trouver l 'ID du champi... je crois que en faite c'est encore plus bête que ça...
Bon, pour l'instand je réfléchis pour mon Mario , je programme des IA pour les ennemis mais en même temps , temps que je n'ai pas trouvé cette solution, je ne pourais pas préparer certaines de mes normes... [spécificité de certains énemis à résister aux carapaces...] _________________ Topique pour le Projet Hello Mario en préparation. Sorti du topique lorsque la première démo sera disponible.
|
|
| |
daminetreg Administrateur
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
| Sujet: Re: Pb avec other... Comment programmer l'exemple? [Résolu] Lun 22 Jan 2007 - 18:48 | |
| Ben dans l'objet carapace, dans la collision with obj_champi. Tu obtiens l'id du champi avec other.
Du genre: champi += 1; with (other) instance_destroy(); _________________ Mon CV : fr - de - en Tous Ensemble! Réalisons! |
|
| |
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Pb avec other... Comment programmer l'exemple? [Résolu] Lun 22 Jan 2007 - 21:51 | |
| - daminetreg a écrit:
- Ben dans l'objet carapace, dans la collision with obj_champi. Tu obtiens l'id du champi avec other.
Du genre: champi += 1; with (other) instance_destroy(); Non plus, parsque à ce moment il faudrait que je teste la collision avec mes 200 champis issus d'objet différents... :p_merci: quand même ! La je commense à désespérer... C'est domage car cela m'aurait permis de crée une sorte de base de donnée... _________________ Topique pour le Projet Hello Mario en préparation. Sorti du topique lorsque la première démo sera disponible.
|
|
| |
[TheDarkTiger] Modérateur
Messages : 7420 Localisation : Essonne
| Sujet: Re: Pb avec other... Comment programmer l'exemple? [Résolu] Lun 22 Jan 2007 - 22:56 | |
| code stupide, mais qui peut marcher ... Carapace : var ID ID= other. id; if object_get_name(ID)="goomba metalique" { hspeed*=-1; } if object_get_name(ID)="goomba" { other.PV-=1; } _________________ Bonne chance pour vos projets actuels ! Prêt à aider ceux qui en ont besoin ^^ l'antiqueBienvenue au 2630eme utilisateur : Mike Kennedy ! |
|
| |
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Pb avec other... Comment programmer l'exemple? [Résolu] Lun 22 Jan 2007 - 23:05 | |
| Répondre à [TDT] : Je pensais bien à un truc du genre mais je n'étais pas sûr que other se référait à la seconde instance de la colision... Ta réponse est celle qui semble le plus proche de ce que je recherche à faire. Alors je vais voir si en modifiant un peu la forme, je pourais obtenir quelque chose d'encore plus proche de ce que je souhaite... Merciiii ^^ et continuez à poster si vous avez des idées... Le problème n'est pas encore résolu (il y a peu être pas de solution d'ailleur ^^) _________________ Topique pour le Projet Hello Mario en préparation. Sorti du topique lorsque la première démo sera disponible.
|
|
| |
Levans Utilisateur confirmé: Rang *****
Messages : 1598 Localisation : France -> Île de France -> Essonne -> Gif sur Yvette
| Sujet: Re: Pb avec other... Comment programmer l'exemple? [Résolu] Mar 23 Jan 2007 - 7:35 | |
| - Topaze22 a écrit:
- daminetreg a écrit:
- Ben dans l'objet carapace, dans la collision with obj_champi. Tu obtiens l'id du champi avec other.
Du genre: champi += 1; with (other) instance_destroy();
Non plus, parsque à ce moment il faudrait que je teste la collision avec mes 200 champis issus d'objet différents... :p_merci: quand même ! La je commense à désespérer... C'est domage car cela m'aurait permis de crée une sorte de base de donnée... quoi, t'as 200 objets champi différents ?? mais pour quoi t'en fais pas un seul que tu mets à plusieurs endroits ? parce que si dans la section objects du gm6, t'as un seul objet champi, le code de dam marche... |
|
| |
Blizter Banni(e)
Messages : 2002
| Sujet: Re: Pb avec other... Comment programmer l'exemple? [Résolu] Mar 23 Jan 2007 - 13:25 | |
| Dans ces situation j'utilise instance_nearest. |
|
| |
daminetreg Administrateur
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
| Sujet: Re: Pb avec other... Comment programmer l'exemple? [Résolu] Mar 23 Jan 2007 - 16:40 | |
| Mais ça te gênerai de récuperer ces ids lors de la création des objets? _________________ Mon CV : fr - de - en Tous Ensemble! Réalisons! |
|
| |
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Pb avec other... Comment programmer l'exemple? [Résolu] Mar 23 Jan 2007 - 17:23 | |
| Répondre à Levans : Non , je n'ai pas 200 champi ... Mais je compte bien avoir une 30ènes d'enemis différents et leur définir une résistance aux carrapaces et à la souris par exemple... et il existera plusieurs objets carrapaces... Je n'ai pas envi de faire des testes de collision avec 30 ennemis dans 10 objet carrapaces différents ... C'est pour cela que l'ID de damintreg ne marche hélas pas (sinon, je n'aurais pas crée ce topic ) Super merci de réfléchir un peu avec moi sur ce problème qui me gène bien... Répondre à blizter :L'instance nearest m'a l'air d' être une solution interessante auquel je n'avais pas pensé mais je ne crois pas que cela pourais me permettre de faire éxactement comme je le souhaiterais quoique... Si je ne trouve pas de solution ou que je n'en suis pas pleinement satisfait, j'exploiterai peu être ce filon... :p_merci: Répondre à Daminetreg : - Citation :
- Mais ça te gênerai de récuperer ces ids lors de la création des objets?
Attend 5 minutes , je réfléchis sur cette idée... Edit : Je crois que ton idée m'interesse mais j'ai un peu de mal à cerner l'algorythme... Alors je continu à chercher , si tu veux donner un peu plus d'esplication sur le principe, n'hésites pas Bon , je continue de réfléchir sur ton idée... Edit : Je crois que j'ai trouvé la voix , celle qui me serait parfaite : Dans l'aide française de GameMaker , j'ai vu cela : - Citation :
Lors de la planification des mouvements ou lorsque vous décidez d'effectuer certaines actions, il est souvent important de vérifier s'il existe des collisions entre des objets placés à différents endroits. Les routines suivantes peuvent vous être utiles pour effectuer ce contrôle. Ces routines possédent toutes en commun trois arguments. L'argument obj peut être un objet, le mot-clé all ou encore l'ID d'une instance. L'argument prec indique si la vérification doit s'effectuer de manière précise ou seulement être basée sur la boîte de rebond de l'instance. Un contrôle précis n'est fait uniquement que lorsque le sprite de l'instance est paramétré avec l'option de contrôle précis de collision. L'argument notme peut être positionné à true pour indiquer que l'instance courante ne doit pas être vérifiée. Toutes ces fonctions retournent soit l'ID de l'une des instances en collision ou renvoient une valeur négative en cas de non collision.
collision_rectangle(x1,y1,x2,y2,obj,prec,notme) Cette fonction teste s'il existe une collision entre le rectangle (plein) de coins opposés indiqués et les entités de l'objet obj. Par exemple, vous pouvez utiliser cette fonction pour tester si une zone est sans obstacles.
Donc si je fais dans le step de la carrapace : ID=collision_rectangle(0,0,0,0,all,false,false) Je devrais retourner l'ID de tout les objets , dont les objets champi, vulnérable ou pas... Ensuite , toujours dans le step de la carrapace, je fais un truc du genre : if(ID.vulnerable==1) {ID.PV=ID.PV-1} else {hspeed=hspeed-1} ça vous a l'air correct au niveau de l'algorythme? Je pense que si ça marche, ce truc me prendrait moins le choux que de réfléchir à un truc lors de la création des instances... Non? Encore faut'il que ça marche... _________________ Topique pour le Projet Hello Mario en préparation. Sorti du topique lorsque la première démo sera disponible.
|
|
| |
Topaze22 *Excellent utilisateur*
Messages : 6213 Localisation : Sur la Lune Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World
| Sujet: Re: Pb avec other... Comment programmer l'exemple? [Résolu] Jeu 25 Jan 2007 - 20:08 | |
| Ca marche! Encore un point simpa pour mon Projet Mario... Merci pour tout vos trucs [Resolu] _________________ Topique pour le Projet Hello Mario en préparation. Sorti du topique lorsque la première démo sera disponible.
|
|
| |
Contenu sponsorisé
| Sujet: Re: Pb avec other... Comment programmer l'exemple? [Résolu] | |
| |
|
| |
| Pb avec other... Comment programmer l'exemple? [Résolu] | |
|