Mnoho hier obsahuje nejakého nepriateľa, s ktorým môžete bojovať. Preskúmajte rôzne spôsoby, ako môžete pridať – a vylepšiť – boj s nepriateľmi.

Nepriatelia zohrávajú kľúčovú úlohu pri vytváraní vzrušujúcich a náročných hier pre hráčov. Či už vytvárate 2D plošinovku, strieľačku zhora nadol alebo hru na hranie rolí, pridanie nepriateľov môže výrazne zlepšiť herný zážitok.

Užívateľsky prívetivé rozhranie Godot a intuitívny skriptovací jazyk GDScript robia tento proces efektívnym a príjemným.

Nastavenie hry Godot

Predtým, ako sa pustíte do vytvárania nepriateľov, nastavte základnú štruktúru svojej 2D hry herný engine Godot.

Vytvorte nový 2D projekt v Godot. V hlavnej scéne vytvorte novú KinematicBody2D uzol a pomenujte ho Hráč. Vo vnútri hráčskeho uzla pridajte a CollisionShape2D s tvarom obdĺžnika, ktorý bude hráčskym hitboxom. Pridajte tiež a Sprite uzol ako vizuálnu reprezentáciu postavy hráča.

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.

instagram viewer

Pripojte nasledujúci kód GDScript k Hráč uzol umožňujúci základný pohyb:

extends KinematicBody2D

const SPEED = 200

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

if Input.is_action_pressed("ui_right"):
motion.x += SPEED

if Input.is_action_pressed("ui_left"):
motion.x -= SPEED

if Input.is_action_pressed("ui_down"):
motion.y += SPEED

if Input.is_action_pressed("ui_up"):
motion.y -= SPEED

motion = move_and_slide(motion)

Pomocou tohto kódu sa hráč môže pohybovať doľava, doprava, nahor a nadol pomocou šípok alebo kláves WASD.

Vytvorenie jednoduchého nepriateľa

Teraz, keď máte postavu hráča nastavenú, môžete si vytvoriť jednoduchého nepriateľa.

Vytvorte novú scénu a pridajte a StaticBody2D uzol pomenovaný Nepriateľ. Do uzla Enemy pridajte a CollisionShape2D uzol s tvarom kruhu na definovanie hitboxu nepriateľa. Pridajte tiež a Sprite uzol na vizuálne znázornenie nepriateľa.

Po nastavení kolízie bude nepriateľ pripravený na interakciu s hráčom a ďalšími prvkami vo vašom hernom svete.

Vytvorenie nepriateľa Nasledujte hráča

Vytváranie nepriateľov, ktorí sledujú hráča, pridáva do hry novú úroveň výzvy.

Vytvorte novú scénu pre nasledujúci typ nepriateľa a pridajte a KinematicBody2D uzol pomenovaný FollowEnemy s CollisionShape2D. Pripojte nasledujúci kód GDScript k uzlu FollowEnemy, aby nasledoval prehrávač:

extends KinematicBody2D

const SPEED = 100

func _physics_process(delta):
var player = get_parent().get_node("Player")
var player_position = player.global_position
var enemy_position = global_position
var direction = player_position - enemy_position
direction = direction.normalized()

var motion = direction * SPEED * delta
move_and_collide(motion)

Teraz, FollowEnemy sa posunie smerom k pozícii hráča v každom snímku.

Pridanie nepriateľských guliek

Teraz môžete nepriateľa prinútiť strieľať guľky smerom k hráčovi. Vytvorte novú scénu a pomenujte ju Bullet.tscn. Pridaj KinematicBody2D uzol na scénu. Pripojte Bullet.gd skript do uzla KinematicBody2D v scéne Bullet.tscn. Pridajte nasledujúci kód na definovanie triedy Bullet:

extends KinematicBody2D

const BULLET_SPEED = 300
var bullet_direction = Vector2.ZERO

func _physics_process(delta):
var motion = bullet_direction * BULLET_SPEED * delta
move_and_collide(motion)

func set_direction(direction):
bullet_direction = direction.normalized()

Teraz vytvorte nový uzol pre nepriateľa s guľkami a pomenujte ho Streľba nepriateľa. Do uzla ShootingEnemy pridajte a CollisionShape2D uzol s obdĺžnikovým tvarom ako hitbox.

Pripojte nasledujúci kód GDScript k uzlu ShootingEnemy, aby mohol strieľať guľky:

extends KinematicBody2D

const SPEED = 100
const SHOOT_DELAY = 1.5
var shoot_timer = SHOOT_DELAY

# Import the Bullet scene
const BulletScene = preload("res://Bullet.tscn")

func _physics_process(delta):

# Shooting logic
shoot_timer -= delta

if shoot_timer <= 0:
shoot_timer = SHOOT_DELAY
var bullet_instance = BulletScene.instance()
bullet_instance.global_position = global_position
bullet_instance.set_direction(direction)
get_parent().add_child(bullet_instance)

Nepriateľ bude teraz pravidelne strieľať guľky smerom k hráčovej pozícii. Použite podmienku ak vyhlásenie skontrolovať, či Shot_timer je menej ako 0. Ak áno, vystrelte guľku.

Náhodne sa pohybujúci nepriateľ

Okrem nepriateľov, ktorí hráča sledujú alebo po ňom strieľajú, môže do vašej hry vniesť prvok nepredvídateľnosti a výzvy aj náhodne sa pohybujúci nepriateľ. Vytvorenie nepriateľa s náhodnými pohybovými vzormi si vyžaduje kombináciu jednoduchej logiky a generovania náhodných čísel.

Začnite vytvorením novej scény a pridajte a KinematicBody2D uzol pomenovaný RandomEnemy. Vytvorte nový skript s názvom RandomEnemy.gd a pripojte ho k uzlu RandomEnemy. Skript bude spracovávať logiku náhodného pohybu.

extends KinematicBody2D

const MOVE_SPEED = 100
const MOVE_INTERVAL_MIN = 1.0
const MOVE_INTERVAL_MAX = 3.0

var move_timer = 0.0
var move_interval = 0.0
var move_direction = Vector2.ZERO

func _ready():
choose_new_direction()

func choose_new_direction():
move_interval = rand_range(MOVE_INTERVAL_MIN, MOVE_INTERVAL_MAX)
move_timer = move_interval
move_direction = Vector2(randf(), randf()).normalized()

func _physics_process(delta):
move_timer -= delta

if move_timer <= 0.0:
choose_new_direction()

var motion = move_direction * MOVE_SPEED * delta
move_and_collide(motion)

Vrátane ďalších funkcií

Existuje mnoho ďalších funkcií, ktoré môžete pridať k svojim nepriateľom, aby bola hra zaujímavejšia.

Boss Battles

Bitky s bossmi slúžia ako vrcholné momenty vo vašej hre a poskytujú nezabudnuteľné a náročné stretnutia, ktoré testujú schopnosti a vytrvalosť hráčov. Boss nepriatelia sú zvyčajne väčší a silnejší ako bežní nepriatelia, čo od hráčov vyžaduje, aby používali špecifické stratégie a taktiky, aby ich porazili.

Dynamické spawnovanie nepriateľov

Implementujte dynamický systém spawnovania, ktorý upravuje stretnutia s nepriateľmi na základe hráčovho výkonu, polohy alebo udalostí v hre. To vytvára citlivejší a prispôsobenejší herný zážitok.

Prispôsobenie sa životnému prostrediu

Vytvárajte nepriateľov, ktorí sa dokážu prispôsobiť prostrediu, napríklad nepriateľov, ktorí môžu lietať, plávať alebo liezť po stenách. Táto všestrannosť otvára nové možnosti hrania a vyzýva hráčov, aby sa pohybovali v rôznych terénoch.

Nepriateľské slabosti a odpory

