Untitled
unknown
plain_text
a year ago
1.9 kB
6
Indexable
local player = game.Players.LocalPlayer local button = script.Parent -- Przyjmuję, że przycisk jest dzieckiem ScreenGui button.MouseButton1Click:Connect(function() local position = Vector3.new(-626, 76.226, -771) -- Współrzędne miejsca, w którym chcesz stworzyć kulę local ball = Instance.new("Part") ball.Name = "Ball" -- Dodaj nazwę kulki ball.Shape = Enum.PartType.Ball -- Ustaw kształt na kulę ball.Size = Vector3.new(2.3, 2.3, 2.3) -- Rozmiar kuli ball.Position = position ball.Anchored = false -- Ustawienie na false, aby kulka mogła się poruszać ball.BrickColor = BrickColor.new("Bright blue") -- Kolor kuli ball.Parent = workspace local isFirstBounce = true -- Zmienna, która śledzi, czy to jest pierwsze odbicie -- Utwórz nową funkcję, która obsługuje zdarzenie kolizji local function handleCollision(part) -- Sprawdź, czy kolizją jest kulka if part.Name == "Ball" then -- Pobierz normalną powierzchni kolizji local normal = (part.Position - part.Velocity).Unit -- Sprawdź, czy to jest pierwsze odbicie if isFirstBounce then -- Wygeneruj losowy kierunek w lewo lub prawo local randomDirection = math.random() > 0.5 and Vector3.new(0, 0, 1) or Vector3.new(0, 0, -1) part.Velocity = (part.Velocity - 2.1 * (part.Velocity:Dot(normal)) * normal + randomDirection) * 0.9 isFirstBounce = false -- Ustaw, że to nie jest już pierwsze odbicie else -- Odbij kulę, zmieniając jej kierunek part.Velocity = (part.Velocity - 2.1 * (part.Velocity:Dot(normal)) * normal) * 0.9 end end end -- Dodaj funkcję obsługującą zdarzenie kolizji do wszystkich elementów w workspace for _, obj in ipairs(workspace:GetDescendants()) do if obj:IsA("BasePart") and obj ~= ball then obj.Touched:Connect(handleCollision) end end end)
Editor is loading...
Leave a Comment