Paljud mängud sisaldavad mõnda vaenlast, kellega võidelda. Uurige erinevaid viise, kuidas saate vaenlase võitlust lisada ja täiustada.
Vaenlased mängivad otsustavat rolli mängude muutmisel mängijate jaoks põnevaks ja väljakutseid pakkuvaks. Olenemata sellest, kas loote 2D-platvormi, ülalt-alla laskurit või rollimängu, võib vaenlaste lisamine mängukogemust oluliselt parandada.
Godoti kasutajasõbralik liides ja intuitiivne skriptikeel GDScript muudavad protsessi tõhusaks ja nauditavaks.
Godot' mängu seadistamine
Enne vaenlase loomisesse sukeldumist seadistage oma 2D-mängu põhistruktuur Godoti mängumootor.
Looge Godot's uus 2D-projekt. Põhistseenis looge uus KinematicBody2D sõlm ja nimeta see Mängija. Lisage mängija sõlme sisse a Kokkupõrkekuju2D ristküliku kujuga, millest saab mängija hitbox. Lisage ka a Sprite sõlm mängija tegelase visuaalse esitusena.
Selles artiklis kasutatud kood on saadaval selles GitHubi hoidla ja seda saate MIT-i litsentsi alusel tasuta kasutada.
Kinnitage järgmine GDScripti kood Mängija sõlm põhiliikumise lubamiseks:
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)
Selle koodiga saab mängija liikuda nooleklahvide või WASD-klahvide abil vasakule, paremale, üles ja alla.
Lihtsa vaenlase loomine
Nüüd, kui teil on mängijategelane seadistatud, saate luua lihtsa vaenlase.
Looge uus stseen ja lisage a StaticBody2D sõlm nimega Vaenlane. Vaenlase sõlme sisse lisage a Kokkupõrkekuju2D ringikujuline sõlm, et määratleda vaenlase tabamuskast. Lisage ka a Sprite sõlm vaenlase visuaalseks kujutamiseks.
Kui kokkupõrge on seadistatud, on vaenlane valmis suhtlema mängija ja teiste teie mängumaailma elementidega.
Mängijat järgiva vaenlase loomine
Mängijale jälitavate vaenlaste loomine lisab mängule uue väljakutse.
Looge järgmise vaenlase tüübi jaoks uus stseen ja lisage a KinematicBody2D sõlm nimega Jälgi vaenlast CollisionShape2D-ga. Lisage FollowEnemy sõlmele järgmine GDScript-kood, et see järgiks mängijat:
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)
Nüüd, Jälgi vaenlast liigub igas kaadris mängija positsiooni poole.
Vaenlase kuulide lisamine
Nüüd saate panna vaenlase mängija poole täppe tulistama. Looge uus stseen ja nimetage see Bullet.tscn. Lisa KinematicBody2D sõlm sündmuskohale. Kinnitage Bullet.gd skript stseeni Bullet.tscn sõlme KinematicBody2D. Lisage Bullet klassi määratlemiseks järgmine kood:
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()
Nüüd looge vaenlase jaoks uus sõlm täppidega ja nimetage see Vaenlase tulistamine. ShootingEnemy sõlme sisse lisage a Kokkupõrkekuju2D ristkülikukujuline sõlm kui hitbox.
Kinnitage ShootingEnemy sõlmele järgmine GDScript-kood, et see kuulide laskmiseks saaks:
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)
Vaenlane tulistab nüüd perioodiliselt täppe mängija positsiooni suunas. Kasutage tingimuslikku kui avaldus et kontrollida, kas shoot_taimer on väiksem kui 0. Kui on, siis tulista kuuli.
Juhuslikult liikuv vaenlane
Lisaks vaenlastele, kes järgnevad või tulistavad mängijat, võib juhuslikult liikuv vaenlane süstida teie mängu ettearvamatust ja väljakutset. Vaenlase loomine juhuslike liikumismustritega nõuab lihtsa loogika ja juhuslike arvude genereerimise kombinatsiooni.
Alustage uue stseeni loomisega ja lisage a KinematicBody2D sõlm nimega Random Enemy. Looge uus skript nimega RandomEnemy.gd ja kinnitage see RandomEnemy sõlme külge. Skript tegeleb juhusliku liikumise loogikaga.
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)
Kaasa arvatud lisafunktsioonid
Mängu huvitavamaks muutmiseks saate oma vaenlastele lisada palju lisafunktsioone.
Bossi lahingud
Bossilahingud on teie mängu tipphetked, pakkudes meeldejäävaid ja väljakutseid pakkuvaid kohtumisi, mis panevad proovile mängijate oskused ja visaduse. Bossivaenlased on tavaliselt suuremad ja võimsamad kui tavalised vaenlased, mistõttu peavad mängijad nende võitmiseks kasutama konkreetseid strateegiaid ja taktikaid.
Dünaamiline vaenlase kudemine
Rakendage dünaamilist kudemissüsteemi, mis kohandab vaenlase kohtumisi mängija jõudluse, asukoha või mängusiseste sündmuste põhjal. See loob tundlikuma ja isikupärasema mängukogemuse.
Keskkonnaga kohanemine
Looge vaenlasi, kes suudavad keskkonnaga kohaneda, näiteks vaenlasi, kes suudavad lennata, ujuda või mööda seinu ronida. See mitmekülgsus avab uusi mänguvõimalusi ja esitab mängijatele väljakutse erinevatel maastikel navigeerida.
Vaenlase nõrkused ja vastupanu
Määrake vaenlastele konkreetsed nõrkused ja vastupanu, julgustades mängijaid katsetama erinevaid lähenemisviise ja taktikaid. Mõned vaenlased võivad olla teatud rünnakute või elementide suhtes haavatavad, samas kui teised on immuunsed või vastupidavad.
Vaenlase kohandamine ja käitumise variatsioonid
Lisage ettearvamatuse tase, pakkudes vaenlastele juhuslikke käitumisvariante. Näiteks võivad vaenlasel olla erinevad rünnakumustrid või liikumiskiirused erinevatel läbimängimistel, mis hoiab mänguviisi värske ja taasesitavaks.
Mitmete nende lisafunktsioonide kaasamine võib rikastada teie mängu vaenlase disaini, muutes iga kohtumise mängijate jaoks ainulaadseks ja meeldejäävaks.
Pidage meeles, et kuigi uue mehaanika tutvustamine võib olla põnev, on ülioluline säilitada tasakaal ja sidusus oma mängu üldises disainis.
Vaenlaste loomise parimad tavad
Godoti mängus vaenlasi luues arvestage järgmiste parimate tavadega.
Selge visuaalne suhtlus
Kasutage erinevaid vaenlase kujundusi, mis eristuvad keskkonnast, et muuta vaenlased kergesti äratuntavaks.
Kaaluge värvikoodide või ainulaadsete siluettide kasutamist vaenlase tüüpide eristamiseks. Veenduge, et vaenlase animatsioonid ja visuaalsed efektid tugevdaksid nende käitumist ja rünnakuid.
Tasakaalustamise raskused
Mängija mängu edenedes tutvustage järk-järgult üha keerukamaid vaenlasi. Testige vaenlase kohtumisi erineva oskustasemega mängijatega, et tagada väljakutsete sobivus kõigile mängijatele. Vältige ootamatuid raskusi, mis võivad mängijaid häirida.
Odavate võtete vältimine
Kujundage vaenlasi rünnakutega, millest mängija saab kõrvale hiilida või blokeerida, andes neile võimaluse reageerida. Kasutage vaenlaste rünnakute jaoks õiglast löögikasti, vältides rünnakuid, mis tabavad väljaspool nende visuaalset esitust. Ohtlikele rünnakutele vihjamiseks kasutage hoiatusmärke või vihjeid.
Mängu testimine ja iteratsioon
Testige arenduse ajal regulaarselt vaenlase kohtumisi, et hinnata nende lõbusust ja raskust. Koguge mängijatelt tagasisidet ja kasutage seda vaenlase käitumise, tugevate ja nõrkade külgede täpsustamiseks.
Heliefektid
Heliefektid mängivad kaasahaarava ja kaasahaarava mängukeskkonna loomisel otsustavat rolli. Kui vaenlane tabab, lisage sobiv autoriõiguseta heliefektid tugevdada löögitunnet ja võitluses osalemist.
Teie mäng võib kaasneda iga löögi või löögiga erinevate helisignaalidega, mis vastavad rünnaku tüübile ja vaenlase omadustele.
Muutke Godoti mängud vaenlastega kaasahaaravamaks
Vaenlased on paljude mängude põhikomponent, pakkudes lüüasaamisel väljakutseid, takistusi ja saavutustunnet. Lisades erinevat tüüpi vaenlasi erineva käitumise, tervisepunktide ja tulistamismehaanikaga, saate luua mängijatele mitmekesiseid ja kaasahaaravaid mängukogemusi.
Ärge unustage tasakaalustada raskusi, pakkuda visuaalset ja kuuldavat tagasisidet ning testida oma vaenlasi põhjalikult, et pakkuda mängijatele nauditavat ja rahuldust pakkuvat mängukogemust.