AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Funko POP! Jumbo One Piece Kaido Dragon Form : ...
Voir le deal

 

 [RÉSOLU] Being solid or not to be it.

Aller en bas 
4 participants
AuteurMessage
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. EmptyLun 19 Sep 2011 - 9:32

J'ai un soucis d'ordre "bug de GM".

Vive les petits trucs incompréhensibles qui font que la programmation est prise de tête.

Bon voici mon problème, j'utilise cette ligne:
Code:
if( instance_place(obj_hero.x,obj_hero.y-1,all.solid) )
Pour savoir si mon héros porte quelque chose de solide sur la tête.

Sauf que j'ai un problème.

Cet objet me revois "true" (ce qui est normal) :
Citation :

Information about object: obj_block

Sprite: block1
Solid: true
Visible: false
Depth: 0
Persistent: false
Parent: <no parent>
Mask: <same as sprite>

Et celui-ci "false" (ce qui ne devrais pas être le cas):
Citation :

Information about object: obj_block_magique

Sprite: block_magique
Solid: true
Visible: true
Depth: 0
Persistent: false
Parent: <no parent>
Mask: <same as sprite>

Destroy Event:
create instance of object obj_explosion at relative position (0,0)

Step Event:
execute script func_gravite with arguments (0,0,1,1,0)

J'ai tester un :
Code:
collision_line(x1,y1,x2,y2,all.solid,true,true)
avec mon objet "obj_block_magique" qui bouche ma LDV et ça me renvois aussi false.

J'ai essayé de supprimer la fonction "func_gravite()" du step mais ça ne change rien, pareille pour le "if (destroy())" et j'ai même essayer de mettre le même sprite que mon objet "obj_block".

Et pour finir je l'ai supprimer et recréé, et toujours pas le résultat souhaité (et logique)...

Je deviens fous.

Quelqu'un à une idée de où ça peut venir?


Dernière édition par Caly le Lun 19 Sep 2011 - 23:15, édité 1 fois
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: Re: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. EmptyLun 19 Sep 2011 - 10:54

C'est parce qu'on ne peut pas utiliser all.solid (pas a ce que je sache en tout cas :p)

_________________
[RÉSOLU] Being solid or not to be it. Runningpotato1[RÉSOLU] Being solid or not to be it. TvF6GED [RÉSOLU] Being solid or not to be it. MdetltS
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: Re: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. EmptyLun 19 Sep 2011 - 11:14

Pourtant j'ai lu ça dans une doc en anglais je ne sais plus où.

Et je l'utilise plusieurs fois dans plusieurs de mes fonctions et ça fonctionne.

D’ailleurs le all.solid ou other.solid quant il s'agit de mon objet "obj_block" me revois toujours true que ce soit pour un " instance_place" ou "collision_line".

C'est juste pour l'objet "obj_block_magique" qu'il me revois systématiquement false.

Je ne vois pas ce qu'il y a de différent entre les deux objets.

Donc pour savoir si je porte un objet de dois faire une condition ou switch pour chaque objet ?
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: Re: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. EmptyLun 19 Sep 2011 - 11:23

Ça ce déroule comment l'action de porter un objet ?

Car si c'est un truc du genre :
if(place_meeting(x+1, y, objet_magique) && keyboard_check_pressed(vk_space))
{
ceQueJePorte = instance_place(x+1, y, objet_magique)
actionPorter = true
}

ben t'assigne juste une variable actionPorter et le tour est joué :p

_________________
[RÉSOLU] Being solid or not to be it. Runningpotato1[RÉSOLU] Being solid or not to be it. TvF6GED [RÉSOLU] Being solid or not to be it. MdetltS
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: Re: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. EmptyLun 19 Sep 2011 - 11:36

Enfait je voudrais faire un truc completement automatisé.

Si je suis ton code :
Code:
instance_place(x+1, y, objet_magique)
Ça veux dire que je ne peut porter que objet_magique.
Mais si je veux porter un trampoline je doi refaire le meme code mais avec :
Code:
instance_place(x+1, y, objet_trampoline)
(ou utilisé un switch)

Ce qui est loin d'être automatisé.

