Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -21%
LEGO® Icons 10329 Les Plantes Miniatures, ...
Voir le deal
39.59 €

 

 [résolu]Dialogues, Strings et Sons non bloquants ("queued")

Aller en bas 
4 participants
AuteurMessage
Pierrec
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
Pierrec


Nombre de messages : 99

Date d'inscription : 16/06/2011


[résolu]Dialogues, Strings et Sons non bloquants ("queued") Empty
MessageSujet: [résolu]Dialogues, Strings et Sons non bloquants ("queued")   [résolu]Dialogues, Strings et Sons non bloquants ("queued") EmptyDim 28 Aoû 2016 - 13:26

Bonjour à tous. Une fois encore je reviens sur ce forum car je suis face à un problème insoluble (pour moi, j'espère qu'il ne l'est pas vraiment hein)

Dans le cadre de mon jeu Ludum Dare, je souhaiterais avoir des dialogues générés aléatoirement (via des strings) ainsi que des sons en tâche de fond, soit non-bloquants, et à la queue (queued en anglais, je ne sais pas comment le traduire en français).

En gros : La scène se déroule durant une séance diapo, et je souhaiterais que l'un des personnages non joueur passe les diapos tout en dispensant des commentaires aléatoires. Je souhaiterais aussi que chaque commentaire/changement de diapo s'accompagne du son de la machine.

La génération aléatoire s'effectuerait avec 3 strings, qui tirent des mots au hasard dans leur liste respective. (je sais je faire avec Say, du genre cEgo.Say("%s, %s, %s", StringA, StringB, StringC");

J'ai essayé de plein de façons diverses, mais il y a toujours quelque chose qui va pas.

Commande Say :
-Ok pour les string
-Ok pour le son (via les speech sounds)
-Mais : Bloquant, impossible de mettre en queue.

Commande SayBackground:
-Non bloquant, mais je ne vois pas comment mettre en queue
-Strings non supportés dirait-on
-Sons? Je n'ai pas essayé en fait.

J'ai ensuite essayé différents modules, et le seul qui semble fonctionner est QueuedSpeech de Monkey http://www.adventuregamestudio.co.uk/wiki/QueuedSpeech

-Ok pour le côté non-bloquant et les commentaires en queue
-Normalement OK pour les sons, mais ça n'a pas l'air de marcher. La fonction est censée s'écrire comme suit:
bool Character.SayQueued(String message, optional AudioClip *speechClip, optional int delay, optional int slot)
J'ai essayé quelque chose comme cEgo.("blabla", aSound); mais ça ne fonctionne pas. je ne comprends pas vraiment à quoi  "optional AudioClip *speechClip" peut correspondre si ce n'est pas le nom de mon audioclip :s
-Les strings là encore ne semblent pas supportés.

L'un d'entre vous aurait-il une meilleure piste?
Revenir en haut Aller en bas
Arlann
Cliqueur Amateur
Cliqueur Amateur
Arlann


Nombre de messages : 286

Date d'inscription : 06/04/2016


[résolu]Dialogues, Strings et Sons non bloquants ("queued") Empty
MessageSujet: Re: [résolu]Dialogues, Strings et Sons non bloquants ("queued")   [résolu]Dialogues, Strings et Sons non bloquants ("queued") EmptyDim 28 Aoû 2016 - 15:31

Une piste pour utiliser plusieurs strings avec la fonction SayBackground:
Code:
String dialogue = stringA ;
dialogue = dialogue.Append(stringB) ;
dialogue = dialogue.Append(stringC) ;

cEgo.SayBackground(dialogue) ;

Tu peux essayer de faire une suite d’évènements non bloquants dans le repeadly de la room en jouant avec un timer:
Code:
if ( IsTimerExpired(1) )  {
    if ( evenement == 0 ) {
    }
    else if ( evenement == 1 ) {
    }
    evenement++;
    SetTimer(1,200) ;
}

Je ne connais pas ce module, je vais l'essayer.
Revenir en haut Aller en bas
Pierrec
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
Pierrec


Nombre de messages : 99

Date d'inscription : 16/06/2011


[résolu]Dialogues, Strings et Sons non bloquants ("queued") Empty
MessageSujet: Re: [résolu]Dialogues, Strings et Sons non bloquants ("queued")   [résolu]Dialogues, Strings et Sons non bloquants ("queued") EmptyDim 28 Aoû 2016 - 15:48

Oh! Je ne connaissais pas le système d'"Appends". Il ya moyen que je m'en sortes avec ça! Je vais bidouiller et je reviens! Merci beaucoup!
Revenir en haut Aller en bas
Pierrec
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
Pierrec


Nombre de messages : 99

Date d'inscription : 16/06/2011


[résolu]Dialogues, Strings et Sons non bloquants ("queued") Empty
MessageSujet: Re: [résolu]Dialogues, Strings et Sons non bloquants ("queued")   [résolu]Dialogues, Strings et Sons non bloquants ("queued") EmptyDim 28 Aoû 2016 - 16:18

Et ça marche! Merci beaucoup! grâce à l'astuce de l'Append j'ai pu faire exactement ce que je voulais, en utilisant le repeadly execute en effet.

Pour les curieux:
-J'ai ajouté SetTimer(1,300); dans Game_Start
-Créé la fonction GenCom (qui génère les commentaires aléatoirement)

Code:
function GenCom()
{  
  //Generateur de commentaire
  
  StrComment="";
  
  int ran1=Random(10);
if (ran1==0)StrCom1="Here's";
if (ran1==1)StrCom1="This is";
if (ran1==2)StrCom1="Haha that's";
if (ran1==3)StrCom1="Here you can see";
if (ran1==4)StrCom1="Ha, this one is priceless, it's";
if (ran1==5)StrCom1="Look:";
if (ran1==6)StrCom1="As you can see, this is";
if (ran1==7)StrCom1="Oh, I forgot about that one. It's";
if (ran1==8)StrCom1="Another one of";
if (ran1==9)StrCom1="That's";
if (ran1==10)StrCom1="Can you guess ? It's";

  int ran2=Random(18);

if (ran2==0)StrCom2=" me";
if (ran2==1)StrCom2=" Salimata";
if (ran2==2)StrCom2=" both of us";
if (ran2==3)StrCom2=" a stranger";
if (ran2==4)StrCom2=" some indian guy";
if (ran2==5)StrCom2=" a crowd";
if (ran2==6)StrCom2=" what's-his-name";
if (ran2==7)StrCom2=" a cow";
if (ran2==8)StrCom2=" our guide";
if (ran2==9)StrCom2=" our taxi driver";
if (ran2==10)StrCom2=" a priest";
if (ran2==11)StrCom2=" a Sikh";
if (ran2==12)StrCom2=" the maharaja";
if (ran2==13)StrCom2=" me again";
if (ran2==14)StrCom2=" Salimata again";
if (ran2==15)StrCom2=" some pretty girl";
if (ran2==16)StrCom2=" a funny looking guy";
if (ran2==17)StrCom2=" a french couple we met";
if (ran2==18)StrCom2=" a bunch of kids";
  
    int ran3=Random(24);
    
if (ran3==0)StrCom3=" riding an elephant.";
if (ran3==1)StrCom3=" hiding the Taj Mahal.";
if (ran3==2)StrCom3=" charming a snake.";
if (ran3==3)StrCom3=" doing nothing.";
if (ran3==4)StrCom3=" standing there.";
if (ran3==5)StrCom3=" swimming in the Gange river.";
if (ran3==6)StrCom3=" being sick.";
if (ran3==7)StrCom3=" in Calcutta.";
if (ran3==8)StrCom3=" in New Delhi.";
if (ran3==9)StrCom3=" in New Delhi...or was is Calcutta ?";
if (ran3==10)StrCom3=" crossing the road.";
if (ran3==11)StrCom3=" worshiping Ganesh.";
if (ran3==12)StrCom3=" taking a picture.";
if (ran3==13)StrCom3=" with a monkey.";
if (ran3==14)StrCom3=" in our hotel room.";
if (ran3==15)StrCom3=" ordering in a restaurant.";
if (ran3==16)StrCom3=".";
if (ran3==17)StrCom3=" at Radhanagar Bay.";
if (ran3==18)StrCom3=" being robbed.";
if (ran3==19)StrCom3=" going batshit.";
if (ran3==20)StrCom3=" in front of a temple.";
if (ran3==21)StrCom3=" lost in the jungle.";
if (ran3==22)StrCom3=" posing.";
if (ran3==23)StrCom3=" crying.";
if (ran3==24)StrCom3=" in a traditional costume.";
  
StrComment = StrComment.Append(StrCom1);
StrComment = StrComment.Append(StrCom2);
StrComment = StrComment.Append(StrCom3);
}

Pui simplement ajoué ceci à repeadly execute:

Code:
       if (IsTimerExpired(1)){
            aClic.Play();
            GenCom();
            cChar.SayBackground(StrComment);
            SetTimer(1,300) ;
        }

Merci beaucoup Arlann, tu m'as fait gagner ENORMEMENT de temps, je vais peut-être pouvoir soumettre mon jeu à temps pour la Ludum Dare! (plus que 8 heures! Hop hop au boulot!)
Revenir en haut Aller en bas
Arlann
Cliqueur Amateur
Cliqueur Amateur
Arlann


Nombre de messages : 286

Date d'inscription : 06/04/2016


[résolu]Dialogues, Strings et Sons non bloquants ("queued") Empty
MessageSujet: Re: [résolu]Dialogues, Strings et Sons non bloquants ("queued")   [résolu]Dialogues, Strings et Sons non bloquants ("queued") EmptyDim 28 Aoû 2016 - 16:40

J'en suis ravi grand sourire
Bon courage pour les prochaines heures de développement.
Je testerai !
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[résolu]Dialogues, Strings et Sons non bloquants ("queued") Empty
MessageSujet: Re: [résolu]Dialogues, Strings et Sons non bloquants ("queued")   [résolu]Dialogues, Strings et Sons non bloquants ("queued") EmptyLun 29 Aoû 2016 - 14:36

Alternativement, tu peux utiliser la fonction String.Format :

Code:
cEgo.SayBackground(String.Format("%s, %s, %s", stringA, stringB, stringC));

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Pierrec
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
Pierrec


Nombre de messages : 99

Date d'inscription : 16/06/2011


[résolu]Dialogues, Strings et Sons non bloquants ("queued") Empty
MessageSujet: Re: [résolu]Dialogues, Strings et Sons non bloquants ("queued")   [résolu]Dialogues, Strings et Sons non bloquants ("queued") EmptyLun 29 Aoû 2016 - 18:43

Et voilà la bête (en anglais par contre, Ludum Dare oblige) : https://pierrec.itch.io/kill-me-now

Merci encore pour votre aide, je n'y serai sans doute pas arrivé à temps par moi-même!
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[résolu]Dialogues, Strings et Sons non bloquants ("queued") Empty
MessageSujet: Re: [résolu]Dialogues, Strings et Sons non bloquants ("queued")   [résolu]Dialogues, Strings et Sons non bloquants ("queued") EmptyLun 29 Aoû 2016 - 19:03

Hourra, un nouveau jeu de Pierrec ! Par contre à moins que ton jeu soit super méta (et m'échappe), ça renvoie une erreur 404 non voulue. Aurais-tu oublié de rendre la page publique ?

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Pierrec
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
Pierrec


Nombre de messages : 99

Date d'inscription : 16/06/2011


[résolu]Dialogues, Strings et Sons non bloquants ("queued") Empty
MessageSujet: Re: [résolu]Dialogues, Strings et Sons non bloquants ("queued")   [résolu]Dialogues, Strings et Sons non bloquants ("queued") EmptyMar 30 Aoû 2016 - 8:30

aie aie oui en effet il y avait un problème. C'est corrigé!
Revenir en haut Aller en bas
Arlann
Cliqueur Amateur
Cliqueur Amateur
Arlann


Nombre de messages : 286

Date d'inscription : 06/04/2016


[résolu]Dialogues, Strings et Sons non bloquants ("queued") Empty
MessageSujet: Re: [résolu]Dialogues, Strings et Sons non bloquants ("queued")   [résolu]Dialogues, Strings et Sons non bloquants ("queued") EmptyMar 30 Aoû 2016 - 10:59

J'aime beaucoup l’interprétation du thème "Ancienne technologie". sourire
L'humour et le style est très sympa, bravo pour la réalisation.

Ps: Tu as utilisé AGS 3.4 ? Tu peux aussi compiler pour linux.
Revenir en haut Aller en bas
Pierrec
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
Pierrec


Nombre de messages : 99

Date d'inscription : 16/06/2011


[résolu]Dialogues, Strings et Sons non bloquants ("queued") Empty
MessageSujet: Re: [résolu]Dialogues, Strings et Sons non bloquants ("queued")   [résolu]Dialogues, Strings et Sons non bloquants ("queued") EmptyMar 30 Aoû 2016 - 11:14

Ha oui? Il ne me le propose pas: https://gyazo.com/b1f9f9b69be266650fd267e66082bee4

(EDIT: J'ai trouvé tout seul merci)
Revenir en haut Aller en bas
Creamy
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Creamy


Nombre de messages : 1266

Date d'inscription : 15/10/2007


[résolu]Dialogues, Strings et Sons non bloquants ("queued") Empty
MessageSujet: Re: [résolu]Dialogues, Strings et Sons non bloquants ("queued")   [résolu]Dialogues, Strings et Sons non bloquants ("queued") EmptyMar 30 Aoû 2016 - 15:45

J'avais bien aimé celui avec les auto-stoppeuses, celui avec la ligue légèrement énervante, celui avec la renarde et tous les autres  sourire

Celui-là aussi est cool. Les dialogues sont tellement bien écrits qu'on dirait du Simon & Garfunkel.
Les puzzles sont plus présents que d'habitude, mais rien d'insurmontable. C'est sympa d'échanger des objets dans le dos de Charles.
Son chat ne s'appellerait-il pas Schrody, par hasard?
Revenir en haut Aller en bas
http://creamy.unblog.fr/
Pierrec
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue
Pierrec


Nombre de messages : 99

Date d'inscription : 16/06/2011


[résolu]Dialogues, Strings et Sons non bloquants ("queued") Empty
MessageSujet: Re: [résolu]Dialogues, Strings et Sons non bloquants ("queued")   [résolu]Dialogues, Strings et Sons non bloquants ("queued") EmptyLun 12 Sep 2016 - 12:48

Merci! (Et oui, il y a de vrais morceaux de Simon & Garfunkel dedans)
Je ne connaissais pas Schrody, je voulais l'essayer mais malheureusement le lien est mort!
Revenir en haut Aller en bas
Contenu sponsorisé





[résolu]Dialogues, Strings et Sons non bloquants ("queued") Empty
MessageSujet: Re: [résolu]Dialogues, Strings et Sons non bloquants ("queued")   [résolu]Dialogues, Strings et Sons non bloquants ("queued") Empty

Revenir en haut Aller en bas
 
[résolu]Dialogues, Strings et Sons non bloquants ("queued")
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Questions / Réponses-
Sauter vers: