2.1 Pirmais kustīgais objekts
Stundas uzdevums: Izveido Godot projektu, palaid kustīgu taisnstūri un maini tā ātrumu Inspector panelī.
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 redzi | Ko 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 labi | Maini 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 labi | Run 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.
1. uzdevums -
Izveido projektu un redzamu kustīgu objektu
- Godot sākuma logā (Project Manager) spied Create. Nosauc projektu
Platformer, izvēlies tā mapi un Compatibility, tad Create & Edit. - FileSystem panelī ar labo peles pogu klikšķini uz
res://→ Create New → Folder. Izveido mapiScenes, pēc tam tāpat izveidoScripts. - Augšējā izvēlnē atver Project → Project Settings → Display → Window. Sadaļā Size iestati Viewport Width =
1280un Viewport Height =720. Sadaļā Stretch laukā Mode izvēliescanvas_items. Aizver iestatījumus. - Scene panelī spied 2D Scene. Atlasi izveidoto
Node2D, nospied F2 un pārdēvē to parMovementLab. Ar Ctrl+S saglabā to mapēSceneskāMovementLab.tscn. - Atlasi
MovementLab, spied +, meklēNode2Dun spied Create. Ar F2 nosauc toMover. Inspector sadaļā Transform → Position ievadi(80,360). - Atlasi
Moverun ar + pievienoPolygon2D. Nosauc toVisual. 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. - Ar labo peles pogu klikšķini uz
Mover→ Attach Script. Izvēlies Language: C#, laukā Path ierakstires://Scripts/Mover.csun spied Create. Atver failu savā C# redaktorā un aizstāj tā saturu ar pilno kodu zemāk. - 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ī
- FileSystem → Scripts atver
Mover.cs. Pirms faila pēdējās}pievieno zemāk doto_Processdaļu. Tā izvadīs ziņu, bet nekustinās taisnstūri. - Esošajā
_PhysicsProcessuzreiz aiz atverošās{uz laiku ievietoGD.Print($"Physics: {delta:F4}");. - Saglabā, nospied Build, tad F6. Pēc 1–2 sekundēm nospied F8 un apakšā atver Output. Atrodi rindas, kas sākas ar
ProcessunPhysics. _Processdarbojas, kad spēle atjauno attēlu._PhysicsProcessizmantojam kustībai un sadursmēm. Skaitlisdeltarāda, cik sekundes ilgst viens solis. Abu izdruku skaitļi var būt līdzīgi.- Saglabā Output ekrānuzņēmumu. Tad izdzēs pievienoto
_Processdaļu unGD.Printrindu 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
- Scene panelī atlasi
Mover. Inspector laukā Speed ieraksti100, palaid ar F6 un apskati kustību. Apturi, izmēģini400, tad atjauno200. - Atver Project → Project Settings, ieslēdz Advanced Settings un atver Physics → Common. Lauku Physics Ticks per Second nomaini no
60uz30. Tas nosaka, cik reižu sekundē Godot izpilda kustības kodu. Palaid scēnu: taisnstūrim ekrāns jāšķērso aptuveni tikpat ilgā laikā. - 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. - Atjauno
* (float)delta, Speed =200un Physics Ticks per Second =60. Saglabā, nospied Build un pārbaudi kustību vēlreiz. - README.md ieraksti, kas notika, mainot Speed, un kas notika bez
delta. Pietiek ar diviem īsiem teikumiem:deltapalī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:
MovementLab.tscnunMover.cs.- 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īme | Ko pārbaudīt |
|---|---|
| Ekrāns tukšs | Atver 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 pievienot | Atver .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īgs | Atjauno * (float)delta. |