Téglák létrehozása

A Godot Engine alapjai - II. Arkanoid
2021-06-17 · 21:07
Eddig alapjaiban nem sokban különbözött ez a játék az előzőtől, de ez most meg fog változni, mert hozzáadjuk az elpusztítandó téglákat.


Tégla alap létrehozása


Hozzunk létre egy új StaticBody2D scene-t, "Tegla" néven és mentsük el. Jobb oldalon a Node fülön válasszuk a Groups-t és hozzunk létre egy "tegla" nevű group-ot.

Adjunk hozzá egy CollisionShape2D-t, válasszuk a RectangleShape-et hozzá, az extents - x értéke legyen 64, az y pedig 16. Adjunk a Tegla-hoz egy Sprite-ot is és tallózzuk be hozzá az alábbi képet:

tégla


Adjunk hozzá egy Label-t is a Tegla-hoz. Írjunk egy 0-t a Text mezőbe. Az Align és a VAlign legyen Center. A Rect - Position legyen (x: -64; y: -16), a Size pedig (x: 128; y: 32). A Custom Font-hoz adjuk hozzá a már többször használt menu_font.tres nevű fájlt. Láthatjuk, hogy a betű mérete túl nagy ide. Ha csak egyszerűen megváltoztatnánk, az az összes többi helyen is megváltoztatná.

Ehelyett, kattintsunk a Font mező melletti nyílra és válasszuk a Make Unique lehetőséget, így már nyugodtan megváltoztathatjuk a méretét.

A font-ra kattintva a Settings - Size méretét állítsuk pl. 20-ra. Alatta az Outline Size és Outline Color mezőkben megadhatunk egy 1 pixel vastag fekete körvonalat, hogy ne olvadjon be annyira a háttérbe. Ezzel meg is vagyunk.

Adjunk egy script-et a Tegla-hoz:

# a tool kulcsszóval az Editorban is futtatható a script
tool
extends StaticBody2D

# létrehozunk egy változót, amit az Editorból lehet szerkeszteni
export var pajzs = 1
# létrehozunk egy színválasztót, amit az editorból lehet szerkeszteni
export var szin = Color("FFF")

# létrehozunk egy signal-t
signal pont


func _ready():
    # a Pajzs címke szövegének megadjuk a pajzs változó értékét
    $Label.text = str(pajzs)
    # a tégla sprite-ot átszínezzük az Editorban beállított értékre
    $Sprite.modulate = szin

# amikor törlődik a tégla
func _exit_tree():
    # elküldjük a signal-t
    emit_signal("pont")

Térjünk vissza a PalyaSablon scene-re, és adjunk a root node-hoz egy Node2D-t, "Teglak" néven. Ezt most lényegében egy mappaként fogjuk használni, és ebbe tesszük bele az összes téglát.

Állítsuk át a Grid Step-et (64 px; 32 px)-re ("három pötty" ikon, fent az ikonsoron, majd a lenyíló menüben Configure Snap...) Nyomjuk meg a [W]-t, hogy átváltsunk Move Mode-ra, így nem tudunk véletlenül másik node-ot megfogni.