| collision checking | |
|
|
Auteur | Message |
---|
God-of-Jackals Débutant
Messages : 10
| Sujet: collision checking Ven 4 Juil 2014 - 13:12 | |
| Bonjour, je suis un novice en programmation donc comme c'est le tout premier jeu que je crée je suis un peu beaucoup en galère. En fait, j'aimerai créé un genre de tétris mais je n'arrive pas à programmer l'apparition des blocs. Dans ce jeu, les blocs doivent tomber les uns après les autres et donc pour cela il faut un programme qui, quand il y a une collision entre le "bloc1" et le sol, créé un "bloc2" qui à son tour tombe et lorsqu'il y a une collision entre le "bloc2" et le sol crée un "bloc3" etc. De ce fait, j'ai pensé que le programme suivant marcherai mais en fait non : instance_create (384, 0, "le bloc1"); { if (place_meeting (x, y, "le sol")) { instance_create(384, 0, "le bloc2") } } Merci d'avance ! |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: collision checking Ven 4 Juil 2014 - 13:19 | |
| Il faut pas mettre de guillemets autour du nom de l'objet, et donc ne pas mettre d'espace dans le nom des ressources. Donc ton code donne ca à la fin : instance_create (384, 0, le_bloc1); { if (place_meeting (x, y, le_sol)) { instance_create(384, 0, le_bloc2) } } Par contre ca sert à rien de faire un objet par bloc (ou alors un objet par forme différente). De même, commencer par un tétris c'est ptêt pas forcément le plus simple... Tu devrais lire les tutos de la section GameMaker et regarder un peu la doc : http://gamemaker.info/fr/manualBienvenue ici et bonne continuation ! |
|
| |
God-of-Jackals Débutant
Messages : 10
| Sujet: Re: collision checking Ven 4 Juil 2014 - 14:14 | |
| En fait le truc des blocs c'était un exemple pour faire simple parce que j'ai mis des objets avec une certaine probabilité d'apparaître avec choose(...). Ma vrai formule c'est : instance_create (384, 0, choose(object_0_N, object_0_N, object_0_N, object_0_N, object_0_N, object_0_N, object_0_N, object_1_N, object_1_N, object_1_N, object_1_N, object_1_N, object_1_N, object_1_N, object_2_N, object_3_N)); { if (place_meeting (x, y, object_solid)){ instance_create (448, 0, choose(object_0_N, object_0_N, object_0_N, object_0_N, object_0_N, object_0_N, object_0_N, object_1_N, object_1_N, object_1_N, object_1_N, object_1_N, object_1_N, object_1_N, object_2_N, object_3_N)) } } avec pour object_solid : ce qui est le sol dans ma "room" mais ce programme ne marche pas |
|
| |
red-error Utilisateur confirmé: Rang ****
Messages : 1015 Projet Actuel :
| Sujet: Re: collision checking Ven 4 Juil 2014 - 16:04 | |
| Quelques pistes: - pour être sûr, place_meeting utilise le mask de l'objet qui l'appelle pour tester une position, donc ca dépends du sprite de ton contrôleur. - un objet avec un event de collision avec un objet _solide_ est toujours transporté à sa position précédente lors de la colision même si tu le précise pas (je crois), ce qui rends parfois les tests avec les positions difficiles à visualiser
|
|
| |
God-of-Jackals Débutant
Messages : 10
| Sujet: Re: collision checking Ven 4 Juil 2014 - 16:31 | |
| - Citation :
- - pour être sûr, place_meeting utilise le mask de l'objet qui l'appelle pour tester une position,
donc ca dépends du sprite de ton contrôleur. Qu'est-ce que c'est le "mask" ? |
|
| |
red-error Utilisateur confirmé: Rang ****
Messages : 1015 Projet Actuel :
| Sujet: Re: collision checking Ven 4 Juil 2014 - 16:39 | |
| Je sais pas si ça s'appelles toujours comme ça mais c'est juste la partie de ton sprite qui est prise en compte pour la collision (le "masque"). D'habitude c'est tout le sprite sauf les parties transparentes. |
|
| |
God-of-Jackals Débutant
Messages : 10
| Sujet: Re: collision checking Ven 4 Juil 2014 - 16:45 | |
| Pourtant j'ai bien fait attention à ça, j'ai bien mis la "collision shape" , c'est vraiment bizarre parce que ma formule me paraît correcte. Sinon, y a t-il un autre moyen que utiliser place_meeting ? |
|
| |
God-of-Jackals Débutant
Messages : 10
| Sujet: Re: collision checking Ven 4 Juil 2014 - 21:30 | |
| et j'ai un autre problème , lorsque mon bloc tombe et touche le sol, il se met à trembler sur le sol ce qui fait qu'ensuite au lieu de me créer qu'un seul autre bloc après la collision, ça m'en crée une infinité !!! Y a t-il un moyen pour éviter ce tremblement, le fait que ça rebondisse très vite à l'infini ? |
|
| |
red-error Utilisateur confirmé: Rang ****
Messages : 1015 Projet Actuel :
| Sujet: Re: collision checking Ven 4 Juil 2014 - 21:52 | |
| -Je crois qu'il y avait des trucs comme collision_point et collision_rectangle
-Peut-être retiens dans une variable si tu as déjà touché le sol, et ne créer un objet que une seule fois? |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: collision checking Ven 4 Juil 2014 - 22:52 | |
| - God-of-Jackals a écrit:
- j'ai bien mis la "collision shape"
Bah justement non, faut laisser le pixel perfect. Et pour cette histoire de tremblement c'est sans doute que t'as mis un move_outside_solid quelque part et que tu l'as attribué comme action par défaut pour les autres objets solid. |
|
| |
God-of-Jackals Débutant
Messages : 10
| Sujet: Re: collision checking Sam 5 Juil 2014 - 12:25 | |
| ok mais comment on fait pour laisser le pixel perfect parce que il faut que j'utilise la physique pour que les blocs tombent et donc j'ai besoin d'ajuster la "collision shape" parce que sinon elle est a chaque fois en dehors de mon objet. - Citation :
- Et pour cette histoire de tremblement c'est sans doute que t'as mis un move_outside_solid quelque part et que tu l'as attribué comme action par défaut pour les autres objets solid.
Ensuite, en ce qui concerne le tremblement je ne pense pas avoir attribué de move_outside_solid à mes objets, le seul programme que j'ai fait pour l'instant c'est celui que j'ai posté au tout début de cette discussion, celui qui me permet de créer aléatoirement des blocs. Donc je pense que l'erreur se trouve peut-être dans les caractéristiques de la room parce que j'utilise la gravité pour faire tomber mes blocs, ou alors c'est peut-être aussi un problème dans les propriétés de mes objets. Ou alors c'est peut-être aussi le moyen que j'utilise pour détecter la collision. Pour cela j'ai mis à mes blocs l' "event" collision avec "le sol" , et dans actions j'ai mis un script à exécuter, celui qui recrée un bloc. C'est tout. En tout cas merci de m'apporter votre aide pour essayer de résoudre ce casse tête , c'est vraiment super sympa |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: collision checking Sam 5 Juil 2014 - 12:28 | |
| - God-of-Jackals a écrit:
- ok mais comment on fait pour laisser le pixel perfect parce que il faut que j'utilise la physique pour que les blocs tombent et donc j'ai besoin d'ajuster la "collision shape" parce que sinon elle est a chaque fois en dehors de mon objet.
Je comprend pas tout là... T'utilise un moteur physique ou t'utilise juste les fonctions gravity_set_ ? Dans ce dernier cas ia vraiment pas besoin de mettre un collision shape. Sinon upload ton projet, je regarderais de plus près. |
|
| |
God-of-Jackals Débutant
Messages : 10
| Sujet: Re: collision checking Sam 5 Juil 2014 - 12:41 | |
| en fait j'utilise pas de gravity_set_ , j'ai mis dans les propriétés physiques de ma room de la gravité donc tous les objets y sont soumis sauf pour certain où pour qui ne tombent pas je leur ai mis 0 densité. De ce fait, j'ai coché la case "uses physics" pour tous les objets. Lorsque cette case est cochée, apparaît dans les propriétés de l'objet, les propriétés physiques de ce dernier où on doit ajuster la "collision shape", ce que j'ai fait. |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: collision checking Sam 5 Juil 2014 - 12:43 | |
| Ouais donc c'est le moteur physique de GMS... Ca sert à rien pour toi, n'utilise pas ca mais les fonctions gravity_set_ |
|
| |
God-of-Jackals Débutant
Messages : 10
| Sujet: Re: collision checking Sam 5 Juil 2014 - 13:34 | |
| j'ai essayé de le faire mais ça ne marche pas non plus et maintenant j'ai un autre problème bon je te l' upload parce que je crois que je vais jeter l'éponge, c'est le premier jeu que je crée et je crois que j'ai eu les yeux plus gros que le ventre en fait avant j'adorais jouer à un vieux jeu et je me suis dit que ce serait plutôt cool de pouvoir y rejouer en le recréant. ça c'est un lien ou tu peux voir à quoi ressemblait le vrai jeu pour comprendre un peu mieux comment je voulais faire (par contre fait pas attention au niveau de jeu du gars, il est vraiment pas fort ): https://www.youtube.com/watch?v=ZrKgimrhX38par contre je fais comment pour upload mon fichier ? |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: collision checking Sam 5 Juil 2014 - 13:54 | |
| |
|
| |
God-of-Jackals Débutant
Messages : 10
| Sujet: Re: collision checking Sam 5 Juil 2014 - 14:04 | |
| non mais tant pis en revoyant la vidéo je viens de réaliser qu'il y aura des choses dans le jeu qui seront encore bien pire que de faire tomber un simple bloc je vais laisser ce projet en stand by et je vais m'entrainer sur d'autres projets plus simple sinon je ne vais faire que demander de l'aide et au final n'aurai rien fait seul merci beaucoup de ton aide quand même, c'est vraiment cool ce système d'entraide ! et désolé d'avoir utiliser un peu de temps libre |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: collision checking Sam 5 Juil 2014 - 14:09 | |
| Comme tu veux. Tu devrais regarder les tutos d'oni, ca te permettra de comprendre comment marche GM. Et de rien |
|
| |
God-of-Jackals Débutant
Messages : 10
| Sujet: Re: collision checking Sam 5 Juil 2014 - 14:22 | |
| OK merci pour l'info |
|
| |
Contenu sponsorisé
| Sujet: Re: collision checking | |
| |
|
| |
| collision checking | |
|