11 – Godot – Liikumine

Tegelaste allalaadimine

Selles sektsioonis tekitame siis tegelaskuju, kellega saame mängus edasi-tagasi liikuda, hüpata ning loome maastiku, millel see ringi jookseb. Kogu graafika saame loomulikult ise luua, aga selle kursuse raames mitte ning me kasutame allalaadimist. Veebilehti, mis pakuvad tasuta väga head graafikat on päris palju:

Uuri mõnda veebilehte ning leia mõni tegelaskuju, kelle paketis on  ka animatsioonid staatusega idle, run ja jump. Mina valisin pesukaru

godot

Lae alla ja paki lahti.

Sprite kasutamine

Loo uus projekt ja lohista tegelaskuju oma kataloogi.

Loo uus sõlm (Node) nimega KinematicBody2D, mis võimaldab tuvastada objektide kokkupuutumist.

godot

Järgmisena lisame sellele alamsõlme, mille abil saame pilti kuvada – Sprite.

Nüüd kui Sprite on aktiivne, saame Inspector aknas tõsta Texture väljale soovitud pildi. Ja kuna minu valitud pilt on natuke liiga suur, siis muudan selle väiksemaks – Scale x ja y 0.3

godot

Kuna see sõlm sisaldab mitut alamsõlme, siis tahame, et need liiguks alati koos. Selekteeri ülemsõlm ja kliki näidatud nupul “Make sure the object’s children are not selectable.”

godot

Nüüd võid vabalt tegelaskuju platsil ringi liigutada.

Salvesta stseen nimega Player.tscn

Tegelaskuju liigutamine

Tegelaskuju liigutamiseks peame lisama uue skripti. Mängu tulevad mõned uued funktsioonid:

  • Vector2() – klass, mis määrab objekti x ja y asukoha 2D ruumis. Vaikimisi on väärtused nullid (0,0) ja see asub alati üleval vasakus nurgas. Pane tähele, et x-telg jookseb vasakult paremale ja y-telg ülevalt alla.
  • _physics_process(delta) – sisseehitatud funktsioon, mis lubab kasutada objekti füüsikalisi omadusi, ühildades mängu kaadrisageduse (fps) füüsikaga.
  • motion.x – muudab x-koordinaati. Positiivne väärtus liigub paremale, negatiivne vasakule
  • move_and_slide() – paneb objektid mööda etteantud vektorit liikuma, mille koordinaadid tulevad klassist

Hetke loogika on ülesehitatud selliselt, et klahvivajutused muutavad kenasti objekti suunda. Ja kui klahvid lahti lased, siis objekt seiskub. Siin pisike probleem, kui mõlemat klahvi all hoiad, siis on rakendub esimene osa if-lausest. Selle parendamiseks  võiks tingimuslauset parendada, et midagi ei juhtu, kui mõlemat klahvi all hoiad.

Järgmine mure on selles, et kui tegelane tagasi liigub, siis võiks ta ennast ümber pöörata. Selleks tuleb Sprite poole pöörduda ja muuta atribuuti flip_h. Kui klahvid vabastada, siis ise otsustad, kas soovid jätta tegelaskuju samasuunaliseks või mitte.

Viimased postitused

Meist

metshein.com on pakkunud juba üle kümne aasta tasuta eestikeelseid infotehnoloogiaga seotud kursusi. Sama kurssi püütakse järgida ka edaspidi. Eesmärk muuta arvutiõpe võimalikult lihtsaks!

metshein.com: parim eestikeelne koolitusportaal

Autorist ja kontakt: kliki siia

Hetkel õpivad:

There are no users currently online

Kontrolli tunnistust

Tööribale