← Wszystkie poradniki
Poradnik 1

Zbuduj swoje pierwsze obby

Tor przeszkód z lawą, punktami kontrolnymi, znikającą platformą i metą.

Za darmo45 minut · Dla początkujących · Roblox Studio
1
Krok 1 / 10

Utwórz nowe miejsce

  1. Otwórz Roblox Studio i zaloguj się.
  2. Kliknij New Experience i wybierz szablon Baseplate.
  3. Masz teraz płaską szarą podłogę. Twój tor będzie na niej stał.

Więcej szczegółów

  • Roblox Studio to darmowy program na Windows i Mac. Jeśli jeszcze go nie masz, pobierz go z create.roblox.com i zaloguj się na swoje konto Roblox.
  • Szablon Baseplate jest na liście szablonów na ekranie startowym. To ten z pustą szarą podłogą.
  • Miejsce otwiera się w karcie. Nazwa karty to nazwa twojego miejsca.
  • Na Mac używaj klawisza Cmd za każdym razem, gdy poradnik mówi Ctrl.
Wskazówka. Zapisuj często przez File → Save to Roblox. Studio trzyma starsze wersje, więc zawsze możesz do nich wrócić.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

2
Krok 2 / 10

Poznaj trzy panele

  1. Duży widok 3D na środku to Viewport. To jest świat twojej gry.
  2. Explorer pokazuje listę wszystkich obiektów w grze. Properties pokazuje ustawienia zaznaczonego obiektu.
  3. Ruch kamery: przytrzymaj prawy przycisk myszy, żeby się rozglądać, lataj klawiszami W A S D, a w dół i w górę przesuwaj się klawiszami Q i E.
  4. Zgubiłeś kamerę? Zaznacz dowolny klocek i naciśnij F. Kamera skoczy do niego.

Więcej szczegółów

  • Explorer i Properties są po prawej stronie okna. Explorer jest na górze, a Properties pod nim.
  • Kliknij obiekt w Viewport, a zostanie podświetlony także w Explorer. Kliknij jego nazwę w Explorer, a zostanie zaznaczony w Viewport.
  • Płaska platforma z okrągłym symbolem to SpawnLocation. Gracze pojawiają się na niej na początku gry. Zostaw ją tam, gdzie jest.
  • Zrobiłeś błąd? Naciśnij Ctrl+Z, żeby cofnąć ostatnią rzecz. Naciśnij jeszcze raz, żeby cofnąć o jeden krok więcej.
Wskazówka. Jeśli brakuje któregoś panelu, otwórz go z menu Window. W starszych wersjach jest na karcie View.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

3
Krok 3 / 10

Zbuduj platformę startową

  1. Na karcie Home kliknij Part. Pojawi się szary klocek.
  2. W Properties ustaw Size na 12, 1, 12 i zmień nazwę klocka na Start.
  3. Włącz Anchored. Zakotwiczony klocek nigdy nie spada i się nie rusza.
  4. Wybierz ulubiony kolor przyciskiem Color.

Więcej szczegółów

  • Nowy klocek pojawia się przed kamerą, a jego nazwa w Explorer to Part.
  • Żeby zmienić nazwę, kliknij go raz w Explorer i naciśnij F2, wpisz Start i naciśnij Enter.
  • W Properties kliknij pole Size, wpisz 12, 1, 12 i naciśnij Enter. Te trzy liczby to szerokość, wysokość i głębokość.
  • Anchored to pole wyboru w Properties. Ptaszek oznacza, że opcja jest włączona.
  • Narzędziem Move (Ctrl+2) postaw platformę obok SpawnLocation, żeby gracze mogli na nią wejść.
Częsty błąd. Zapomnienie o Anchored. Klocek wygląda dobrze, gdy edytujesz, a potem spada w przepaść, gdy gra się zaczyna.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

4
Krok 4 / 10

