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.
Ú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.ZEROif Input.is_action_pressed("ui_left"):
input_dir.x -= 1if Input.is_action_pressed("ui_right"):
input_dir.x += 1if Input.is_action_pressed("ui_up"):
input_dir.y -= 1if 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 StaticBody2Dconst 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 = falsefunc _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 = falsefunc switch_level():
if is_switching_level:
returnis_switching_level = true
level_number += 1if 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.positionif 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 = 0get_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.