← Miongozo yote
Mwongozo 4

Tengeneza tower defense yako ya kwanza

Maadui wanatembea kando ya njia kuelekea kwenye base yako, na mnara unampiga yule aliye karibu zaidi.

BureDakika 60 · Anayeanza · Roblox Studio
1
Hatua 1 / 8

Andaa place

  1. Fungua Roblox Studio, bonyeza New Experience kisha chagua kiolezo cha Baseplate.
  2. Ndani ya Explorer elekeza kipanya juu ya Workspace, bonyeza + kisha ongeza Folder. Ipe jina Path.
  3. Ongeza Folder ya pili kwenye Workspace kisha ipe jina Enemies. Iache tupu. Maadui watatokea ndani yake wakati wa mchezo.

Maelezo zaidi

  • Kiolezo cha Baseplate kiko kwenye orodha ya violezo kwenye skrini ya kuanzia.
  • Ukibonyeza +, andika neno Folder ili kuipata haraka. Badilisha jina la folda kwa F2.
  • Majina lazima yawe Path na Enemies kabisa, kwa herufi kubwa mwanzoni. Script zinatafuta majina haya.
  • Kwenye Mac, tumia kitufe cha Cmd kila mara mwongozo huu unaposema Ctrl.
Hatua hii haifanyi kazi kwangu

Angalia mambo haya matatu kwanza

  • Jina la kila Part na script liko sawa kabisa na lilivyo kwenye mwongozo, pamoja na herufi kubwa.
  • Script iko ndani ya kitu sahihi. Angalia lebo iliyo juu ya kisanduku cha msimbo.
  • Fungua dirisha la Output kutoka menyu ya Window. Maandishi mekundu yanaonyesha script na mstari wenye tatizo.

Bado umekwama? Tuandikie →

2
Hatua 2 / 8

Tengeneza njia

  1. Ongeza Part. Weka Size kuwa 6, 1, 6, washa Anchored kisha iburute ndani ya folda ya Path. Ipe jina 1.
  2. Inakili kwa Ctrl+D kisha usogeze nakala takriban studs 30 mbali. Ipe jina 2.
  3. Rudia hadi uwe na Part 5 zenye majina 1, 2, 3, 4 na 5. Ziweke ili njia iwe na mikunjo michache.
  4. Maadui watatoka 1 kwenda 2 kwenda 3 na kuendelea, kwa mstari ulionyooka kati ya kila jozi.

Maelezo zaidi

  • Ili kuweka Part ndani ya folda, buruta jina lake kwenye Explorer hadi juu ya jina Path.
  • Nakala iliyotengenezwa kwa Ctrl+D tayari iko ndani ya folda ya Path. Unahitaji tu kuisogeza na kuibadilisha jina.
  • Majina ni namba tu: 1, 2, 3, 4, 5. Hakuna herufi wala nafasi.
  • Acha vipande vikiwa vimelala sakafuni. Maadui wanaelea studs 2 juu ya vipande hivyo.
Kosa linalotokea mara nyingi. Kuruka namba. Part 3 ikikosekana, maadui wanasimama kwenye Part 2 na script inaonyesha hitilafu.
Hatua hii haifanyi kazi kwangu

Angalia mambo haya matatu kwanza

  • Jina la kila Part na script liko sawa kabisa na lilivyo kwenye mwongozo, pamoja na herufi kubwa.
  • Script iko ndani ya kitu sahihi. Angalia lebo iliyo juu ya kisanduku cha msimbo.
  • Fungua dirisha la Output kutoka menyu ya Window. Maandishi mekundu yanaonyesha script na mstari wenye tatizo.

Bado umekwama? Tuandikie →

3
Hatua 3 / 8

Tengeneza adui

  1. Ongeza Part. Weka Shape kuwa Ball na Size kuwa 3, 3, 3, kisha ipake rangi nyekundu. Washa Anchored, zima CanCollide kisha ipe jina Enemy.
  2. Elekeza kipanya juu ya Enemy, bonyeza + kisha ongeza IntValue. Ipe jina Health na uweke Value yake kuwa 3.
  3. Buruta Enemy hadi ServerStorage. Sasa ni kiolezo. Mchezo utatengeneza nakala zake.