Dodaj skoki

  1. Zaznacz Start i naciśnij Ctrl+D, żeby go skopiować. Przesuń kopię do przodu narzędziem Move (Ctrl+2).
  2. Zmniejsz ją narzędziem Scale (Ctrl+3). Dobrze działa rozmiar 6, 1, 6.
  3. Zostaw między platformami przerwę od 5 do 7 studs. Powtarzaj, aż będziesz mieć od 6 do 8 platform.
  4. Podnieś niektóre platformy trochę wyżej, żeby tor wspinał się w górę.

Więcej szczegółów

  • Kopia pojawia się dokładnie na oryginale, więc wygląda, jakby nic się nie stało. Przeciągnij niebieską lub czerwoną strzałkę narzędzia Move, a kopia się wysunie.
  • Narzędziem Scale przeciągnij jedną z małych kulek na klocku, żeby zmienić jego rozmiar. Możesz też wpisać rozmiar w Properties.
  • Pole Position w Properties pokazuje, gdzie stoi klocek. Porównaj liczby dwóch platform, żeby zmierzyć przerwę między nimi.
  • Każda platforma musi mieć włączone Anchored. Kopie zakotwiczonego klocka też są zakotwiczone, więc sprawdzaj to tylko przy klockach, które zrobiłeś od nowa.
  • Naciśnij F5, żeby sam wypróbować skoki, a Shift+F5, żeby przerwać. Rób tak po każdych dwóch lub trzech platformach.
Wskazówka. Zwykła postać skacze na 7.2 studs w górę i pokonuje około 8 studs do przodu. Przerwy większe niż 8 studs są prawie niemożliwe do przeskoczenia.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

5
Krok 5 / 10

Dodaj lawę, która resetuje gracza

  1. Dodaj nowy Part między dwiema platformami. Zrób go czerwonym, ustaw Material na Neon, włącz Anchored i nazwij go Lava.
  2. W Explorer najedź na Lava, kliknij przycisk + i wybierz Script.
  3. Usuń linijkę, która już tam jest, i wklej ten kod.
Lava > Script
local lava = script.Parent

lava.Touched:Connect(function(hit)
	local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
	if humanoid then
		humanoid.Health = 0
	end
end)

Co robi każda część

  • script.Parent to klocek, w którym jest skrypt. Tutaj jest to lawa.
  • Touched uruchamia się za każdym razem, gdy coś dotknie klocka. hit to to, co go dotknęło, na przykład stopa.
  • hit.Parent to cała postać. Jeśli ma Humanoid, to jest to gracz, więc skrypt ustawia Health na 0.

Więcej szczegółów

  • Material to lista w Properties. Kliknij ją i wybierz Neon. Neon sprawia, że klocek świeci.
  • Gdy dodasz Script, otworzy się w nowej karcie z jedną linijką kodu. Kliknij w kodzie, naciśnij Ctrl+A, żeby zaznaczyć wszystko, i Ctrl+V, żeby wkleić na wierzch.
  • Wróć do swojego świata, klikając kartę z nazwą twojego miejsca.
  • Test: naciśnij F5 i wejdź w lawę. Twoja postać się rozpada i wraca na start.
  • Zrób lawę szeroką i płaską, na przykład Size 12, 1, 6, i połóż ją trochę niżej niż platformy, żeby nieudany skok kończył się w niej.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

6
Krok 6 / 10

Dodaj punkty kontrolne

  1. W Explorer najedź na Workspace, kliknij + i dodaj Folder. Nazwij go Checkpoints.
  2. Ustaw trzy zakotwiczone klocki wzdłuż toru i przeciągnij je do folderu. Nazwij je 1, 2 i 3. Klocek 1 stoi na platformie startowej.
  3. Najedź na ServerScriptService, kliknij + i dodaj Script. Wklej ten kod.
ServerScriptService > Script
local Players = game:GetService("Players")
local checkpoints = workspace:WaitForChild("Checkpoints")