Priraďte nepriateľom konkrétne slabiny a odpory a povzbudzujte hráčov, aby experimentovali s rôznymi prístupmi a taktikami. Niektorí nepriatelia môžu byť zraniteľní voči určitým útokom alebo prvkom, zatiaľ čo iní sú imúnni alebo odolní.

Prispôsobenie nepriateľa a variácie správania

Pridajte úroveň nepredvídateľnosti poskytnutím náhodných variácií správania nepriateľov. Nepriateľ môže mať napríklad rôzne vzory útokov alebo rýchlosti pohybu v rôznych hrách, vďaka čomu je hra svieža a znovu hrateľná.

Zahrnutie rôznych týchto dodatočných funkcií môže obohatiť dizajn nepriateľov vašej hry, vďaka čomu bude každé stretnutie jedinečné a pre hráčov nezabudnuteľné.

Pamätajte, že aj keď predstavovanie nových mechanizmov môže byť vzrušujúce, je dôležité zachovať rovnováhu a súdržnosť v rámci celkového dizajnu vašej hry.

Osvedčené postupy na vytváranie nepriateľov

Pri vytváraní nepriateľov v hre Godot zvážte nasledujúce osvedčené postupy:

Jasná vizuálna komunikácia

Použite zreteľné vzory nepriateľov, ktoré vyčnievajú z prostredia, aby boli nepriatelia ľahko rozpoznateľní.

Zvážte použitie farebného kódovania alebo jedinečných siluet na rozlíšenie typov nepriateľov. Uistite sa, že nepriateľské animácie a vizuálne efekty posilňujú ich správanie a útoky.

Ťažkosti s vyvažovaním

Postupne predstavujte nepriateľov s narastajúcou zložitosťou, ako hráč postupuje hrou. Otestujte si stretnutia s nepriateľmi s hráčmi s rôznou úrovňou zručností, aby ste sa uistili, že výzvy sú vhodné pre všetkých hráčov. Vyhnite sa náhlym skokom obtiažnosti, ktoré môžu hráčov frustrovať.

Vyhnite sa lacným záberom

Navrhnite nepriateľov pomocou útokov, ktorým sa hráč môže vyhnúť alebo ich blokovať, čím im dáte šancu reagovať. Na útoky nepriateľov používajte spravodlivý hitbox a vyhýbajte sa útokom, ktoré zasiahnu mimo ich vizuálnu reprezentáciu. Použite varovné signály alebo narážky, aby ste naznačili nebezpečné útoky.

Playtesting a iterácia

Počas vývoja pravidelne testujte stretnutia s nepriateľmi, aby ste vyhodnotili ich zábavný faktor a náročnosť. Získajte spätnú väzbu od hráčov a použite ju na doladenie správania nepriateľov, ich silných a slabých stránok.

Zvukové efekty

Zvukové efekty zohrávajú kľúčovú úlohu pri vytváraní pohlcujúceho a podmanivého herného prostredia. Keď nepriateľ dostane zásah, pridajte vhodné zvukové efekty bez autorských práv posilniť zmysel pre dopad a angažovanosť v boji.

Vaša hra môže sprevádzať každý úder alebo zásah odlišnými zvukovými signálmi, ktoré zodpovedajú typu útoku a vlastnostiam nepriateľa.

Aby hry Godot boli pútavejšie s nepriateľmi

Nepriatelia sú základnou súčasťou mnohých hier, poskytujú výzvy, prekážky a pocit úspechu, keď sú porazení. Pridaním rôznych typov nepriateľov s rôznym správaním, zdravotnými bodmi a mechanikou streľby môžete pre hráčov vytvoriť rôznorodé a pútavé herné zážitky.

Nezabudnite vyvážiť obtiažnosť, ponúknuť vizuálnu a zvukovú spätnú väzbu a dôkladne otestovať svojich nepriateľov, aby ste hráčom poskytli príjemný a obohacujúci herný zážitok.