Maelezo zaidi

  • Shape ni orodha kwenye Properties. Ibonyeze kisha chagua Ball.
  • CanCollide ni kisanduku cha kuteua kwenye Properties. Bila tiki, wachezaji na Part nyingine hupita ndani ya adui.
  • Ukibonyeza +, andika IntValue kuipata. Bonyeza IntValue mpya, kisha ubadilishe Name kuwa Health na Value kuwa 3 kwenye Properties.
  • Baada ya kuburuta Enemy hadi ServerStorage, inatoweka kwenye Viewport. Hiyo ni sahihi.
Kidokezo. Adui ana Anchored kwa sababu script ndiyo inamsogeza. Part zenye Anchored hazijali mvuto wala kusukumwa.
Hatua hii haifanyi kazi kwangu

Angalia mambo haya matatu kwanza

  • Jina la kila Part na script liko sawa kabisa na lilivyo kwenye mwongozo, pamoja na herufi kubwa.
  • Script iko ndani ya kitu sahihi. Angalia lebo iliyo juu ya kisanduku cha msimbo.
  • Fungua dirisha la Output kutoka menyu ya Window. Maandishi mekundu yanaonyesha script na mstari wenye tatizo.

Bado umekwama? Tuandikie →

4
Hatua 4 / 8

Tengeneza base

  1. Ongeza Part kubwa mwishoni mwa njia, kando ya Part 5. Washa Anchored kisha ipe jina Base.
  2. Elekeza kipanya juu ya Base, bonyeza + kisha ongeza IntValue. Ipe jina Health na uweke Value yake kuwa 10.
  3. Ongeza BillboardGui kwenye Base yenye Size {0, 200}, {0, 50} na StudsOffset 0, 8, 0. Ongeza TextLabel ndani yake yenye Size {1, 0}, {1, 0} na TextScaled ikiwa imewashwa.
  4. Ongeza Script kwenye Base kisha ubandike msimbo huu.
Base > Script
local base = script.Parent
local health = base.Health
local label = base.BillboardGui.TextLabel

local function update()
	if health.Value > 0 then
		label.Text = "Base: " .. health.Value
	else
		label.Text = "Game over"
	end
end

health.Changed:Connect(update)
update()

Kila sehemu hufanya nini

  • Changed hufanya kazi kila mara thamani ya Health inapobadilika.
  • Function ya update inaandika namba mpya kwenye lebo iliyo juu ya base.
  • Health ikifika 0, lebo inaonyesha Game over na script ya Waves inaacha kutuma maadui.

Maelezo zaidi

  • Ukubwa wa 10, 10, 10 ni mwanzo mzuri. Rangi yoyote inafaa.
  • Health ya base ni kitu tofauti na Health ya adui. Kila moja iko ndani ya Part yake.
  • Kwa Size na StudsOffset, andika namba kama zilivyoonyeshwa kabisa, pamoja na mabano na koma, kisha ubonyeze Enter.
  • Kujaribu: bonyeza F5. Lebo iliyo juu ya base inaonyesha Base: 10.
Hatua hii haifanyi kazi kwangu

Angalia mambo haya matatu kwanza

  • Jina la kila Part na script liko sawa kabisa na lilivyo kwenye mwongozo, pamoja na herufi kubwa.
  • Script iko ndani ya kitu sahihi. Angalia lebo iliyo juu ya kisanduku cha msimbo.
  • Fungua dirisha la Output kutoka menyu ya Window. Maandishi mekundu yanaonyesha script na mstari wenye tatizo.

Bado umekwama? Tuandikie →

5
Hatua 5 / 8

Tuma mawimbi

  1. Elekeza kipanya juu ya ServerScriptService, bonyeza + kisha ongeza Script. Ipe jina Waves.
  2. Futa mstari ulio tayari hapo kisha ubandike msimbo huu.
  3. Bonyeza Play. Kila sekunde 3 mpira mwekundu unatokea kwenye Part 1 na kusogea kando ya njia. Unapofika mwisho, base inapoteza health 1.
ServerScriptService > Waves
local TweenService = game:GetService("TweenService")
local ServerStorage = game:GetService("ServerStorage")

local path = workspace:WaitForChild("Path")
local enemies = workspace:WaitForChild("Enemies")
local base = workspace:WaitForChild("Base")
local SPEED = 8

local function walk(enemy)
	for i = 2, #path:GetChildren() do
		local target = path[tostring(i)].Position + Vector3.new(0, 2, 0)
		local distance = (target - enemy.Position).Magnitude
		local info = TweenInfo.new(distance / SPEED, Enum.EasingStyle.Linear)
		local tween = TweenService:Create(enemy, info, {Position = target})
		tween:Play()
		tween.Completed:Wait()
		if not enemy.Parent then return end
	end

	base.Health.Value = math.max(0, base.Health.Value - 1)
	enemy:Destroy()
