Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+1

Как сделать brickbattle в roblox studio?

Я видел как в том же doomspire brickbattle при выстреле по блокам они разлетаются. Если заанчорить блоки, то они станут не разрушаемыми, а если их разанчорить, то блоки будут просто падать.

По дате
По рейтингу
Аватар пользователя
Знаток
2мес

честно, я тоже сначала не понял как сделать чтоб блоки летели после выстрела, пробовала разные способы, пока не наткнулась на GGSel — там купила пару игр и подписок для вдохновения и чуть лучше поняла физику в играх. попробуй делать блоки с определёнными скриптами разрушения, а не просто отключать анчор. помогает реально!

Аватар пользователя
Мудрец
9мес

Лови

1234567891011121314
 local projectile = script.Parent 
 
projectile.Touched:Connect(function(hit) 
    if hit:IsA("BasePart") and not hit.Anchored then 
        local force = Instance.new("BodyVelocity") 
        force.Velocity = projectile.CFrame.LookVector * 50 -- Скорость и направление 
        force.MaxForce = Vector3.new(4000, 4000, 4000) -- Максимальная сила 
        force.Parent = hit 
 
        wait(0.1) 
        force:Destroy() 
    end 
    projectile:Destroy() 
end) 
Аватар пользователя
Просветленный
9мес

Создание Brickbattle в Roblox Studio — это интересный и творческий процесс. Вот пошаговое руководство по созданию Brickbattle, подобного Doomspire, с разрушаемыми блоками.

Шаг 1: Создание базы
Открытие Roblox Studio:

Запустите Roblox Studio и создайте новый проект, выбрав шаблон «Baseplate» (базовая плита).
Создание арены:

Постройте арену, используя блоки (Parts) для создания стен, полов и других структур. Для этого используйте вкладку Model и выберите Part.
Вы можете настроить размеры, цвета и материалы блоков в свойствах (Properties).
Шаг 2: Настройка блоков
Разрушаемые блоки:

Выберите блок, который вы хотите сделать разрушаемым.
Убедитесь, что у него отключена опция Anchored (заблокирован), чтобы он мог падать. Это можно сделать в свойствах блока.
Скрипты для разрушения:

Чтобы блоки разлетались при выстреле, вам нужно добавить скрипт. Создайте Script внутри блока или в ServerScriptService:
lua
Копировать код
local part = script.Parent -- Ссылка на блок

-- Функция, которая будет вызываться при столкновении с снарядом
local function onHit(hit)
if hit:IsA("Projectile") then -- Если объект — снаряд
-- Создаем разлетающиеся части
for i = 1, 5 do -- Количество кусочков
local newPart = part:Clone()
newPart.Position = part.Position -- Позиция нового блока
newPart.Anchored = false
newPart.Parent = workspace

-- Задаем физику для нового блока
local bodyVelocity = Instance.new ("BodyVelocity")
bodyVelocity.Velocity = Vector3.new (math.random(-50, 50), math.random(50, 100), math.random(-50, 50))
bodyVelocity.Parent = newPart

-- Удаляем новый блок через некоторое время
game:GetService("Debris"):AddItem(newPart, 5) -- Удалить через 5 секунд
end
part:Destroy() -- Удаляем оригинальный блок
end
end

part.Touched:Connect(onHit) -- Подключаем функцию к событию касания
Шаг 3: Создание снарядов
Создание снарядов:

Создайте новый Part, который будет вашим снарядом. Убедитесь, что он небольшой и имеет подходящий цвет.
Включите в свойствах снаряда опцию Anchored и установите его в значение false.
Скрипт для стрельбы:

Создайте новый LocalScript для стрельбы снарядами. Например, внутри StarterPlayerScripts:
lua
Копировать код
local player = game.Players.LocalPlayer
local mouse = player:GetMouse()

local function fire()
local projectile = Instance.new ("Part")
projectile.Size = Vector3.new (1, 1, 1) -- Размер снаряда
projectile.Position = player.Character.Head.Position + Vector3.new (0, 5, 0) -- Позиция запуска
projectile.Anchored = false
projectile.Parent = workspace

-- Устанавливаем физику для снаряда
local bodyVelocity = Instance.new ("BodyVelocity")
bodyVelocity.Velocity = (mouse.Hit.Position - projectile.Position).unit * 100 -- Устанавливаем скорость
bodyVelocity.Parent = projectile

-- Удаляем снаряд через некоторое время
game:GetService("Debris"):AddItem(projectile, 5)
end

-- Привязываем стрельбу к нажатию клавиши
mouse.Button1Down:Connect(fire)