Teremtse meg a fejlődés és a kihívás érzését azáltal, hogy különféle szinteket ad játékaihoz.

A szintek létrehozása a játék tervezésének kulcsfontosságú eleme, amely jelentősen növelheti a játék általános vonzerejét. A szintek biztosítják azt a struktúrát és kihívásokat, amelyek fenntartják a játékosok elkötelezettségét és motivációját, hogy előrehaladjanak a játékban.

A jól megtervezett pályák gondos kidolgozásával még magával ragadó és élvezetesebb élményt teremthet játékosai számára. Akár kezdő, akár tapasztalt játékfejlesztő vagy, a Godot megkönnyíti a lenyűgöző pályák létrehozását, amelyek miatt a játékosok visszatérhetnek még többet.

A Godot játék beállítása

Mielőtt elkezdené a pályák létrehozását, elengedhetetlen, hogy beállítsa a 2D-s játékprojektet Godot játékmotor.

A cikkben használt kód itt érhető el GitHub adattár és az MIT licence alapján ingyenesen használható.

Hozzon létre egy új jelenetet, és adjon hozzá a Node2D csomópont gyökércsomópontként. Ez tárolóként fog szolgálni a jelenet összes többi csomópontja számára. Most, hogy a projekted be van állítva, ideje hozzáadni a játékos karakterét a jelenethez.

instagram viewer

Új jelenet létrehozásához kattintson a jobb gombbal a Jelenet panelre, és válassza ki a lehetőséget Új jelenet. Add hozzá a CharacterBody2D csomópont a játékos karakterének megjelenítésére. A CharacterBody2D A csomópont beépített funkciókat biztosít a 2D karakterek mozgás- és ütközésérzékeléséhez.

Benne CharacterBody2D csomópont, add hozzá a CollisionShape2D téglalap alakú csomópont és a Kobold csomópont, amely a játékos megjelenését ábrázolja.

A játékos karakterének és látványvilágának beállításával most már az első szint létrehozására koncentrálhat.

Hozzon létre két szintet

A Godot-ban szintek létrehozásához használhat jelenetfájlokat (.tscn) az egyes szintek külön-külön történő megjelenítéséhez. Két szinttel egyedi elrendezéseket és mozgó platformokat valósíthat meg.

Játékos kód

A CharacterBody2D A script felelős a játékos mozgásának kezeléséért a felhasználói bevitel alapján. A mellékelt GDScript-ben a billentyűleütések alapján kiszámíthatja a mozgás irányát, és ennek megfelelően állíthatja be a lejátszó sebességét.

A játékos sebessége határozza meg, hogy milyen gyorsan mozog, és a mozog_és_ütközik funkció gondoskodik az ütközésérzékelésről.

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)

Platform kód

A Felület script kiterjeszti StaticBody2D, ami azt jelenti, hogy a platform nem mozdul el, hacsak nem alkalmaz egy mozgást. Ebben az esetben használhatja a mozgási sebesség változó a platform mozgási sebességének szabályozására.

A platform vízszintesen előre-hátra mozog a megadott tartományon belül (ebben a példában 100-400 egység). Amikor eléri a szélét, megfordítja mozgási irányát.

# 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

Ezekkel a szkriptekkel érdekes mozgásmintákat hozhat létre platformokhoz, és lenyűgöző játékélményeket tervezhet a platformer játékaid.

Szintek összekapcsolása

Egy tipikus játékban azt szeretné, ha a játékosok zökkenőmentesen haladnának egyik szintről a másikra. Ehhez valósítson meg egy Level Manager szkriptet, amely kezeli a szintváltást, amikor a lejátszó átlépi a képernyő határát.

A Szintkezelő script nyomon követi az aktuális szint számát és a képernyő méretét. A kezdeti szintet (1. szint) tölti be közben _kész(). A load_level A függvény bemenetként egy szintszámot vesz fel, létrehozza a megfelelő jelenetfájl elérési útját, és példányosítja a szint jelenetét.

Adja hozzá az új szintet a gyermekeként Szintkezelő; ez hatékonyan váltja át a jelenlegi szintet.

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()