end

while base.Health.Value > 0 do
	task.wait(3)

	local enemy = ServerStorage.Enemy:Clone()
	enemy.Position = path["1"].Position + Vector3.new(0, 2, 0)
	enemy.Parent = enemies
	task.spawn(walk, enemy)
end

Kila sehemu hufanya nini

  • Clone hutengeneza nakala ya kiolezo cha Enemy kutoka ServerStorage.
  • Function ya walk inamsogeza adui kwenye kila Part ya njia kwa mpangilio. distance / SPEED huweka kasi ile ile kwenye sehemu ndefu na fupi.
  • task.spawn inamwezesha kila adui atembee peke yake, ili mzunguko uendelee kutuma wapya.

Maelezo zaidi

  • Script inafunguka kwenye kichupo kipya. Bonyeza ndani ya msimbo, bonyeza Ctrl+A kisha Ctrl+V kubadilisha kila kitu.
  • Maadui wanatokea ndani ya folda ya Enemies mchezo unapoendeshwa. Unaweza kuwatazama kwenye Explorer.
  • Bila mnara bado, kila adui anafika kwenye base. Baada ya maadui 10 lebo inaonyesha Game over na hakuna maadui wengine wanaokuja.
  • Maandishi mekundu kwenye Output kuhusu jina linalokosekana yanamaanisha Part ya njia au folda ina jina lisilo sahihi.
Hatua hii haifanyi kazi kwangu

Angalia mambo haya matatu kwanza

  • Jina la kila Part na script liko sawa kabisa na lilivyo kwenye mwongozo, pamoja na herufi kubwa.
  • Script iko ndani ya kitu sahihi. Angalia lebo iliyo juu ya kisanduku cha msimbo.
  • Fungua dirisha la Output kutoka menyu ya Window. Maandishi mekundu yanaonyesha script na mstari wenye tatizo.

Bado umekwama? Tuandikie →

6
Hatua 6 / 8

Tengeneza mnara

  1. Ongeza Part karibu na mkunjo wa njia. Weka Size kuwa 4, 8, 4, washa Anchored kisha ipe jina Tower.
  2. Ongeza Script kwenye Tower kisha ubandike msimbo huu.
  3. Bonyeza Play. Mara moja kwa sekunde mnara unampiga adui aliye karibu zaidi ndani ya masafa. Adui anameta nyeupe, na baada ya mapigo 3 anatoweka.
Tower > Script
local tower = script.Parent
local enemies = workspace:WaitForChild("Enemies")
local RANGE = 25
local DAMAGE = 1

while true do
	task.wait(1)

	local target = nil
	local closest = RANGE
	for _, enemy in ipairs(enemies:GetChildren()) do
		local distance = (enemy.Position - tower.Position).Magnitude
		if distance < closest then
			target = enemy
			closest = distance
		end
	end

	if target then
		target.Health.Value -= DAMAGE
		if target.Health.Value <= 0 then
			target:Destroy()
		else
			target.Color = Color3.new(1, 1, 1)
			task.wait(0.1)
			target.Color = Color3.fromRGB(255, 60, 60)
		end
	end
end

Kila sehemu hufanya nini

  • Mzunguko unapima umbali kutoka kwenye mnara hadi kwa kila adui na kukumbuka aliye karibu zaidi.
  • RANGE ni umbali ambao mnara unaweza kufikia. DAMAGE ni health kiasi gani pigo moja linaondoa.
  • Health inapofika 0, Destroy inamwondoa adui.

Maelezo zaidi

  • Weka mnara studs 8 hadi 12 kutoka kwenye njia. Masafa ni studs 25 kila upande.
  • Mnara mmoja unachukua sekunde 3 kwa adui mmoja, na adui mpya anakuja kila sekunde 3. Kwa hiyo mnara mmoja unaweza kushikilia njia ikiwa maadui wanabaki ndani ya masafa kwa muda wa kutosha.
  • Mwanga mweupe unadumu sehemu ya kumi ya sekunde. Tazama kwa makini ili kuuona.
  • Kwa mnara wa pili, chagua Tower kisha ubonyeze Ctrl+D, halafu usogeze nakala. Script inakuja nayo.
Kidokezo. Mnara unafanya kazi vizuri zaidi kando ya mkunjo, kwa sababu maadui wanakaa ndani ya masafa kwa muda mrefu zaidi hapo.
Hatua hii haifanyi kazi kwangu

Angalia mambo haya matatu kwanza

  • Jina la kila Part na script liko sawa kabisa na lilivyo kwenye mwongozo, pamoja na herufi kubwa.
  • Script iko ndani ya kitu sahihi. Angalia lebo iliyo juu ya kisanduku cha msimbo.
  • Fungua dirisha la Output kutoka menyu ya Window. Maandishi mekundu yanaonyesha script na mstari wenye tatizo.

Bado umekwama? Tuandikie →

7
Hatua 7 / 8

Jaribu na urekebishe usawa

  1. Bonyeza F5 kisha utazame mawimbi machache.
  2. Ikiwa hakuna adui anayefika kwenye base, mchezo ni rahisi mno. Base ikipoteza health yote haraka, ni mgumu mno.
  3. Urekebishe kwa namba tatu: muda wa kusubiri kwenye Waves, thamani ya Health ya adui na DAMAGE ya mnara.
  4. Bonyeza Shift+F5 ili kusimamisha. Kitu kikishindwa, fungua dirisha la Output kutoka menyu ya Window kisha usome maandishi mekundu.

Maelezo zaidi

  • Badilisha namba moja tu kila mara, kisha ucheze tena. La sivyo hujui ni badiliko lipi lilisaidia.
  • Muda wa kusubiri ni namba iliyo ndani ya task.wait(3) karibu na mwisho wa script ya Waves. Namba ndogo zaidi inatuma maadui kwa kasi zaidi.
  • Health ya adui iko kwenye ServerStorage, ndani ya Enemy. DAMAGE ya mnara iko juu kabisa ya script ya Tower.
  • Lengo zuri la kwanza: base ipone dakika mbili ikiwa na minara miwili.
Hatua hii haifanyi kazi kwangu

Angalia mambo haya matatu kwanza

  • Jina la kila Part na script liko sawa kabisa na lilivyo kwenye mwongozo, pamoja na herufi kubwa.
  • Script iko ndani ya kitu sahihi. Angalia lebo iliyo juu ya kisanduku cha msimbo.
  • Fungua dirisha la Output kutoka menyu ya Window. Maandishi mekundu yanaonyesha script na mstari wenye tatizo.

Bado umekwama? Tuandikie →

8
Hatua 8 / 8

Uchapishe

  1. Chagua File → Publish to Roblox. Ipe mchezo jina na maelezo mafupi.
  2. Kwenye tovuti ya Creator Hub fungua mchezo wako kisha ujaze dodoso la Maturity.
  3. Weka mchezo kuwa Public kisha mtumie rafiki kiungo.

Maelezo zaidi

  • Mara ya kwanza unapochapisha, Studio inakuuliza jina na maelezo. Bonyeza Create.
  • Creator Hub ni tovuti ya create.roblox.com. Ingia kwa akaunti ile ile kisha ubonyeze mchezo wako kwenye orodha.
  • Roblox inaweza kuomba zaidi kabla mchezo haujawa wa umma, kwa mfano uthibitisho wa umri kwenye akaunti. Ukurasa unakuambia kipi kinakosekana.
  • Ikiwa una umri chini ya miaka 18, fanya hatua hii pamoja na mzazi.
Kidokezo. Mwonyeshe rafiki mchezo na umuulize swali moja: ulikuwa rahisi mno au mgumu mno? Kisha badilisha namba moja na ujaribu tena.
Hatua hii haifanyi kazi kwangu

Angalia mambo haya matatu kwanza

  • Jina la kila Part na script liko sawa kabisa na lilivyo kwenye mwongozo, pamoja na herufi kubwa.
  • Script iko ndani ya kitu sahihi. Angalia lebo iliyo juu ya kisanduku cha msimbo.
  • Fungua dirisha la Output kutoka menyu ya Window. Maandishi mekundu yanaonyesha script na mstari wenye tatizo.

Bado umekwama? Tuandikie →

Sasa ubadilishe mwenyewe

  • Ongeza mnara wa pili wenye masafa mafupi na DAMAGE 2.
  • Fanya mawimbi yawe ya haraka zaidi kadiri muda unavyopita. Kidokezo: weka muda wa kusubiri kwenye variable kisha uupunguze kidogo baada ya kila adui.
  • Mpe base health 20 na ufanye kila adui aondoe 2.