Daudzās spēlēs ir daži ienaidnieki, ar kuriem cīnīties. Izpētiet dažādus veidus, kā pievienot un uzlabot ienaidnieka cīņu.
Ienaidniekiem ir izšķiroša loma, padarot spēles spēlētājiem aizraujošas un izaicinošas. Neatkarīgi no tā, vai veidojat 2D platformas spēli, lejupejošu šāvēju vai lomu spēli, ienaidnieku pievienošana var ievērojami uzlabot spēles pieredzi.
Godot lietotājam draudzīgais interfeiss un intuitīvā skriptu valoda GDScript padara procesu efektīvu un patīkamu.
Godota spēles iestatīšana
Pirms iedziļināties ienaidnieka radīšanā, iestatiet savas 2D spēles pamatstruktūru Godot spēļu dzinējs.
Izveidojiet jaunu 2D projektu pakalpojumā Godot. Galvenajā ainā izveidojiet jaunu KinematicBody2D mezglu un nosauciet to Spēlētājs. Spēlētāja mezgla iekšpusē pievienojiet a CollisionShape2D ar taisnstūra formu, kas būs spēlētāja hitbox. Pievienojiet arī a Sprite mezgls kā spēlētāja tēla vizuāls attēlojums.
Šajā rakstā izmantotais kods ir pieejams šajā GitHub repozitorijs un to varat izmantot bez maksas saskaņā ar MIT licenci.
Pievienojiet tālāk norādīto GDScript kodu Spēlētājs mezgls, lai iespējotu pamata kustību:
extends KinematicBody2D
const SPEED = 200
func _physics_process(delta):
var motion = Vector2.ZEROif Input.is_action_pressed("ui_right"):
motion.x += SPEEDif Input.is_action_pressed("ui_left"):
motion.x -= SPEEDif Input.is_action_pressed("ui_down"):
motion.y += SPEEDif Input.is_action_pressed("ui_up"):
motion.y -= SPEED
motion = move_and_slide(motion)
Izmantojot šo kodu, spēlētājs var pārvietoties pa kreisi, pa labi, uz augšu un uz leju, izmantojot bulttaustiņus vai WASD taustiņus.
Vienkārša ienaidnieka izveide
Tagad, kad ir iestatīts spēlētāja varonis, varat izveidot vienkāršu ienaidnieku.
Izveidojiet jaunu ainu un pievienojiet a StaticBody2D mezgls nosaukts Ienaidnieks. Ienaidnieka mezglā pievienojiet a CollisionShape2D mezgls ar apļa formu, lai definētu ienaidnieka hitbox. Pievienojiet arī a Sprite mezgls, lai vizuāli attēlotu ienaidnieku.
Kad sadursme ir iestatīta, ienaidnieks būs gatavs mijiedarboties ar spēlētāju un citiem jūsu spēles pasaules elementiem.
Ienaidnieka radīšana sekot spēlētājam
Ienaidnieku izveidošana, kas seko spēlētājam, piešķir spēlei jaunu izaicinājumu līmeni.
Izveidojiet jaunu ainu šāda veida ienaidniekam un pievienojiet a KinematicBody2D mezgls nosaukts Sekojiet ienaidniekam ar CollisionShape2D. Pievienojiet šādu GDScript kodu mezglam FollowEnemy, lai tas sekotu atskaņotājam:
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)
Tagad, Sekojiet ienaidniekam pārvietosies uz spēlētāja pozīciju katrā kadrā.
Ienaidnieka ložu pievienošana
Tagad jūs varat likt ienaidniekam šaut lodes pret spēlētāju. Izveidojiet jaunu ainu un nosauciet to Bullet.tscn. Pievienojiet a KinematicBody2D mezgls uz notikuma vietu. Pievienojiet Bullet.gd skripts uz KinematicBody2D mezglu Bullet.tscn ainā. Pievienojiet šādu kodu, lai definētu Bullet klasi:
extends KinematicBody2D
const BULLET_SPEED = 300
var bullet_direction = Vector2.ZEROfunc _physics_process(delta):
var motion = bullet_direction * BULLET_SPEED * delta
move_and_collide(motion)
func set_direction(direction):
bullet_direction = direction.normalized()
Tagad izveidojiet jaunu mezglu ienaidniekam ar lodēm un nosauciet to Ienaidnieka šaušana. Mezglā ShootingEnemy pievienojiet a CollisionShape2D mezgls ar taisnstūra formu kā hitbox.
Pievienojiet ShootingEnemy mezglam šādu GDScript kodu, lai tas šautu lodes:
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)
Tagad ienaidnieks periodiski izšaus lodes spēlētāja pozīcijas virzienā. Izmantojiet nosacījumu ja paziņojums, apgalvojums lai pārbaudītu, vai shoot_taimer ir mazāks par 0. Ja tā ir, tad izšauj lodi.
Nejauši kustīgs ienaidnieks
Papildus ienaidniekiem, kas seko spēlētājam vai šauj uz viņu, nejauši kustīgs ienaidnieks var ievadīt jūsu spēlē neparedzamības un izaicinājuma elementu. Lai izveidotu ienaidnieku ar nejaušiem kustību modeļiem, ir nepieciešams apvienot vienkāršu loģiku un nejaušu skaitļu ģenerēšanu.
Sāciet, izveidojot jaunu ainu un pievienojiet a KinematicBody2D mezgls nosaukts RandomEnemy. Izveidojiet jaunu skriptu ar nosaukumu RandomEnemy.gd un pievienojiet to RandomEnemy mezglam. Skripts apstrādās nejaušās kustības loģiku.
extends KinematicBody2D
const MOVE_SPEED = 100
const MOVE_INTERVAL_MIN = 1.0
const MOVE_INTERVAL_MAX = 3.0var move_timer = 0.0
var move_interval = 0.0
var move_direction = Vector2.ZEROfunc _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 -= deltaif move_timer <= 0.0:
choose_new_direction()
var motion = move_direction * MOVE_SPEED * delta
move_and_collide(motion)
Ieskaitot papildu funkcijas
Ir daudzas papildu funkcijas, kuras varat pievienot saviem ienaidniekiem, lai padarītu spēli interesantāku.
Bosu cīņas
Bosu cīņas kalpo kā kulminācijas mirkļi jūsu spēlē, nodrošinot neaizmirstamas un izaicinošas tikšanās, kas pārbauda spēlētāju prasmes un neatlaidību. Bosu ienaidnieki parasti ir lielāki un spēcīgāki nekā parastie ienaidnieki, tāpēc spēlētājiem ir jāizmanto īpašas stratēģijas un taktika, lai viņus uzvarētu.
Dinamiskā ienaidnieka nārsta
Ieviesiet dinamisku nārsta sistēmu, kas pielāgo ienaidnieka tikšanos, pamatojoties uz spēlētāja sniegumu, atrašanās vietu vai spēles notikumiem. Tas rada atsaucīgāku un personalizētāku spēles pieredzi.
Vides pielāgošanās
Izveidojiet ienaidniekus, kas var pielāgoties videi, piemēram, ienaidniekus, kas var lidot, peldēt vai kāpt pa sienām. Šī daudzpusība paver jaunas spēles iespējas un izaicina spēlētājus pārvietoties dažādos apvidos.
Ienaidnieka vājās puses un pretestība
Piešķiriet ienaidniekiem īpašas vājās vietas un pretestību, mudinot spēlētājus eksperimentēt ar dažādām pieejām un taktikām. Daži ienaidnieki var būt neaizsargāti pret noteiktiem uzbrukumiem vai elementiem, savukārt citi ir imūni vai izturīgi.
Ienaidnieka pielāgošana un uzvedības variācijas
Pievienojiet neparedzamības līmeni, piešķirot ienaidniekiem nejaušas uzvedības variācijas. Piemēram, ienaidniekam var būt dažādi uzbrukuma modeļi vai kustības ātrums dažādās spēlēs, tādējādi saglabājot spēli svaigu un atkārtojamu.
Daudzu šo papildu funkciju iekļaušana var bagātināt jūsu spēles ienaidnieka dizainu, padarot katru tikšanos unikālu un neaizmirstamu spēlētājiem.
Atcerieties, ka, lai gan jaunas mehānikas ieviešana var būt aizraujoša, ir ļoti svarīgi saglabāt līdzsvaru un saskaņotību jūsu spēles kopējā dizainā.
Paraugprakse ienaidnieku radīšanai
Veidojot ienaidniekus savā Godot spēlē, ņemiet vērā šādus paraugprakses piemērus:
Skaidra vizuālā komunikācija
Izmantojiet atšķirīgus ienaidnieku dizainus, kas izceļas no apkārtējās vides, lai padarītu ienaidniekus viegli atpazīstamus.
Apsveriet iespēju izmantot krāsu kodējumu vai unikālus siluetus, lai atšķirtu ienaidnieku veidus. Pārliecinieties, vai ienaidnieka animācijas un vizuālie efekti pastiprina viņu uzvedību un uzbrukumus.
Līdzsvarošanas grūtības
Spēlētājam spēles gaitā pakāpeniski ievadiet ienaidniekus, kļūstot sarežģītākiem. Pārbaudiet ienaidnieka tikšanos ar spēlētājiem ar dažādu prasmju līmeni, lai nodrošinātu, ka izaicinājumi ir piemēroti visiem spēlētājiem. Izvairieties no pēkšņām grūtībām, kas var izjaukt spēlētājus.
Izvairīšanās no lētiem kadriem
Izveidojiet ienaidniekus ar uzbrukumiem, no kuriem spēlētājs var izvairīties vai bloķēt, dodot viņiem iespēju reaģēt. Izmantojiet godīgu hitbox ienaidnieku uzbrukumiem, izvairoties no uzbrukumiem, kas pārsniedz to vizuālo attēlojumu. Izmantojiet brīdinājuma zīmes vai norādes, lai norādītu uz bīstamiem uzbrukumiem.
Play testēšana un iterācija
Izstrādes laikā regulāri pārbaudiet ienaidnieka tikšanos, lai novērtētu to jautrības faktoru un grūtības. Apkopojiet atsauksmes no spēlētājiem un izmantojiet to, lai precizētu ienaidnieka uzvedību, stiprās un vājās puses.
Skaņas efekti
Skaņas efektiem ir izšķiroša nozīme ieskaujošas un valdzinošas spēles vides veidošanā. Kad ienaidnieks trāpa, pievienojiet atbilstošu autortiesībām brīvi skaņas efekti stiprināt trieciena sajūtu un iesaistīšanos kaujā.
Jūsu spēle var pavadīt katru sitienu vai sitienu ar atšķirīgiem audio signāliem, kas atbilst uzbrukuma veidam un ienaidnieka īpašībām.
Padarot Godot spēles vairāk saistošas ienaidniekiem
Ienaidnieki ir daudzu spēļu būtiska sastāvdaļa, kas rada izaicinājumus, šķēršļus un sasnieguma sajūtu, kad tiek uzvarēts. Pievienojot dažāda veida ienaidniekus ar atšķirīgu uzvedību, veselības punktiem un šaušanas mehāniku, jūs varat izveidot daudzveidīgu un aizraujošu spēles pieredzi spēlētājiem.
Atcerieties līdzsvarot grūtības, piedāvāt vizuālu un dzirdamu atgriezenisko saiti un rūpīgi pārbaudīt savus ienaidniekus, lai spēlētājiem nodrošinātu patīkamu un atalgojošu spēļu pieredzi.