Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста, хочу сделать разгон персонажа в роблокс студио

Алексей Беляев Ученик (178), на голосовании 5 дней назад
То есть сначала, если игрок начинает ходить, то у него маленькая скорость. Потом постепенно у него начнет увеличиваться скорость, и он станет быстрым. Если он остановится, скорость сбросится. Если не понятно, система бега в Untitled Tag Game
Голосование за лучший ответ
Рустам Абдрашитов Мудрец (10562) 1 месяц назад
1. Откройте Roblox Studio и создайте новый скрипт в StarterPlayerScripts.

2. Вставьте следующий код в ваш скрипт:
 local player = game.Players.LocalPlayer 
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")

local initialWalkSpeed = 8
local maxWalkSpeed = 24
local accelerationRate = 0.5
local decelerationRate = 2

local isMoving = false
local currentSpeed = initialWalkSpeed

humanoid.WalkSpeed = initialWalkSpeed

local function updateSpeed()
if isMoving then
if currentSpeed < maxWalkSpeed then
currentSpeed = math.min(currentSpeed + accelerationRate, maxWalkSpeed)
end
else
if currentSpeed > initialWalkSpeed then
currentSpeed = math.max(currentSpeed - decelerationRate, initialWalkSpeed)
end
end
humanoid.WalkSpeed = currentSpeed
end

local function onInputBegan(input, gameProcessed)
if gameProcessed then return end
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
if key == Enum.KeyCode.W or key == Enum.KeyCode.A or key == Enum.KeyCode.S or key == Enum.KeyCode.D then
isMoving = true
end
end
end

local function onInputEnded(input, gameProcessed)
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
if key == Enum.KeyCode.W or key == Enum.KeyCode.A or key == Enum.KeyCode.S or key == Enum.KeyCode.D then
isMoving = false
end
end
end

game:GetService("UserInputService").InputBegan:Connect(onInputBegan)
game:GetService("UserInputService").InputEnded:Connect(onInputEnded)

game:GetService("RunService").RenderStepped:Connect(updateSpeed)

### Пояснения:
- **initialWalkSpeed**: Начальная скорость персонажа.
- **maxWalkSpeed**: Максимальная скорость, которую персонаж может достичь.
- **accelerationRate**: Насколько быстро персонаж будет ускоряться.
- **decelerationRate**: Насколько быстро персонаж будет замедляться до начальной скорости.

Этот скрипт увеличивает скорость персонажа, когда он движется, и уменьшает её, когда он останавливается. Вы можете настроить параметры `initialWalkSpeed`, `maxWalkSpeed`, `accelerationRate` и `decelerationRate` под свои нужды.
Похожие вопросы