AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 collision checking

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
God-of-Jackals
Débutant


Messages : 10

MessageSujet: collision checking   Ven 4 Juil 2014 - 11: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 !  clinoeuil
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: collision checking   Ven 4 Juil 2014 - 11: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/manual

Bienvenue ici et bonne continuation !

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
God-of-Jackals
Débutant


Messages : 10

MessageSujet: Re: collision checking   Ven 4 Juil 2014 - 12:14

En fait le truc des blocs c'était un exemple pour faire simple happy1  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  triste 
Revenir en haut Aller en bas
red-error
Utilisateur confirmé: Rang ****
avatar

Messages : 1015
Projet Actuel :

MessageSujet: Re: collision checking   Ven 4 Juil 2014 - 14: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
Revenir en haut Aller en bas
God-of-Jackals
Débutant


Messages : 10

MessageSujet: Re: collision checking   Ven 4 Juil 2014 - 14: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" ?
Revenir en haut Aller en bas
red-error
Utilisateur confirmé: Rang ****
avatar

Messages : 1015
Projet Actuel :

MessageSujet: Re: collision checking   Ven 4 Juil 2014 - 14: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.
Revenir en haut Aller en bas
God-of-Jackals
Débutant


Messages : 10

MessageSujet: Re: collision checking   Ven 4 Juil 2014 - 14: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 ?
Revenir en haut Aller en bas
God-of-Jackals
Débutant


Messages : 10

MessageSujet: Re: collision checking   Ven 4 Juil 2014 - 19:30

et j'ai un autre problème  snif  , 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 ?
Revenir en haut Aller en bas
red-error
Utilisateur confirmé: Rang ****
avatar

Messages : 1015
Projet Actuel :

MessageSujet: Re: collision checking   Ven 4 Juil 2014 - 19: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?
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: collision checking   Ven 4 Juil 2014 - 20: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.

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
God-of-Jackals
Débutant


Messages : 10

MessageSujet: Re: collision checking   Sam 5 Juil 2014 - 10: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  sweat , c'est vraiment super sympa  happy1 
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: collision checking   Sam 5 Juil 2014 - 10: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.

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
God-of-Jackals
Débutant


Messages : 10

MessageSujet: Re: collision checking   Sam 5 Juil 2014 - 10: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.
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: collision checking   Sam 5 Juil 2014 - 10:43

Ouais donc c'est le moteur physique de GMS...
Ca sert à rien pour toi, n'utilise pas ca mais les fonctions gravity_set_

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
God-of-Jackals
Débutant


Messages : 10

MessageSujet: Re: collision checking   Sam 5 Juil 2014 - 11:34

j'ai essayé de le faire mais ça ne marche pas non plus et maintenant j'ai un autre problème  sad 
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  triste 
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  beh ):

https://www.youtube.com/watch?v=ZrKgimrhX38

par contre je fais comment pour upload mon fichier ?



Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: collision checking   Sam 5 Juil 2014 - 11:54

www.simpleupload.fr par exemple, et ensuite tu mets le lien.

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
God-of-Jackals
Débutant


Messages : 10

MessageSujet: Re: collision checking   Sam 5 Juil 2014 - 12: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  triste2 
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: collision checking   Sam 5 Juil 2014 - 12:09

Comme tu veux. Tu devrais regarder les tutos d'oni, ca te permettra de comprendre comment marche GM.
Et de rien Wink

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
God-of-Jackals
Débutant


Messages : 10

MessageSujet: Re: collision checking   Sam 5 Juil 2014 - 12:22

OK merci pour l'info  happy1 
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: collision checking   

Revenir en haut Aller en bas
 
collision checking
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Dramatique collision entre un roulier et un porte-conteneurs
» Aide au sujet de la collision du ESSO BRUSSELS en 1973
» ESSO BRUSSELS collision
» Collision au large de Zeebruge entre cargo et méthanier
» Collision grave près de Libourne

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: