Taaskord jätkame mänguga Pairs:
- Avada GDevelop
- Valida Open a Project
- Vaikimisi peaks avanema kataloog (nt C:\Users\Kasutajanimi\GDevelop projects\My Projects\), kuhu eelmisel korral sai mäng salvestatud ja sealt tuleb avada Pairs.json fail
Seekord vaatleme kõnesimulatsiooni.
Esmalt siis teeme selleks ettevalmistavad tegevused:
- lisame kõigepealt uue välise sündmuse:
- aktiveerida Project Manager menüü (ikoon akna vasakul üleval nurgas, menüü File Edit jne all)
- External events -> Click to add external event
- stseeni ümbernimetamiseks
- hiire parema klahviga viimati lisatud välise sündmuse (NewExternalEvents) peale vajutada
- avanevast menüüst valida Rename
- sisestada uus nimetus (nt panin mina stseenile nimeks Kone)
- vajutada Enter
- liikuda lisatud välisele sündmusele, vajutades välise sündmuse nimele
- avaneval lehel lisada uus sündmus (sest muidu ei saa me lisada meie poolt soovitud koodi)
- seejärel vajutada lehe ülemises vasakus servas olevale suurele + märgile (Choose and add an event)
- avanevast menüüst valida Javascript code
- tekkivasse aknasse tuleb kopeerida järgmine kood (selgitused on lisatud // märkide järele):
-
//stseeni muutuja väärtuse lugemine
var variables = runtimeScene.getVariables();
var sonum = variables.get("tekst").getAsString();
//funktsiooni 'speak' poole pöördumine, sisendiks on muutuja 'sonum'
speak(sonum);
// funktsioon 'speak', muutuja 'sonum' uueks nimeks saab 'text', mida kasutatakse funktsiooni piires
function speak(text, callback) {
var u =newSpeechSynthesisUtterance();//kõnesimulaator
u.text = text; //etteloetav tekst
u.lang = 'en-US'; //keel, milles tekst ette loetakse
u.onend = function () { //kui jutt otsa saab
if(callback){
callback();
}
};
u.onerror = function (e) { //kui tekib viga
if(callback){
callback(e);
}
};
speechSynthesis.speak(u); //teksti ettelugemine
}
-
- järgmisena lisame stseeni muutuja, nt mina võtan oma algusstseeni, mille nimi on Algus:
- valida leht Algus
- hiire parema klahviga vajutada mängualale
- avanevast loetelust valida Scene properties
- avanevast aknast valida Edit scene variables
- + märgist lisada uus muutuja
- nimetada muutuja ümber – vaikimisi väärtus, veerus Name, on Variable (mina nt panin muutujale nimeks tekst – NB! ületoodud koodis on kasutusel just selline nimetus –
var sonum = variables.get("tekst").getAsString();
) - pärast muudatuste tegemist vajutada Apply
- nüüd on aeg liikuda edasi teksti ettelugemise juurde (mina kasutan nt aktiveerimiseks Tab klahvi):
- valida leht Algus (Events)
- lisada uus sündmus, et lisatud Javascripti kood aktiveeruks, kui- Add a new empty event
- Add Condition
- Keyboard -> Key pressed (Text expression)
- Expression generating the key to test reale kirjutada (koos jutumärkidega) “Tab”
- OK
- Add Condition
- Advanced -> Trigger once while true
- OK
- Add Action
- Variables -> String of a scene variable
- realt Variable valida muutuja, minul siis tekst
- Modification’s sign nimekirjast = (set to)
- Value realt Σ “abc”
- Text Entry Object -> Text entered with keyboard -> Text entered with keyboard
- Avanevast aknast Object nimekirjast teksti sisestamise kast (minul siis Nimi)
- Apply
- Text Entry Object -> Text entered with keyboard -> Text entered with keyboard
- Value reale tekkis tekst Nimi.String() – sellega siis kuvatakse sisestatud tekst (eelmisel korral loodud teksti sisestamine)
- OK
- Variables -> String of a scene variable
- vajutada olemasolevale sündmusele alamsündmus (vajutada kasti, kuhu tekkis 2 sündmust – (“Tab” key is pressed ja Trigger once), hallil alal hiire parema klahviga)
- avanevast menüüst valida Add Sub Event
- tekkinud alamsündmuse kasti vajutada hallil alal hiire parema klahviga
- avanevast menüüst valida Add Other -> Link
- tekkinud sündmuse real Include events from vajutada <Enter the name of external events> valida väline sündmus – minul on selle nimeks nt Kone
- avanevast menüüst valida Add Other -> Link
- Add Condition
Nüüd on võimalik kõnesimulatsiooni testida, käivitades stseeni Algus, sisestades teksti ja vajutades Tab klahvi.
Seekordseks ülesanneteks on:
- lisada kõnesimulatsioon ka mängu põhistseeni sissejuhatusele, pöördudes mängija poole tema sisestatud nimega
- vihje nr 1: tuleb lisada stseeni muutuja, mille nimi on sama, mis eelnevalt kasutatud
- vihje nr 2: saab kasutada sedasama välist sündmust Kone
- vihje nr 3: mängija nime jaoks kasutasime globaalset muutujat mangija
- vihje nr 4: teksti saab lisada kasutades jutumärke ja + märke
Kui kõik vajalik on tehtud, siis tuleb muudatused ka salvestada: File -> Save
Selle korra nuputamisülesandeks on liugpusle.