Looge edenemise ja väljakutsete tunne, lisades oma mängudele erinevaid tasemeid.

Taseme loomine on mängukujunduse oluline aspekt, mis võib teie mängu üldist atraktiivsust märkimisväärselt tõsta. Tasemed pakuvad ülesehitust ja väljakutseid, mis hoiavad mängijaid kaasatuna ja motiveerituna teie mängus edasi liikuma.

Hästi kujundatud tasemeid hoolikalt koostades saate luua oma mängijatele kaasahaaravama ja nauditavama kogemuse. Olenemata sellest, kas olete algaja või kogenud mänguarendaja, Godot teeb köitvate tasemete loomise lihtsaks, mis paneb mängijad rohkem tagasi tulema.

Godot' mängu seadistamine

Enne tasemete loomise alustamist on oluline seadistada oma 2D-mänguprojekt Godoti mängumootor.

Selles artiklis kasutatud kood on saadaval selles GitHubi hoidla ja seda saate MIT-i litsentsi alusel tasuta kasutada.

Looge uus stseen ja lisage a Sõlm2D sõlme juursõlmena. See toimib kõigi teiste teie stseeni sõlmede konteinerina. Nüüd, kui teie projekt on seadistatud, on aeg lisada stseenile mängija tegelane.

Looge uus stseen, paremklõpsates paneelil Stseen ja valides Uus stseen. Lisa CharacterBody2D sõlm, mis esindab mängija tegelast. The CharacterBody2D node pakub sisseehitatud funktsioone 2D-tegelaste liikumise ja kokkupõrke tuvastamiseks.

Sees CharacterBody2D sõlm, lisage a Kokkupõrkekuju2D ristkülikukujuline sõlm ja a Sprite sõlm, mis tähistab mängija välimust.

Kui mängija tegelaskuju ja selle visuaalid on seadistatud, saate nüüd keskenduda oma esimese taseme loomisele.

Looge kaks taset

Godot's tasemete loomiseks võite kasutada stseenifaile (.tscn), et esindada iga taset eraldi. Kahe tasemega saate rakendada ainulaadseid paigutusi ja liikuvaid platvorme.

Mängija kood

The CharacterBody2D skript vastutab mängija liikumise käsitlemise eest kasutaja sisendi põhjal. Kaasasolevas GDScriptis saate klahvivajutuste põhjal arvutada liikumissuuna ja vastavalt sellele seadistada mängija kiirust.

Mängija kiirus määrab, kui kiiresti nad liiguvad ja liikuda_ja_kokkupõrge funktsioon hoolitseb kokkupõrke tuvastamise eest.

extends CharacterBody2D

var speed = 300

func _physics_process(delta):
var input_dir = Vector2.ZERO

if Input.is_action_pressed("ui_left"):
input_dir.x -= 1

if Input.is_action_pressed("ui_right"):
input_dir.x += 1

if Input.is_action_pressed("ui_up"):
input_dir.y -= 1

if Input.is_action_pressed("ui_down"):
input_dir.y += 1

velocity = input_dir.normalized() * speed
move_and_collide(velocity * delta)

Platvormi kood

The Platvorm skript laieneb StaticBody2D, mis tähendab, et platvorm ei liigu, kui te sellele liigutust ei rakenda. Sel juhul saate kasutada liikumise_kiirus muutuja, et juhtida platvormi liikumiskiirust.

Platvorm liigub horisontaalselt edasi-tagasi määratud vahemikus (selles näites 100 kuni 400 ühikut). Kui see jõuab servani, muudab see liikumissuuna vastupidiseks.

# Platform Movement
extends StaticBody2D

const move_speed = 100
var move_direction = Vector2(1, 0)

func _physics_process(delta):
var platform_movement = move_direction * move_speed * delta
translate(platform_movement)

# Change direction when reaching the edge of the platform's path
if position.x > 400or position.x < 100:
move_direction *= -1

Neid skripte kasutades saate luua platvormidele huvitavaid liikumismustreid ja kujundada kaasahaaravaid mängukogemusi teie platformer mängud.

Taseme ühendamine

Tavalises mängus soovite, et mängijad liiguksid sujuvalt ühelt tasemelt teisele. Selleks rakendage tasemehalduri skript, mis käsitleb taseme vahetamist, kui mängija ületab ekraani piiri.

The Tasemejuht skript jälgib praeguse taseme numbrit ja ekraani suurust. See laadib algtaseme (1. tase) ajal _valmis(). The koormuse_tase Funktsioon võtab sisendiks tasemenumbri, konstrueerib vastava stseenifaili tee ja loob taseme stseeni.

Lisage uus tase rakenduse lapsena Tasemejuht; see muudab tõhusalt praegust taset.

extends Node2D

var level_number = 1
var screen_size = Vector2()
var is_switching_level = false

func _ready():
screen_size = get_viewport_rect().size
load_level(level_number)