Players.PlayerAdded:Connect(function(player)
	local stats = Instance.new("Folder")
	stats.Name = "leaderstats"
	stats.Parent = player

	local stage = Instance.new("IntValue")
	stage.Name = "Stage"
	stage.Value = 1
	stage.Parent = stats

	player.CharacterAdded:Connect(function(character)
		local root = character:WaitForChild("HumanoidRootPart")
		local point = checkpoints:FindFirstChild(tostring(stage.Value))
		if point then
			task.wait(0.1)
			root.CFrame = point.CFrame + Vector3.new(0, 4, 0)
		end
	end)
end)

for _, point in ipairs(checkpoints:GetChildren()) do
	point.Touched:Connect(function(hit)
		local player = Players:GetPlayerFromCharacter(hit.Parent)
		local stats = player and player:FindFirstChild("leaderstats")
		if not stats then return end

		local number = tonumber(point.Name)
		if number == stats.Stage.Value + 1 then
			stats.Stage.Value = number
		end
	end)
end

Co robi każda część

  • leaderstats to specjalna nazwa folderu. Wartości w środku pojawiają się na liście graczy, więc każdy widzi swój Stage.
  • Gdy postać się pojawia, skrypt przenosi ją do punktu kontrolnego, którego nazwa jest taka sama jak Stage gracza.
  • Dotknięcie punktu kontrolnego podnosi Stage tylko wtedy, gdy jest to następny punkt. Dzięki temu gracze nie mogą pomijać etapów.

Więcej szczegółów

  • Folder trzyma inne obiekty, tak jak folder na komputerze. Sam z siebie nic nie robi w grze.
  • Żeby przeciągnąć klocek do folderu, przeciągnij jego nazwę w Explorer na nazwę Checkpoints i puść. Klocek stoi wtedy o jeden krok w prawo, pod folderem.
  • Zrób punkty kontrolne cienkie i szerokie, na przykład Size 6, 0.4, 6, i połóż je na platformach. Inny kolor pomaga graczom je zauważyć.
  • Test: naciśnij F5 i spójrz na listę graczy w prawym górnym rogu. Pokazuje Stage 1. Dotknij punktu kontrolnego 2, a zmieni się na 2.
  • Punkty kontrolne trzeba dotykać po kolei. Dotknięcie 3 przed 2 nic nie daje.
Częsty błąd. Nazwanie klocków Checkpoint1 albo Jeden. Skrypt szuka dokładnie nazw 1, 2 i 3.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

7
Krok 7 / 10

Zrób platformę, która znika

  1. Wybierz jedną platformę w środku toru i dodaj do niej Script.
  2. Wklej ten kod i naciśnij Play, żeby zobaczyć, jak mruga.
Platform > Script
local platform = script.Parent

while true do
	task.wait(2)
	platform.Transparency = 1
	platform.CanCollide = false

	task.wait(2)
	platform.Transparency = 0
	platform.CanCollide = true
end

Co robi każda część

  • while true do powtarza się w nieskończoność.
  • task.wait(2) robi pauzę na 2 sekundy.
  • Transparency 1 sprawia, że klocek jest niewidzialny. CanCollide false pozwala graczom przez niego przepaść.

Więcej szczegółów

  • Żeby dodać Script, najedź na nazwę platformy w Explorer, kliknij + i wybierz Script, tak jak przy lawie.
  • Platforma jest widoczna przez 2 sekundy i znika na 2 sekundy. Gracze muszą dobrze wymierzyć skok.
  • Pierwsza liczba mówi, jak długo platforma jest widoczna. Druga mówi, jak długo jej nie ma.
  • Nie wkładaj tego skryptu do platformy startowej ani do punktu kontrolnego, bo gracze spadną zaraz po przybyciu.
Wskazówka. Zmień te dwie liczby, żeby platforma mrugała szybciej albo wolniej.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

8
Krok 8 / 10

Zbuduj linię mety

  1. Postaw duży zakotwiczony klocek na końcu toru i nazwij go Finish. Zrób go złotym, żeby gracze widzieli cel.
  2. Dodaj do Finish Script i wklej ten kod.
Finish > Script
local Players = game:GetService("Players")
local finish = script.Parent
local cooldown = {}