A Level Manager megvalósításával zökkenőmentesen válthat át a szintek között, és karbantarthatja a játékosok adatait a szintek között, biztosítva a zökkenőmentes játékélményt.

Kiegészítő funkciókkal együtt

A szintek létrehozása lehetővé teszi, hogy különféle funkciókat adjon a játékhoz, ezáltal vonzóbbá és izgalmasabbá téve a játékosok számára.

Gyűjtemény

Adj hozzá gyűjthető tárgyakat, például érméket, csillagokat vagy kulcsokat, amelyeket a játékosok összegyűjtve új területeket nyithatnak meg, vagy jutalmakat kaphatnak. A gyűjtemények bátorítják a felfedezést, és kihívásokkal gazdagítják a játékmenetet.

Ellenségek

Mutassa be a különböző viselkedésű és mozgásmintákkal rendelkező ellenségeket. Az ellenségek akadályokat gördítenek a játékos elé, amivel stratégiát és izgalmat adnak a játékhoz.

Power-Ups

Tartalmazzon olyan erőket, amelyek átmenetileg növelik a játékos képességeit, például növelik a sebességet, a legyőzhetetlenséget vagy a fokozott támadásokat. A feljavítások pillanatnyi erőt adnak, és segíthetnek a játékosoknak leküzdeni a kihívást jelentő szakaszokat.

Rejtvények

Tervezz meg rejtvényelemeket, amelyeket a játékosoknak meg kell oldaniuk a szint eléréséhez. A rejtvények agyi aspektust adnak a játékmenethez, és a játékosok sikeresnek érezhetik magukat, amikor kitalálják őket.

Ha ezeket a kiegészítő funkciókat beépíti pályáiba, gazdag és változatos játékélményt hozhat létre, amely magával ragadja a játékosokat, és elmerül a játékvilágában.

A szintek létrehozásának bevált gyakorlatai

A szintek létrehozásakor bizonyos bevált gyakorlatok szem előtt tartása segíthet a játékosok jól kidolgozott és élvezetes élményében:

Egyensúlyi nehézség

Gondoskodjon sima nehézségi görbéről a szinteken. Fokozatosan növelje a kihívásokat, hogy a játékosok elköteleződjenek anélkül, hogy túlterhelnék őket. Fokozatosan vezessen be új mechanikákat és kihívásokat, lehetővé téve a játékosok számára az alkalmazkodást és a tanulást.

Ösztönözze a felfedezést

Tervezzen szinteket rejtett ösvényekkel, titkokkal és opcionális területekkel, amelyeket a játékosok felfedezhetnek. A felfedezés bónuszokkal, gyűjthető tárgyakkal vagy parancsikonokkal jutalmazza a játékosokat, mélyebbé téve a játékmenetet.

Tesztelés és iteráció

Játssz alaposan teszteld a szinteket problémák, hibák vagy egyensúlyhiányok azonosítására. Ismételje meg a szinttervezést a játékosok visszajelzései alapján, hogy javítsa az általános élményt.

Kép és hang

Ügyeljen a szintek vizuális és audio vonatkozásaira. A magával ragadó grafika és a szerzői jogoktól mentes hangeffektusok jelentősen hozzájárulhatnak a játék atmoszférájához és elmélyüléséhez.

Level Flow

Győződjön meg arról, hogy a szintáramlás egyenletes és logikus. Vezesd végig a játékosokat a pályán világos vizuális jelzésekkel, és kerüld el a zsákutcákat vagy a zavaros elrendezéseket.

E bevált gyakorlatok betartásával olyan pályákat hozhat létre, amelyek nem csak élvezetesek, hanem jól megtervezettek és összefüggőek is a játék kontextusában.

A szintek vonzóbbá teszik Godot-játékait

A szintek kulcsszerepet játszanak abban, hogy a Godot-játékokat vonzóbbá tegyék a játékosok számára. A jól megtervezett pályák a fejlődés, a teljesítmény és a felfedezés érzését nyújtják, és a játékosokat a játék folytatására csábítják.

A szinttervezés elveinek megértésével, Godot képességeinek kihasználásával és megvalósításával további funkciókkal olyan pályákat készíthetsz, amelyek elbűvölik a játékosokat, és új szintre emelik játékodat Magasság.