func load_level(level):
var level_path = "res://Level" + str(level) + ".tscn"
var level_scene = load(level_path)
var level_instance = level_scene.instantiate()
add_child(level_instance)
is_switching_level = false

func switch_level():
if is_switching_level:
return

is_switching_level = true
level_number += 1

if level_number > 2:
level_number = 1

# Assuming the player node is named "Player"
var player = get_node("Node2D/Player")

if player:
var player_position = player.position

if player_position.x < 0:
player.position.x = screen_size.x
elif player_position.x > screen_size.x:
player.position.x = 0
elif player_position.y < 0:
player.position.y = screen_size.y
elif player_position.y > screen_size.y:
player.position.y = 0

get_node("Node2D").queue_free()
load_level(level_number)

func _process(delta):
# Check if the player crosses the screen boundary
# Assuming the player node is named "Player"
var player = get_node("Node2D/Player")

if player:
var player_position = player.position
var condition1 = player_position.x < 0
var condition2 = player_position.x > screen_size.x
var condition3 = player_position.y < 0
var condition4 = player_position.y > screen_size.y

if condition1 or condition2 or condition3 or condition4 :
switch_level()

Rakendades Level Manageri, saate sujuvalt liikuda tasandite vahel ja säilitada mängijaandmeid erinevatel tasemetel, tagades sujuva mängukogemuse.

Kaasa arvatud lisafunktsioonid

Taseme loomine võimaldab lisada oma mängule erinevaid funktsioone, muutes selle mängijate jaoks kaasahaaravamaks ja põnevamaks.

Kogumisobjektid

Lisage kogumisesemeid, nagu mündid, tähed või võtmed, mida mängijad saavad koguda, et avada uusi alasid või saada auhindu. Kollektsionäärid julgustavad avastamist ja lisavad mängule väljakutseid.

Vaenlased

Tutvustage erineva käitumise ja liikumismustriga vaenlasi. Vaenlased loovad mängijale ületamiseks takistusi, lisades mängule strateegiat ja põnevust.

Võimsused

Kaasake võimsusi, mis ajutiselt suurendavad mängija võimeid, nagu suurenenud kiirus, võitmatus või täiustatud rünnakud. Võimsused annavad volituse hetki ja võivad aidata mängijatel rasketest osadest üle saada.

Mõistatused

Kujundage pusleelemendid, mida mängijad peavad tasemel edasiliikumiseks lahendama. Mõistatused lisavad mängule peaaju aspekti ja võivad panna mängijad end saavutanud, kui nad need välja mõtlevad.

Lisades need lisafunktsioonid oma tasemetele, saate luua rikkaliku ja mitmekesise mängukogemuse, mis võlub mängijaid ja hoiab neid teie mängumaailmas sukeldunud.

Taseme loomise parimad tavad

Taseme loomisel võib teatud parimate tavade silmas pidamine aidata tagada mängijatele hästi läbimõeldud ja nauditava kogemuse.

Tasakaalu raskused

Säilitage sujuv raskuskõver kogu oma tasemel. Suurendage järk-järgult väljakutseid, et hoida mängijaid kaasates ilma neid üle koormamata. Tutvustage järk-järgult uusi mehaanikaid ja väljakutseid, võimaldades mängijatel kohaneda ja õppida.

Julgustage uurimist

Kujundage tasemeid peidetud radade, saladuste ja valikuliste aladega, mida mängijad saavad uurida. Uurimine premeerib mängijaid boonuste, kogumisobjektide või otseteedega, lisades mängule sügavust.

Testimine ja iteratsioon

Testige oma taset põhjalikult probleemide, vigade või tasakaalustamatuse tuvastamiseks. Üldise kogemuse parandamiseks korrake tasemekujundust mängija tagasiside põhjal.

Visuaal ja heli

Pöörake tähelepanu oma taseme visuaalsetele ja heliaspektidele. Kaasahaarav graafika ja autoriõigusteta heliefektid võivad oluliselt kaasa aidata teie mängu atmosfäärile ja keelekümblusele.

Voolu tase

Veenduge, et taseme vool oleks sujuv ja loogiline. Juhendage mängijaid selgete visuaalsete näpunäidetega tasemelt ja vältige ummikuid või segadust tekitavaid paigutusi.

Neid parimaid tavasid järgides saate luua tasemeid, mida pole mitte ainult nauditav mängida, vaid ka hästi kujundatud ja mängu kontekstis sidusad.

Tasemed muudavad teie Godoti mängud kaasahaaravamaks

Tasemed mängivad keskset rolli Godoti mängude mängijate jaoks köitvamaks muutmisel. Hästi kavandatud tasemed annavad edasimineku, saavutuste ja uurimise tunde, meelitades mängijaid mängimist jätkama.

Taseme kujundamise põhimõtete mõistmise, Godot' võimaluste ärakasutamise ja rakendamisega lisafunktsioonide abil saate luua tasemeid, mis võluvad mängijaid ja tõstavad teie mängu uuele tasemele kõrgused.