finish.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	local stats = player and player:FindFirstChild("leaderstats")
	if not stats or cooldown[player] then return end

	cooldown[player] = true
	stats.Stage.Value = 1
	player:LoadCharacter()

	task.wait(2)
	cooldown[player] = nil
end)

Co robi każda część

  • GetPlayerFromCharacter znajduje gracza, który dotknął mety.
  • Tabela cooldown nie pozwala, żeby kod uruchomił się wiele razy w tej samej sekundzie.
  • Stage wraca do 1, a LoadCharacter wysyła gracza na start, żeby mógł przejść tor jeszcze raz.

Więcej szczegółów

  • Żeby była złota, kliknij pole Color w Properties i wybierz żółty. Material Neon sprawia, że błyszczy.
  • Size 12, 1, 12 to dobra meta. Postaw ją po ostatnim skoku, trochę wyżej niż resztę.
  • Test: naciśnij F5, przejdź cały tor i stań na złotym klocku. Wracasz na start, a Stage znów pokazuje 1.
  • Przerwa 2 sekundy jest po to, że jeden krok dotyka klocka wiele razy.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

9
Krok 9 / 10

Przetestuj swoją grę

  1. Naciśnij F5, żeby zagrać. Przejdź cały tor od startu do mety.
  2. Wpadnij do lawy specjalnie. Powinieneś wrócić do ostatniego punktu kontrolnego.
  3. Naciśnij Shift+F5, żeby zatrzymać grę.
  4. Otwórz okno Output z menu Window. Czerwony tekst oznacza, że skrypt ma błąd, i pokazuje numer linijki.

Więcej szczegółów

  • F5 uruchamia grę z twoją postacią w środku. Pasek narzędzi zmienia się, gdy gra działa.
  • Zmiany zrobione, gdy gra działa, przepadają po zatrzymaniu. Zawsze najpierw naciśnij Shift+F5, a potem edytuj.
  • W oknie Output kliknij czerwoną linijkę, a Studio otworzy skrypt w miejscu błędu.
  • Gdy coś nie działa, sprawdź trzy rzeczy: nazwę klocka, miejsce skryptu i to, czy Anchored jest włączone.
Częsty błąd. Platforma spada, gdy gra się zaczyna: Anchored jest wyłączone. Nic się nie dzieje po dotknięciu klocka: skrypt jest w złym obiekcie albo w nazwie jest literówka.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

10
Krok 10 / 10

Opublikuj grę

  1. Wybierz File → Publish to Roblox. Nadaj grze nazwę i krótki opis.
  2. Na stronie Creator Hub otwórz swoją grę i wypełnij ankietę Maturity. Roblox wymaga jej, zanim inni będą mogli grać.
  3. Ustaw grę jako Public i wyślij link koledze lub koleżance.

Więcej szczegółów

  • Gdy publikujesz pierwszy raz, Studio pyta o nazwę i opis. Kliknij Create. Potem File → Publish to Roblox wysyła twoje najnowsze zmiany.
  • Creator Hub to strona create.roblox.com. Zaloguj się na to samo konto i kliknij swoją grę na liście.
  • Ankieta Maturity pyta, co jest w twojej grze. Odpowiadaj uczciwie. W takim obby nie ma przemocy ani nic strasznego.
  • Roblox może poprosić o więcej, zanim gra będzie publiczna, na przykład o weryfikację wieku na koncie. Strona powie ci, czego brakuje.
  • Jeśli masz mniej niż 18 lat, zrób ten krok razem z rodzicem.
Wskazówka. Poproś kogoś, żeby zagrał, a ty patrz. Miejsca, w których ta osoba utknie, trzeba poprawić w pierwszej kolejności.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

Teraz zmień to sam

  • Dodaj czwarty punkt kontrolny. Jak musisz go nazwać?
  • Zrób trzy znikające platformy, które mrugają w różnym tempie.
  • Zmień lawę tak, żeby zabierała tylko połowę zdrowia. Podpowiedź: humanoid.Health = humanoid.Health - 50