Vytvorte pocit pokroku a výzvy pridaním rôznych úrovní do svojich hier.
Vytváranie úrovní je kľúčovým aspektom herného dizajnu, ktorý môže výrazne zvýšiť celkovú príťažlivosť vašej hry. Úrovne poskytujú štruktúru a výzvy, ktoré udržujú hráčov zapojených a motivovaných k pokroku v hre.
Starostlivým vytváraním dobre navrhnutých úrovní môžete pre svojich hráčov vytvoriť pôsobivejší a príjemnejší zážitok. Či už ste začiatočník alebo skúsený herný vývojár, Godot uľahčuje vytváranie podmanivých úrovní, vďaka ktorým sa hráči budú vracať pre viac.
Nastavenie hry Godot
Predtým, ako začnete vytvárať úrovne, je nevyhnutné nastaviť váš 2D herný projekt Herný engine Godot.
Kód použitý v tomto článku je dostupný v tomto úložisko GitHub a môžete ho bezplatne používať na základe licencie MIT.
Vytvorte novú scénu a pridajte a Node2D uzol ako koreňový uzol. Toto bude slúžiť ako kontajner pre všetky ostatné uzly vo vašej scéne. Teraz, keď je váš projekt nastavený, je čas pridať na scénu postavu hráča.
Vytvorte novú scénu kliknutím pravým tlačidlom myši na panel Scene a výberom
Nová scéna. Pridaj CharacterBody2D uzol reprezentujúci postavu hráča. The CharacterBody2D node poskytuje vstavané funkcie pre detekciu pohybu a kolízií pre 2D postavy.Vnútri CharacterBody2D uzol, pridajte a CollisionShape2D uzol s tvarom obdĺžnika a a Sprite uzol reprezentujúci vzhľad hráča.
Po nastavení postavy hráča a jej vizuálov sa teraz môžete sústrediť na vytvorenie svojej prvej úrovne.
Vytvorte dve úrovne
Na vytváranie úrovní v Godot môžete použiť súbory scén (.tscn) reprezentovať každú úroveň samostatne. Pomocou dvoch úrovní môžete implementovať jedinečné rozloženia a pohyblivé platformy.
Kód hráča
The CharacterBody2D skript je zodpovedný za spracovanie pohybu hráča na základe vstupu používateľa. V dodanom GDScripte môžete vypočítať smer pohybu na základe stlačenia klávesov a podľa toho nastaviť rýchlosť hráča.
Rýchlosť hráča určuje, ako rýchlo sa pohybujú move_and_collide funkcia sa stará o detekciu kolízie.
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)
Kód platformy
The Plošina skript sa predlžuje StaticBody2D, čo znamená, že platforma sa nepohne, pokiaľ na ňu nepohnete. V tomto prípade môžete použiť rýchlosť_pohybu premenná na ovládanie rýchlosti pohybu platformy.
Plošina sa pohybuje tam a späť horizontálne v rámci špecifikovaného rozsahu (100 až 400 jednotiek v tomto príklade). Keď dosiahne okraj, obráti smer svojho pohybu.
# 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
Pomocou týchto skriptov môžete vytvárať zaujímavé pohybové vzorce pre platformy a navrhovať pútavé herné zážitky vaše plošinovky.
Spojovacie úrovne
V typickej hre budete chcieť, aby hráči postupovali z jednej úrovne do druhej hladko. Ak to chcete urobiť, implementujte skript Level Manager, ktorý spracováva prepínanie úrovní, keď hráč prekročí hranicu obrazovky.
The Správca úrovní skript sleduje číslo aktuálnej úrovne a veľkosť obrazovky. Načíta počiatočnú úroveň (úroveň 1) počas _ready(). The úroveň_načítania funkcia berie ako vstup číslo úrovne, vytvára cestu k súboru zodpovedajúcej scény a vytvára inštanciu scény úrovne.
Pridajte novú úroveň ako dieťa Správca úrovní; tým sa efektívne prepne aktuálna úroveň.
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()
Implementáciou správcu úrovní môžete plynulo prechádzať medzi úrovňami a udržiavať údaje o hráčoch naprieč úrovňami, čím zaistíte plynulý herný zážitok.
Vrátane ďalších funkcií
Vytváranie úrovní vám umožňuje pridávať do vašej hry rôzne funkcie, vďaka čomu je pre hráčov pútavejšia a vzrušujúcejšia.
Zberateľské predmety
Pridajte zberateľské predmety, ako sú mince, hviezdy alebo kľúče, ktoré môžu hráči zbierať, aby odomkli nové oblasti alebo získali odmeny. Zberateľské predmety podporujú prieskum a pridávajú do hry ďalšiu výzvu.
Nepriatelia
Predstavte nepriateľom rôzne správanie a pohybové vzorce. Nepriatelia vytvárajú prekážky, ktoré musí hráč prekonať, čím dodávajú hre stratégiu a vzrušenie.
Power-Ups
Zahrňte vylepšenia, ktoré dočasne posilnia hráčove schopnosti, ako je zvýšená rýchlosť, neporaziteľnosť alebo vylepšené útoky. Vylepšenia poskytujú momenty posilnenia a môžu pomôcť hráčom prekonať náročné úseky.
Hádanky
Navrhnite prvky puzzle, ktoré musia hráči vyriešiť, aby postúpili cez úroveň. Hádanky pridávajú do hry cerebrálny aspekt a môžu spôsobiť, že sa hráči budú cítiť ako dokonalí, keď ich vymyslia.
Začlenením týchto dodatočných funkcií do svojich úrovní môžete vytvoriť bohatý a rozmanitý herný zážitok, ktorý hráčov uchváti a nechá ich ponorených do vášho herného sveta.
Osvedčené postupy na vytváranie úrovní
Pri vytváraní úrovní môže dodržanie určitých osvedčených postupov pomôcť zaistiť hráčom dobre vytvorený a príjemný zážitok:
Ťažkosti s rovnováhou
Udržujte hladkú krivku obtiažnosti vo svojich úrovniach. Postupne zvyšujte výzvy, aby ste udržali hráčov zapojených bez toho, aby ste ich premohli. Postupne zavádzajte nové mechanizmy a výzvy, čo hráčom umožní prispôsobiť sa a učiť sa.
Podporujte prieskum
Navrhnite úrovne so skrytými cestami, tajomstvami a voliteľnými oblasťami, ktoré môžu hráči preskúmať. Prieskum odmeňuje hráčov bonusmi, zberateľskými predmetmi alebo skratkami, ktoré dodávajú hrateľnosti hĺbku.
Testovanie a opakovanie
Rozsiahlo si otestujte svoje úrovne na identifikáciu akýchkoľvek problémov, chýb alebo nerovnováh. Opakujte dizajn úrovní na základe spätnej väzby od hráčov, aby ste zlepšili celkový zážitok.
Obraz a zvuk
Venujte pozornosť vizuálnym a zvukovým aspektom vašich úrovní. Pútavá grafika a zvukové efekty bez autorských práv môžu výrazne prispieť k atmosfére a pohlteniu vašej hry.
Úroveň prietoku
Uistite sa, že prietok hladiny je plynulý a logický. Preveďte hráčov úrovňou pomocou jasných vizuálnych podnetov a vyhnite sa slepým uličkám alebo mätúcim rozloženiam.
Dodržiavaním týchto osvedčených postupov môžete vytvárať úrovne, ktoré sú nielen príjemné na hranie, ale aj dobre navrhnuté a koherentné v kontexte vašej hry.
Úrovne urobia vaše hry Godot pútavejšími
Úrovne zohrávajú kľúčovú úlohu v tom, aby hry Godot boli pre hráčov pútavejšie. Dobre navrhnuté úrovne poskytujú pocit pokroku, úspechu a prieskumu a lákajú hráčov, aby pokračovali v hre.
Pochopením princípov dizajnu úrovní, využitím Godotových schopností a implementáciou ďalšie funkcie, môžete vytvoriť úrovne, ktoré upútajú hráčov a pozdvihnú vašu hru na novú úroveň výšky.