スクリプトを使ったパーツを等速直線運動で動かす

等速直線運動とは

速度も向きも変わらない、一定方向に一定の速度で移動する運動のこと

実装方法

os.clock()を用いて毎フレームの経過時間を求め速度 x 時間で移動距離を求める。

求めた距離を現在の位置に足し算する。

パーツの作成

等速直線運動させたいパーツを作成、その配下にスクリプトを作成し、名前をUniformLinearMotionとする

スクリプトを以下のように編集する

local part = script.Parent
local lastTime
-- 移動スピード
local speed = 5
-- 移動方向
local direction = Vector3.new(0, 0, 1)
while true do
lastTime = os.clock()
wait()
local deltaTime = os.clock() - lastTime
-- 経過した時間から移動距離を計算し、現在の位置に足す
part.Position += direction * speed * deltaTime
lastTime = os.clock()
end
local part = script.Parent local lastTime -- 移動スピード local speed = 5 -- 移動方向 local direction = Vector3.new(0, 0, 1) while true do lastTime = os.clock() wait() local deltaTime = os.clock() - lastTime -- 経過した時間から移動距離を計算し、現在の位置に足す part.Position += direction * speed * deltaTime lastTime = os.clock() end
local part = script.Parent
local lastTime

-- 移動スピード
local speed = 5

-- 移動方向
local direction = Vector3.new(0, 0, 1)

while true do
	lastTime = os.clock()
	wait()
	local deltaTime = os.clock() - lastTime
	-- 経過した時間から移動距離を計算し、現在の位置に足す
	part.Position += direction * speed * deltaTime
	lastTime = os.clock()
end

結果

関連