Ce que je voudrais c'est :
Code:
Si c'est un objet solide et qu'il dispose de la fonction gravite
 - je peut le porter.

Mais c'est bon au lieu de faire "all.solid" je vais faire "all" et exécuter une seconde condition pour savoir s'il est solide ou non.
Ce qui m'ennuis c'est juste que le système exécute une condition de plus et que le code reste moins clair, mais si j'ai pas le choix on va passer là tampis.
Mais je ne comprend pas pourquoi all.solid ou other.solid ne fonctionne pas.

Va falloir que je re-modifie ma fonction de ligne de vue pour éviter certains bugs... grrr.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: Re: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. EmptyLun 19 Sep 2011 - 11:45

Utilise l'hérédité :p

[RÉSOLU] Being solid or not to be it. 1131091045

_________________
[RÉSOLU] Being solid or not to be it. Runningpotato1[RÉSOLU] Being solid or not to be it. TvF6GED [RÉSOLU] Being solid or not to be it. MdetltS
Revenir en haut Aller en bas
supmaster004
Utilisateur confirmé: Rang *****
supmaster004


Messages : 2188
Localisation : x=23.256842 y=43.456879
Projet Actuel : Faire des parodies de jeux en 1h

[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: Re: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. EmptyLun 19 Sep 2011 - 11:54

sinon, sous gm les noms des objets sont traduits en doubles par ordre d'apparition.

En gros, supposant que comme le dit oni, la variable all.solid n'existe pas, elle est traitée comme valant "0"

or, si le premer objet que tu as crée est obj_block, son numéro d'objet est 0.0 (donc 0)
et si tu crée un autre objet juste après (obj_block_magique par exemple) son numéro d'objet est 1.0 (donc pas all.solid)

ce que je te conseille, c'est de faire comme oni a dit et de mettre obj_block comme parent de ton obj_block_magique.

_________________
Spoiler:

L'IRC du cbna: IRC du cbna
projets terminés: prédation mouse vs keyboard ACII OC_ nintendo nightmare fuyez lavanville
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: Re: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. EmptyLun 19 Sep 2011 - 12:21

Merci supmaster004 pour l'explication trés clair, je crois avoir compris.
Et ça conincide vus que mon objet _obj_block_magique est un bloc créé par mon personnage et non initialisé dans la room.

Parcontre je suis dégouté d'avoir était conduit en erreur par mes lecture d'ailleurs, grrr.
Donc exit "all.solid"/"other.solid" dans mes scripts.

En sachant d'ou viens le probleme voici ce que j'ai fait :
Code:

//porter un objet.
    var objet;
    objet = instance_place(obj_hero.x, obj_hero.y-1, all);
    if(objet != noone)
        if(objet.solid){
            with (objet)
                if(variable_local_exists("vh") && variable_local_exists("vv")) //variable initialisé dans "func_gravite".
                    action_porter = true;               
        }

Si c'est plus simple et surtout plus léger par hérédité je veux bien un lien sur une explication de comment ça fonctionne s'il vous plait.

Je suis quand même un peut énervé sur le fait d'avoir perdu plus d'une heure à chercher pourquoi ça ne fonctionné pas, grrr!
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: Re: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. EmptyLun 19 Sep 2011 - 12:39

En gros quand tu fait instance_place(x, y, obj), ça va vérifier la position de tous les objets de type obj.
Mais si l'objet obj est le parent d'autres objets, alors ça feras la vérification aussi pour ces objets.
De ce fait tu peut sélectionner les objets auquel tu veux assigner l'action 'porter' en leur mettant tous le même parent, et en choisissant ce parent pour obj.

_________________
[RÉSOLU] Being solid or not to be it. Runningpotato1[RÉSOLU] Being solid or not to be it. TvF6GED [RÉSOLU] Being solid or not to be it. MdetltS
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: Re: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. EmptyLun 19 Sep 2011 - 12:56

Ha cool, tu viens de résoudre sur quoi je bossais en se moment même (la fonction de ligne de vue). Nickel ça.

Et l'hérédité exécute aussi les scripts du parent?
On ne peut mettre qu'un parent?

Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: Re: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. EmptyLun 19 Sep 2011 - 13:36

Alors l'hérédité exécute tous les event du parent, sauf si tu met du code dans cet event.
Bien sur il existe la fonction event_inherited() pour demander de quand même exécuter l'autre event en plus.

Et oui, on ne peut mettre qu'un parent :/

_________________
[RÉSOLU] Being solid or not to be it. Runningpotato1[RÉSOLU] Being solid or not to be it. TvF6GED [RÉSOLU] Being solid or not to be it. MdetltS
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: Re: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. EmptyLun 19 Sep 2011 - 22:39

euuuh dites, vous savez que le mot clé 'solid' existe pour les fonctions de collisions? Ca retourne 'true' si on est en collision avec une instance de nimporte quoi qui est ... solid :fleche_d

bref :

Code:
with(instance_place(obj_hero.x,obj_hero.y,solid)){

//execute ce qu'il faut avec une instance solide si elle existe

}

_________________
[RÉSOLU] Being solid or not to be it. Control-commentTous les icones de gm utilisables sur le cbna ICI  [RÉSOLU] Being solid or not to be it. Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
onilink_
Modérateur
onilink_


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

[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: Re: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. EmptyLun 19 Sep 2011 - 22:42

Not possible.
solid contient 1 ou 0, hors c'est les valeurs qui sont attribués aux 2 premiers objects.

_________________
[RÉSOLU] Being solid or not to be it. Runningpotato1[RÉSOLU] Being solid or not to be it. TvF6GED [RÉSOLU] Being solid or not to be it. MdetltS
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: Re: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. EmptyLun 19 Sep 2011 - 23:14

@Mad_Doc:
Je confirme pour le fait que ça ne fonctionne pas de mettre le mot clef "solid" seul; j'ai déjà essayé.

Et par logique je pense comme onilink_ sur le fait que "solid" est un boléen.

@onilink_:
En gros c'est vraiment un truc énorme et hyper puissant l’hérédité.

Par contre ça suxx un peut le fait de ne pouvoir mettre qu'un seul parent.

Car si tu as comme parent :
- Bloquant_la_LDV
- Objet_pouvant_etre_porte

Tu ne peut en choisir qu'un seul, c'est dommage.

Par contre pour la gestion d'une IA c'est excellent.
suffis de mettre le parent "ennemie" dans les objet dit 'ennemie' et de définir un comportement avec une variable définis dans le fils.

genre :
peureux, agressif etc...

En tout cas merci pour l'info, ça va réellement me servir!
Revenir en haut Aller en bas
supmaster004
Utilisateur confirmé: Rang *****
supmaster004


Messages : 2188
Localisation : x=23.256842 y=43.456879
Projet Actuel : Faire des parodies de jeux en 1h

[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: Re: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. EmptyLun 19 Sep 2011 - 23:42

bienvenue sur le cbna Hat

_________________
Spoiler:

L'IRC du cbna: IRC du cbna
projets terminés: prédation mouse vs keyboard ACII OC_ nintendo nightmare fuyez lavanville
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: Re: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. EmptyMar 20 Sep 2011 - 22:48

Alors là je comprends plus rien... avant de poster mon message d'hier, j'ai vite fait testé... et ça marchait...

Je reteste ce soir sur un autre PC, en refaisant vite fait un truc, ça marche plus...
il faut vraiment que je retrouve comment j'ai fait/sur quelle version de gm ça marchait.

j'ai surement pas rêvé :p
[edit] en attendant, c'est vrai que seul un
Code:


with(instance_place(mouse_x,mouse_y,all)){if !solid{exit;}

//blablabla

}
ou équivalent fonctionne... faut que je retrouve ce que j'ai fait hier!

_________________
[RÉSOLU] Being solid or not to be it. Control-commentTous les icones de gm utilisables sur le cbna ICI  [RÉSOLU] Being solid or not to be it. Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Contenu sponsorisé





[RÉSOLU] Being solid or not to be it. Empty
MessageSujet: Re: [RÉSOLU] Being solid or not to be it.   [RÉSOLU] Being solid or not to be it. Empty

Revenir en haut Aller en bas
 
[RÉSOLU] Being solid or not to be it.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Solid / Non-solid
» stop collision objet solid
» Solid works
» problème solid
» objet solid invisible mur

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: