Menu
CoddyTech

Una torre casuale

Lezione 3 di 18 del corso Gioco Roblox: Torre infinita di Coddy.

Una torre composta cinque volte dallo stesso piano non è divertente. ServerStorage.Stages contiene sette tipi: Steps, KillBricks, Conveyor, VanishingSteps, Bounce, Spinner e Lasers. Scegline uno a caso per ogni piano:

local all = stages:GetChildren()
local stage = all[math.random(1, #all)]

math.random(1, #all) è un numero intero da 1 al numero di piani, quindi ogni piano ha la stessa probabilità. Per ora, la maggior parte non fa nulla: spinner, nastri trasportatori e laser si attiveranno nel capitolo successivo.

Sopra l'ultimo piano va ServerStorage.Finish, una piattaforma dorata dove termina la salita. stack solleva già qualsiasi Model, quindi solleva anche Finish.

challenge icon

Sfida

Facile
  1. Scrivi pickStage(): restituisci un figlio casuale di stages.
  2. In buildTower, impila pickStage() invece di stages.Steps.
  3. Dopo il ciclo, impila ServerStorage.Finish in cima.

Premi Play alcune volte: ogni torre è diversa. Poi Check.

Provalo tu

local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Settings = require(game.ReplicatedStorage.Settings)

local stages = ServerStorage.Stages
local tower = nil

print("Each tower has " .. Settings.StageCount .. " stages")

-- Cada jugador recibe Wins en la tabla de clasificación
Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player

	local wins = Instance.new("IntValue")
	wins.Name = "Wins"
	wins.Parent = leaderstats
end)

-- Coloca una copia de un modelo encima de la torre; devuelve la copia y la nueva altura de la torre
local function stack(template, bottom)
	local copy = template:Clone()
	local box, size = copy:GetBoundingBox()
	local lift = bottom - (box.Position.Y - size.Y / 2)
	copy:PivotTo(copy:GetPivot() + Vector3.new(0, lift, 0))
	copy.Parent = tower
	return copy, bottom + size.Y
end

-- Construye una torre con la etapa Steps
local function buildTower()
	tower = Instance.new("Model")
	tower.Name = "Tower"
	tower.Parent = workspace
	local top = 0
	for i = 1, Settings.StageCount do
		local stage, newTop = stack(stages.Steps, top)
		top = newTop
	end
end

buildTower()
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Gioco Roblox: Torre infinita