ebSkola

2.1 Pirmais kustīgais objekts

Stundas uzdevums: Izveido Godot projektu, palaid kustīgu taisnstūri un maini tā ātrumu Inspector panelī.

SR 2.4.14. Vadības struktūras SR 2.4.15. Modulāras programmas

80 min plāns: Ievads (~10 min) · 1. uzdevums (~20 min) · 2. uzdevums (~25 min) · 3. uzdevums (~20 min) · saglabāšana (~5 min).

Pirms sāc: vajadzīga 1. tēmā sagatavotā Godot 4 .NET vide un .NET SDK. Izveidosim jaunu Platformer projektu, kuru turpināsim visas sešas stundas. Ja C# failu nevar izveidot vai Build rāda kļūdu, atgriezies C# vides sagatavošanā.

Pēc izmaiņām: saglabā failus. Ja mainīji C# kodu, Godot augšējā labajā stūrī nospied Build (āmura ikona). Tad palaid spēli. Pirms nākamā uzdevuma izlabo pirmo parādīto kļūdu.

Ko veidosim

Šodien izveidosi kustīgu taisnstūri. Nākamajās stundās pievienosi vadību, punktus, platformas un lēcienu. Beigās būs viena spēle ar finišu, tavu nosaukumu un stāstu.

Visās sešās stundās turpini vienu projektu — Platformer.

Kur skatīties Godot logā

Norādījumos lietoti Godot angļu izvēļņu nosaukumi. Sākumā atrodi šīs vietas:

Ko redziKo tur darīsi
Scene, pa kreisi augšāIzvēlies spēles objektu. Ar + (Add Child Node) pievieno tam jaunu daļu.
FileSystem, pa kreisi apakšāAtrodi projekta failus. Ar dubultklikšķi atver saglabātu scēnu vai C# failu.
2D, augšā vidūApskati un izvieto spēles objektus.
Inspector, pa labiMaini Scene panelī izvēlētā objekta vietu, izmēru, krāsu un ātrumu.
Output, apakšāIzlasi ziņas, kuras kods izvada ar GD.Print.
Palaišanas pogas, augšā pa labiRun Current Scene (F6) palaiž atvērto scēnu. Run Project (F5) palaiž spēli. Stop (F8) to aptur.

Divi nosaukumi, ko lieto Godot: objekts Scene sarakstā ir mezgls. Saglabāts objektu kopums ir scēna — fails ar galotni .tscn. Saraksta augšējo objektu sauc par sakni; zem tā ar atkāpi atrodas tam pievienotās daļas.

Position (80, 360) nozīmē: Inspector sadaļā Transform → Position laukā x ieraksti 80, laukā y — 360. Ja lauku neatrodi, izmanto Inspector meklēšanu un pēc tam notīri meklēto tekstu.

Godot pamācība ar paneļu un pogu attēliem.

1. uzdevums -

Izveido projektu un redzamu kustīgu objektu

  1. Godot sākuma logā (Project Manager) spied Create. Nosauc projektu Platformer, izvēlies tā mapi un Compatibility, tad Create & Edit.
  2. FileSystem panelī ar labo peles pogu klikšķini uz res:// → Create New → Folder. Izveido mapi Scenes, pēc tam tāpat izveido Scripts.
  3. Augšējā izvēlnē atver Project → Project Settings → Display → Window. Sadaļā Size iestati Viewport Width = 1280 un Viewport Height = 720. Sadaļā Stretch laukā Mode izvēlies canvas_items. Aizver iestatījumus.
  4. Scene panelī spied 2D Scene. Atlasi izveidoto Node2D, nospied F2 un pārdēvē to par MovementLab. Ar Ctrl+S saglabā to mapē Scenes kā MovementLab.tscn.
  5. Atlasi MovementLab, spied +, meklē Node2D un spied Create. Ar F2 nosauc to Mover. Inspector sadaļā Transform → Position ievadi (80,360).
  6. Atlasi Mover un ar + pievieno Polygon2D. Nosauc to Visual. Inspector atver Data → Polygon, izvērs punktu sarakstu un iestati Size = 4. Četrās rindās secīgi ievadi (-16,-24), (16,-24), (16,24), (-16,24). Pie Color izvēlies gaišu krāsu. 2D skatā parādās taisnstūris.
  7. Ar labo peles pogu klikšķini uz Mover → Attach Script. Izvēlies Language: C#, laukā Path ieraksti res://Scripts/Mover.cs un spied Create. Atver failu savā C# redaktorā un aizstāj tā saturu ar pilno kodu zemāk.
  8. Saglabā kodu un scēnu. Godot nospied Build, tad Run Current Scene (F6). Taisnstūris kustas pa labi un pēc tam atgriežas sākumā. Ar Stop (F8) apturi spēli.
2.1 Mover.cs — pilns fails salīdzināšanai

Lejupielādēt Mover.cs. Atver esošo tāda paša nosaukuma failu un aizstāj tā saturu ar šo kodu.

using Godot;

public partial class Mover : Node2D
{
    [Export] public float Speed = 200.0f;

    public override void _PhysicsProcess(double delta)
    {
        Position += new Vector2(Speed, 0) * (float)delta;
        if (Position.X > 1200)
            Position = new Vector2(80, Position.Y);
    }
}

Gatavs, kad: objekts ir redzams un atkārtoti šķērso ekrānu.

2. uzdevums -

Apskati koda ziņas Output panelī

  1. FileSystem → Scripts atver Mover.cs. Pirms faila pēdējās } pievieno zemāk doto _Process daļu. Tā izvadīs ziņu, bet nekustinās taisnstūri.
  2. Esošajā _PhysicsProcess uzreiz aiz atverošās { uz laiku ievieto GD.Print($"Physics: {delta:F4}");.
  3. Saglabā, nospied Build, tad F6. Pēc 1–2 sekundēm nospied F8 un apakšā atver Output. Atrodi rindas, kas sākas ar Process un Physics.
  4. _Process darbojas, kad spēle atjauno attēlu. _PhysicsProcess izmantojam kustībai un sadursmēm. Skaitlis delta rāda, cik sekundes ilgst viens solis. Abu izdruku skaitļi var būt līdzīgi.
  5. Saglabā Output ekrānuzņēmumu. Tad izdzēs pievienoto _Process daļu un GD.Print rindu no kustības koda. Saglabā un nospied Build.
public override void _Process(double delta)
{
    GD.Print($"Process: {delta:F4}");
}

Gatavs, kad: Output panelī esi atradis abas ziņas un pēc pārbaudes tās noņēmis no koda.

3. uzdevums -

Maini ātrumu un salīdzini kustību

  1. Scene panelī atlasi Mover. Inspector laukā Speed ieraksti 100, palaid ar F6 un apskati kustību. Apturi, izmēģini 400, tad atjauno 200.
  2. Atver Project → Project Settings, ieslēdz Advanced Settings un atver Physics → Common. Lauku Physics Ticks per Second nomaini no 60 uz 30. Tas nosaka, cik reižu sekundē Godot izpilda kustības kodu. Palaid scēnu: taisnstūrim ekrāns jāšķērso aptuveni tikpat ilgā laikā.
  3. Apturi spēli. Kustības rindā uz laiku izdzēs * (float)delta. Saglabā, nospied Build un palaid scēnu. Taisnstūris pārvietojas daudz ātrāk, jo tagad katrā solī pārlec par 200 pikseļiem.
  4. Atjauno * (float)delta, Speed = 200 un Physics Ticks per Second = 60. Saglabā, nospied Build un pārbaudi kustību vēlreiz.
  5. README.md ieraksti, kas notika, mainot Speed, un kas notika bez delta. Pietiek ar diviem īsiem teikumiem: delta palīdz saglabāt kustības ātrumu arī tad, ja kustības kodu izpilda retāk.

Gatavs, kad: eksperiments pabeigts, kodā atkal ir delta un projektā atjaunoti 60 fizikas soļi sekundē.

Papildu uzdevums — izvēlies sava varoņa krāsu

Scene panelī atlasi Visual un Inspector laukā Color izvēlies sava varoņa krāsu. README.md uzraksti, kas būs tavs varonis un ko viņš vēlas sasniegt. Šo ideju turpināsi 6. stundā.

Ko sagatavo

Stundas mērķis: taisnstūris kustas, un tu proti mainīt tā ātrumu Inspector panelī.

GitHub krātuvē jābūt:

  1. MovementLab.tscn un Mover.cs.
  2. Output ekrānuzņēmums un README.md: divi novērojumi par kustību un viens teikums par spēles ideju.

Saglabā visu projektu: project.godot, .csproj, scēnas, skriptus un izmantotos attēlus. .gitignore ieraksti .godot/, bin/ un obj/ katru savā rindā.

Kā iesniedz: saglabā izmaiņas Git un nosūti tās uz GitHub tāpat kā 1. tēmā (commit un push). Skolotāja norādītajā vietā iesniedz GitHub krātuves saiti; README.md un pārbaudes pierādījumiem jābūt krātuvē.

Ja kaut kas nestrādā

PazīmeKo pārbaudīt
Ekrāns tukšsAtver MovementLab cilni. Scene panelī izvēlies Visual: Inspector pārbaudi Polygon četrus punktus un Color. Izvēlies Mover un pārbaudi Position (80,360). Palaid ar F6.
C# nevar pievienotAtver .NET redaktoru; pārbaudi SDK un to, ka klase ir partial, ar tādu pašu nosaukumu kā fails.
Ātrums pēc eksperimenta ir milzīgsAtjauno * (float)delta.