AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -29%
PC portable – MEDION 15,6″ FHD Intel i7 ...
Voir le deal
499.99 €

 

 [RESOLU]Jouer un son qu'une seule fois

Aller en bas 
+2
Wargamer
Mray
6 participants
AuteurMessage
Mray
Très bonne participation



Messages : 111

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyLun 12 Sep 2011 - 2:34

Bonjour,

J'ai fais un levier et un trampoline dans mon "jeu" et j'aimerais que quand je saute dessus ( le trampoline ) le son joue qu'une seule fois ( chaque fois qu'il touche le trampoline ), mon problème est que quand je met mon personnage "sous" le trampoline, il fait le son a répétition affolante Uu
Pareil pour le levier, quand je suis en contact avec lui, il fait une imitation de mitraillette Sad
De l'aide, svp Sad


Dernière édition par Mray le Mar 13 Sep 2011 - 20:54, édité 1 fois
Revenir en haut Aller en bas
Wargamer
*Excellent utilisateur*
Wargamer


Messages : 6938
Projet Actuel : Bataille de cake au fruits

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyLun 12 Sep 2011 - 3:17

C'est un problème de collision persistante plutôt qu'un problème de son.
Comme ton perso est en contact avec l'objet il exécute constamment les actions liés.
une façon simple de faire serait avec une variable(je vais dire EnContact pour l'exemple)

EnContact = false // Pas de collision
Si contact ET que EnContact == false
Exécute le son
EnContact = true//Ca permet d'éviter que le son se remet en boucle

Sinon
EnContact = false//Retour à la normal si pas de collision

Il y en sans doute d'autre façon de faire mais j'ai rien d'autre pour l'instant.

_________________
[RESOLU]Jouer un son qu'une seule fois Wargamer3
Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
Mray
Très bonne participation



Messages : 111

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyLun 12 Sep 2011 - 17:14

Comme sur l'autre topic... je sais pas vraiment utiliser les variables, tu pourrais me faire un screen de ce que ça donnerait dans l'objet du perso ?
Si ça te dérange pas :/
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyLun 12 Sep 2011 - 17:21

C'est pas compliqué. Créer une variable c'est dire : je veux tel valeur pour tel mot.

Tu veux créer une variable ? Bah tu fait

monSuperMot = valeur

par ex:
vie = 5
munitions = 40
armure = 12

on déclare une variable dans create, au moins elle prend la valeur qu'on veux et ensuite on peut les utiliser.

Par exemple j'ai la variable armure a 12 dans mon create.
Bah maintenant ce que je peut faire, c'est dans un event de collision avec un ennemi lui enlever 1.

armure -= 1

et dans ton event step tu peut vérifier l'etat de ton armure, et si elle atteint 0 tu fait quelque chose

if(armure<=0)
show_message("bouhouhouhou")

Y a pas grand chose a dire de plus sur les variables. C'est la base d'un jeu et si tu sais pas les utiliser t'apprend.
Sinon tu passe a autre chose... (qu'essayer de faire un jeu)

_________________
[RESOLU]Jouer un son qu'une seule fois Runningpotato1[RESOLU]Jouer un son qu'une seule fois TvF6GED [RESOLU]Jouer un son qu'une seule fois MdetltS
Revenir en haut Aller en bas
Mray
Très bonne participation



Messages : 111

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyLun 12 Sep 2011 - 17:36

onilink_ a écrit:
C'est pas compliqué. Créer une variable c'est dire : je veux tel valeur pour tel mot.

Tu veux créer une variable ? Bah tu fait

monSuperMot = valeur

par ex:
vie = 5
munitions = 40
armure = 12

on déclare une variable dans create, au moins elle prend la valeur qu'on veux et ensuite on peut les utiliser.

Par exemple j'ai la variable armure a 12 dans mon create.
Bah maintenant ce que je peut faire, c'est dans un event de collision avec un ennemi lui enlever 1.

armure -= 1

et dans ton event step tu peut vérifier l'etat de ton armure, et si elle atteint 0 tu fait quelque chose

if(armure<=0)
show_message("bouhouhouhou")

Y a pas grand chose a dire de plus sur les variables. C'est la base d'un jeu et si tu sais pas les utiliser t'apprend.
Sinon tu passe a autre chose... (qu'essayer de faire un jeu)

Ce que je n'ai pas compris dans le post de Wargamer, s'est, le fait qu'il parle de

EnContact = false // Pas de collision
Si contact ET que EnContact == false
Exécute le son
EnContact = true//Ca permet d'éviter que le son se remet en boucle

Sinon
EnContact = false//Retour à la normal si pas de collision

Le "EnContact = false // Pas de collision", encontact = false, le false correspond à 0 dans le set variable ?
Puis le set variable je le met dans un event collision avec le levier ?
Je suis débutant avec les variables, m'en veut pas trop onilink... Sad
Revenir en haut Aller en bas
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyLun 12 Sep 2011 - 18:13

En gros c'est simple, ton code step est exécuté en boucle par ton jeu, de l'ordre de 30/60 fois par seconde (normalement 30, ça dépend de ta room_speed)

Bon, maintenant admettons que t'aies un objet qui soit en collision avec un autre, et dans ce cas tu tapperais un truc du style :

if (objet_en_collision==true)
{
play_sound(lesonblablabla);
}


Ce qui signifie que tant que ton objet est en collision, tu vas jouer le son, étant donné que le code est exécuté 30x par seconds, bah tu te retrouves à jouer 30fois le son en une seconde.

Pour éviter ça, tu fais ça : (remplace "objet_en_collision==true par ta fonction pour les collisions, comme place_meeting & compagnie)

(dans le create)
collision=false;

(dans le step)

if (objet_en_collision==true and collision==false)
{
play_sound(lesonblablabla);
collision=true;
}

if (object_en_collision==false)
{
collision=false;
}

Du coups, pour jouer le son il faut que ta variable collision soit fausse, une fois le son joué tu la passe à true, ce qui fait que le son n'est pas répété.
Enfin, tu la remet à false lorsqu'il n'y a plus de collision, sinon ton son ne serait joué qu'une seule fois dans tout le jeu Very Happy)

_________________
Because these are not the words of God, the same God that burnt the knowing.
Revenir en haut Aller en bas
Mray
Très bonne participation



Messages : 111

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyLun 12 Sep 2011 - 18:32

Je suis vraiment une... une *****, je c/c ton code termite en essayant de le comprendre, en gros, dans le create, ça définis le collision en false, ok.
Après dans le step, si l'objet en collision et que collision = false, alors ça joue le son et ça passe le collision en true, pour éviter le répètement, le reste du code, si l'objet de collision n'ets pas en collision alors, collision = false, c'ets a peu près ça ?

Quand je fais ça j'ai un message d'erreur >>>


___________________________________________
FATAL ERROR in
action number 1
of Step Event
for object levier:

COMPILATION ERROR in code action
Error in code at line 3:
play_sound(levier_crick);
^
at position 2: Unknown function or script: play_sound


Je crois que c'est vraiment tout con mais je comprends vraiment pas, j'ai changé le lesonblablabla en levier_crick ( qui est le sound ) mais c'est toujours la même Sad
Revenir en haut Aller en bas
Linky439
Utilisateur confirmé: Rang *****
Linky439


Messages : 2643
Localisation : Sur le forum du CBNA...ou pas
Projet Actuel : La Galaxie Scellée

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyLun 12 Sep 2011 - 18:36

C'est pas "sound_play" ?

_________________
Cliquez pour accéder aux topics dédiés !
[RESOLU]Jouer un son qu'une seule fois I4AWwEs    [RESOLU]Jouer un son qu'une seule fois CaVn0FN
Revenir en haut Aller en bas
Mray
Très bonne participation



Messages : 111

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyLun 12 Sep 2011 - 18:46

Effectivement c'est sound_play Smile
Mais avec ceci >>>

if (levier==true and collision==false)
{
sound_play(levier_crick);
collision=true;
}

if (levier==false)
{
collision=false;
}


Je n'ai aucun son qui se joue Surprised
Revenir en haut Aller en bas
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyLun 12 Sep 2011 - 18:54

Ouais, l'habitude de mon moteur pour le play_sound rire

Sinon, quand est-ce que tu passes levier à true ?

_________________
Because these are not the words of God, the same God that burnt the knowing.
Revenir en haut Aller en bas
Mray
Très bonne participation



Messages : 111

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyLun 12 Sep 2011 - 19:04

Euh j'ai pas compris la question :/
Revenir en haut Aller en bas
Wargamer
*Excellent utilisateur*
Wargamer


Messages : 6938
Projet Actuel : Bataille de cake au fruits

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyLun 12 Sep 2011 - 19:46

Je crois que le mieux dans ton cas serait d'aller faire un tour sur les ateliers d'onilink
https://cbna.forumactif.com/t11209-atelier-gml-1-fonctions-et-variables

Et il voulait dire, dans ton code tu as if (levier == true
c'est quand que tu met levier à true dans ton code?
Tu met collision à true ou false après, normal, mais levier ne change jamais de valeur par contre

_________________
[RESOLU]Jouer un son qu'une seule fois Wargamer3
Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
Mray
Très bonne participation



Messages : 111

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyLun 12 Sep 2011 - 20:33

Euh effectivement j'ai jamais mis levier à true, je pourrais le placer ou ?

Edit: chaque fois que je place un levier=true; ça plante Sad
Revenir en haut Aller en bas
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyLun 12 Sep 2011 - 23:10

Rooh, mais par exemple, dans le step (en reprenant ton code) :

if (place_meeting(x,y,l'objet que tu veux))
levier=true;
else
levier=false;

(sinon tu peux faire levier = place_meeting(x,y,l'objet que tu veux));

if (levier==true and collision==false)
{
sound_play(levier_crick);
collision=true;
}

if (levier==false)
{
collision=false;
}

Sans oublier dans le create

levier=false;
collision=false;

Voilà

_________________
Because these are not the words of God, the same God that burnt the knowing.
Revenir en haut Aller en bas
Mray
Très bonne participation



Messages : 111

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyMar 13 Sep 2011 - 17:26

Bon j'abandonne l'idée du levier, le simple fait de mettre levier=false ça me fait planter le jeu, merci de m'avoir aidé, et désoler de vous avoir fais perdre votre temps :/
Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
marty


Messages : 697
Projet Actuel : laby-ereinte !

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyMar 13 Sep 2011 - 19:38

ce qu'il faut comprendre surtout c'est que tant que l'objet est en collision le programme répète inlassablement l'action!
il faut donc créer une variable qui "surclasse" l'event collision ,ou déplacer le perso pour qu'il ne soit plus en collision.
une autre solutions consiste a créer une variable qui temporise l'event collision.

c'est a dire:
dans event collision tu met:
si variable time=0
{
time = 1 //annule les répétitions car time n'est plus égale à 0
joue un son
fait ce que tu veux
}

puis dans un second temps tu décide quand tu veux remettre ta variable time à 0 avec un event alarm happy1






Revenir en haut Aller en bas
Mray
Très bonne participation



Messages : 111

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyMar 13 Sep 2011 - 20:51

OMAGAD JE VIENS DE REUSSIR !!! awesome

Je suis content, car, cette fois ci, j'ai vraiment réalisé tout le code ( ouais bon c'est pas beaucoup mais ça m'a pris quand même 1 heure avant de réussir :p ) et il marche !!
Je remercie tout ceux qui m'ont aidé, voici ce que j'ai fait >>>
-J'ai crée un autre objet du nom de contour
-J'ai crée mon levier

-J'ai crée mes objets contour et objets

-J'ai mis mon levier, et tout autour j'ai mis l'objet contour ( contour est invisible et n'est pas solide )

J'ai fais ce code >>>

Dans contour >>>
Dans Create >>>

Code:
collision=false;
levier1=true;

Dans Collison avec le Player >>>

Code:
if (collision=true)
{
levier1=false
}
else
{
levier1=true
}

Dans mon objet levier >>>
Dans Create >>>
Set variable levier1 to 1

Dans Collision avec le Player >>>

Code:
if (levier1==true)
{
sound_play(levier_crick);
levier1=false;
collision=true
}


Et voilà ça marche ! Very Happy
Ça pourra peut-être aidé des nouveaux qui veulent faire la même chose Smile
suffisait juste que j'ai l'esprit logique que j'ai pas eu au début roll2
Revenir en haut Aller en bas
Mray
Très bonne participation



Messages : 111

[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois EmptyMar 13 Sep 2011 - 20:58

Enfaite je viens de me rendre compte que l'objet contour sert strictement a rien, j'ai cherché trop compliqué... ouh
Pas besoin de le faire rouge
Revenir en haut Aller en bas
Contenu sponsorisé





[RESOLU]Jouer un son qu'une seule fois Empty
MessageSujet: Re: [RESOLU]Jouer un son qu'une seule fois   [RESOLU]Jouer un son qu'une seule fois Empty

Revenir en haut Aller en bas
 
[RESOLU]Jouer un son qu'une seule fois
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [RESOLU]Savoir si un fichier est en lecture seule
» [Résolu] Son joué plusieurs fois
» [Résolu] Seulement 2 fois tout les 50 points...
» [resolu] importer plusieurs modèles à la fois
» [Résolu] Faut il installer GM pour jouer?

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: