2010-11-24 4 views

答えて

0

「別のものになる」とはどういう意味ですか?スライドをシミュレートするには、さまざまな方法があります。 CFrame、BodyVelocity、BodyForce、さらにはBodyPositionを使用することができます。あなたは摩擦のないレンガを作ってそれをスライドさせることさえできます。あなたが知る必要があることは他にありますか?もしそうなら、コメントしてください。

0

もう少し現実的で、失敗する可能性は低いです。単純にレンガを作成し、関数onClick()を使用すると、透明度を使用して、消えて固定されたレンガが表示され、元のレンガnonCanCollide、新しい代替物の位置が方向に移動する、また、私はBodyPositionを使用する傾向があります。なぜなら、それは位置のために働き、固定されていないレンガ(nonanchoredではなく)にも使用できるからです。私はそれが失敗する可能性は低いですが、代用が失敗した場合、元のレンガがまだそこに残っているので、バックアップスクリプトを作成してサブ休憩。

私はこれが役に立ったと思います。 -Orbian。

1

私はあなたが試みたいことを理解している場合、このようなことをする方法はたくさんあります。

1)CanCollideが0の他のレンガの方向に強力なBodyVelocityを持っています。ブリックが接触しているときは、次の2つのことができます。もう一方は、それは短い時間を待ってから、それ自体を削除します。

2)CFrameを使用してレンガを移動し、CFrame.new(Brick1.Pos、Brick2.Pos)を使用して角度を検索し、フレームシステムを使用してそのCFrameをBrick1 CFrameに追加して、移動"。 「フレーム」が終了したら、レンガを削除します。

-1

は、あなたがCFRAMEを使用したい、それをスライドさせ、レンガcancollideを作り、私が言うことができるものから、脂肪thantheのC

0

作るためにコンベアベルトを使用しています。 2つのレンガを同じ空間で移動させるには(両方のレンガがCanCollide = trueの場合)、CFrameを使用する必要があります。すべての "Body"インスタンス(BodyVelocity、BodyPosition)はレンガに力を加えます。したがって、それらを同じ空間で動かすことはできません。

あなたはスライドドアをしたい場合は、このスクリプトを使用することができます。

local StartPosition = script.Parent.CFrame 
local ToPosition = workspace.TargetPart.CFrame -- Make sure this is right 

function Open() 
    for i=0,100,1 do 
     script.Parent.CFrame = StartPosition + CFrame.new(StartPosition.p,ToPosition.p).lookVector *  ((StartPosition.p-ToPosition.p).magnitude/100) * i 
     wait(0.01) 
    end 
end 

function Close() 
    for i=100,0,-1 do 
     script.Parent.CFrame = StartPosition + CFrame.new(StartPosition.p,ToPosition.p).lookVector *  ((StartPosition.p-ToPosition.p).magnitude/100) * i 
     wait(0.01) 
    end 
end 

local Moving = false 
local IsOpen = false 
function Toggle() 
    if Moving then return end 
    Moving = true 

    if IsOpen then 
     Close() 
    else 
     Open() 
    end 
    IsOpen = not IsOpen 

    Moving = false 
end 

-- Following code is just for testing 
Toggle() 
wait(1) 
Toggle() 

は、第二のレンガが最初のものよりも大きいことを確認してください。

0

レンガが速度を持って2番目のレンガをスライドさせて新しいonClickスクリプトを作成して、速度ネガティブの影響を受けて2番目のレンガを引き戻すようにするスクリプトを作成できます。

関連する問題