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 vaatame rekordi üle arvestuse pidamist, seda siis sel moel, et isegi, kui mäng vahepeal katkestatakse, oleksid rekord ikka alles. Selleks kasutame eraldi faili, mille salvestame arvuti kõvakettale.
Kõigepealt siis ettevalmistavad tegevused:
- lisada tekstikasti, kus senine rekord kuvatakse:
- lisada uus tekstikast
- Objects -> Add a new object -> Text
- teha vajalikud muutused ja nimetada tekstikast ümber (mina nt panin tekstikastile nimeks Seninerekord)
- paigutada tekstikast mängualale soovitud kohta
- muutujat stseeni sees, et pidada arvestust rekordi üle:
- lisada uus tekstikast
- esmalt tuleb muutuja luua ja anda sellele algväärtus:
- 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 rekordid)
- algväärtuseks määrata 100 – vaikimisi väärtus, veerus Value, esialgu puudub
- pärast muudatuste tegemist vajutada Apply
Ja nüüd siis tuleb asuda just loodud objekte ja muutujaid kasutama:
- stseeni alguses kontrollida, kas fail, milles rekordiinfot hoitakse, on olemas:
- Prepage the board -> At the beginning of the Scene kastis mitteaktiivsele alale hiire parema klahviga vajutada
- avanevast menüüst valida Add sub event
- Add condition
- Filesystem -> Windows, Linux, MacOS -> File or directory exists
- Path to file or directory realt Σ “abc”
- Filesystem -> Windows, Linux, MacOS -> Document Folders -> Apply
- tekib tekst FileSystem::DocumentsPath()
- lisada sellele tekstile + märk
- Path to file or directory realt uuesti Σ “abc”
- Filesystem -> Windows, Linux, MacOS -> Path delimiter -> Apply
- lisandub tekst FileSystem::PathDelimiter()
- lisada sellele tekstile + märk ja seejärel “tulemus.txt”
- kogu tulemus peab olema selline:
- FileSystem::DocumentsPath() + FileSystem::PathDelimiter() + “tulemus.txt”
- OK
- Filesystem -> Windows, Linux, MacOS -> File or directory exists
- Add action
- Filesystem -> Windows, Linux, MacOS -> Load a text from a file
- Scene variable reale valida eelnevat tekitatud muutuja (minul siis rekordid)
- Load path realt Σ “abc”
- Filesystem -> Windows, Linux, MacOS -> Document Folders -> Apply
- tekib tekst FileSystem::DocumentsPath()
- lisada sellele tekstile + märk
- Load path realt uuesti Σ “abc”
- Filesystem -> Windows, Linux, MacOS -> Path delimiter -> Apply
- lisandub tekst FileSystem::PathDelimiter()
- lisada sellele tekstile + märk ja seejärel “tulemus.txt”
- kogu tulemus peab olema selline:
- FileSystem::DocumentsPath() + FileSystem::PathDelimiter() + “tulemus.txt”
- OK
- Filesystem -> Windows, Linux, MacOS -> Load a text from a file
- Add action
- Text object -> Modify the text
- Object nimekirjast valida soovitud tekstikast (minul siis Seninerekord)
- Modification’s sign nimekirjast = (set to)
- Value reale:
- kirjutada nr “Senine rekord on “
- lisada + märk
- Value realt Σ “abc”
- Variables -> Text of a scene variable
- Variable nimekirjast muutuja (minul siis rekordid)
- Apply
- Value reale lisandus tekst VariableString(rekordid)
- tulemus peab olema selline:
- “Senine rekord on ” + VariableString(rekordid)
- OK
- Prepage the board -> At the beginning of the Scene kastis mitteaktiivsele alale hiire parema klahviga vajutada
- kui eelmise rekordi infoga faili ei ole, siis tuleb teostada sellekohane kontroll:
- Prepage the board -> At the beginning of the Scene kastis mitteaktiivsele alale hiire parema klahviga vajutada
- avanevast menüüst valida Add sub event
- Add condition
- Filesystem -> Windows, Linux, MacOS -> File or directory exists
- Path to file or directory realt Σ “abc”
- Filesystem -> Windows, Linux, MacOS -> Document Folders -> Apply
- tekib tekst FileSystem::DocumentsPath()
- lisada sellele tekstile + märk
- Path to file or directory realt uuesti Σ “abc”
- Filesystem -> Windows, Linux, MacOS -> Path delimiter -> Apply
- lisandub tekst FileSystem::PathDelimiter()
- lisada sellele tekstile + märk ja seejärel “tulemus.txt”
- kogu tulemus peab olema selline:
- FileSystem::DocumentsPath() + FileSystem::PathDelimiter() + “tulemus.txt”
- Invert condition tuleb muuta aktiivseks (see tähendab, et kontrollitakse, kas faili ei ole)
- OK
- Filesystem -> Windows, Linux, MacOS -> File or directory exists
- Add action
- Text object -> Modify the text
- Object nimekirjast valida soovitud tekstikast (minul siis Seninerekord)
- Modification’s sign nimekirjast = (set to)
- Value reale:
- kirjutada nr “Senine rekord on puudub!”
- OK
- Prepage the board -> At the beginning of the Scene kastis mitteaktiivsele alale hiire parema klahviga vajutada
- kui mäng on läbi ja tulemus oli parem kui senine rekord, siis salvestada uus rekord faili:
- Check if game is won esimese tingimuse kasti hallile alale hiire parema klahviga vajutada
- avanevast menüüst valida Add sub event
- Add condition
- Variables -> Value of scene variable
- Variable realt valida stseeni muutuja, millega peame arvestust mängu rekordi üle (minul siis rekordid)
- Modification’s sign nimekirjast > (greater than)
- Value to compare realt Σ “abc”
- Variables -> Value of a scene variable
- Variable nimekirjast muutuja (minul siis katseid)
- Apply
- OK
- Add action
- Variables -> Value of scene variable
- Variable realt valida globaalne muutuja, millega peame arvestust mängu rekordi üle (minul siis rekordid)
- Modification’s sign nimekirjast = (set to)
- Value realt Σ “abc”
- Variables -> Value of a scene variable
- Variable nimekirjast muutuja (minul siis katseid)
- Apply
- OK
- Add action
- Filesystem -> Windows, Linux, MacOS -> Save a text into a file
- String (text) realt Σ “abc”
- Variable -> Text of a scene variable
- Variable nimekirjast valida sobiv muutuja (minul siin rekordid)
- Apply
- Save path realt Σ “abc”
- Filesystem -> Windows, Linux, MacOS -> Document Folders -> Apply
- tekib tekst FileSystem::DocumentsPath()
- lisada sellele tekstile + märk
- Save path realt uuesti Σ “abc”
- Filesystem -> Windows, Linux, MacOS -> Path delimiter -> Apply
- lisandub tekst FileSystem::PathDelimiter()
- lisada sellele tekstile + märk ja seejärel “tulemus.txt”
- kogu tulemus peab olema selline:
- FileSystem::DocumentsPath() + FileSystem::PathDelimiter() + “tulemus.txt”
- OK
- Filesystem -> Windows, Linux, MacOS -> Save a text into a file
- Check if game is won esimese tingimuse kasti hallile alale hiire parema klahviga vajutada
Seekordseks ülesandeks on tekitada arvepidamine selle kohta, mitu korda on mäng lõpetatud 17 katsega (st täpselt 17 katset peab tehtud olema) ja salvestada see info faili:
- vihje nr 1: tuleb luua muutuja, mis peab arvestust 17 katsega kordade üle
- vihje nr 2: loodud muutuja algväärtus on 0
- vihje nr 3: tekitada tuleb eraldi fail, kuhu muutuja väärtus kirjutatakse
- vihje nr 4: mängu alguses tuleb kontrollida, kas fail on olemas
Kui kõik vajalik on tehtud, siis tuleb muudatused ka salvestada: File -> Save
Ja lõpetuseks väike ristsõna (Across tähendab paremale ja Down alla):