家庭教師の指示に従って、「花火」(大まかに使用される用語)を生成する次のスクリプトを作成しました。これは、私が使用しなければならないスケルトン スクリプトに基づいています。
特定のパラメーターを制御するスピナーがありますが、私の人生では何が悪いのかわかりません! 私を助けてください!!!
タスクは、スクリプトを介してアニメーション化することでした。球体が上昇し、面が「爆発」し、タイム スケールによって方向が下向きに変化しました。
(花火が上がり、爆発し、破片が地面に落ちる)
私が書いたことは正しいと思いますが、実際にはアニメーションは生成されません。私の最善の努力と何ヶ月ものハードワークにもかかわらず。
私はコーディングが初めてで、コーディングにサインアップしていません。私がやりたかったのは、モデル化の方法を学ぶことだけでした。しかし、私の家庭教師は私のパスの鍵を握っています。
現時点で、私は「激怒をやめる」準備ができており、単に自分の鉱山から出て行こうとしています. どんな助けでも大歓迎です。
これが私がこれまでに書いたスクリプトです...
-- Empty varables to be called in or adjusted by spinners
numOfSpheres = 0 --number of exploding spheres
sphereRadius = 0
creationBoxSize = 0 -- spawn radius in what box size?
objs = #() -- objs created go to empty array!
maxHeight = 0
startTime = 0
dropping = false --boolean flag to trigger the falling sphere stage
animate on
(
for i = 1 to numOfSpheres by 1 do
(
at time (startTime + 50.000) ( meshop.bevelFaces objs[i] #{1..objs[i].numFaces} 0.0000001 0 )
at time (startTime + 50.001) ( meshop.bevelFaces objs[i] #{1..objs[i].numFaces} 0.0000001 0 )
at time (startTime + 100) ( meshop.bevelFaces objs[i] #{1..objs[i].numFaces} 100 0 )
at time (startTime) ( objs[i].pos = objs[i].pos )
local height = maxHeight
for t = 5 to 100 by 5 do
(
height = height - 2
at time (startTime + t) ( objs[i].pos = objs[i].pos + [ 0, 0, height] )
)
)
)
rollout FireWorks "FireWorks"
( -- button ui code starts here
label lbl1 "By Luke Fahy" style_sunkenedge:true width:67 height:17
spinner count "FireWorks: " type:#integer range:[1,100,10] -- 1 to a 100: default value of 10: integer = whole number not fraction!
spinner size "Size: " type:#float range:[0.1,30,1]
spinner sPlane "Spawn Plane: " type:#integer range:[1,200,30]
spinner maxHeightSpinner "Max Height: " type:#float range:[1,100,14]
spinner startTimeSpinner "Start Time: " type:#float range:[1,100,1]
button create "Create Fireworks"
on create pressed do -- Event handler code start
(
numOfSpheres = count.value
sphereRadius = size.value
creationBoxSize = sPlane.value
maxHeight = maxHeightSpinner.value
startTime = startTimeSpinner.value
dropping = false
--create spheres
for i = 1 to numOfSpheres by 1 do
(
objs[i] = sphere radius:sphereRadius
local r = random 0 255
local g = random 0 255
local b = random 0 255
objs[i] .wirecolor = (color r g b)
objs[i] .pos = [random creationBoxSize -creationBoxSize, random creationBoxSize -creationBoxSize, 0] -- random possative and negative x/y values to create spawn box.
convertToMesh objs[i]
meshOp.explodeAllFaces objs[i] 0
)
)
) -- button ui code end
createDialog FireWorks width:200
また、私のコメントとインデントに対する提案をいただければ幸いです。(切り取りや過去の際に書式設定が窓の外に投げ出されたようです。申し訳ありませんが、私はこのフォーラムに不慣れです。ファイルは添付ファイルです)
よろしく、シャインスミス:)
追加情報:
さらに、これが私の家庭教師が私の作業の基礎としてくれたスクリプトです。
(ここで必要なオブジェクト配列、または特異なオブジェクトの名前。他の人は、単一の球体の $name とそのインスタンスを使用して、複数の「花火」を複製しました)
convertToMesh $
meshop.explodeAllFaces $ 0
update $
v = 20
animate on
(
at time (sliderTime+50.000) ( meshop.bevelFaces $ #{1..$.numFaces} 0.0000001 0 )
at time (sliderTime+50.001) ( meshop.bevelFaces $ #{1..$.numFaces} 0.0000001 0 )
at time (sliderTime+100) ( meshop.bevelFaces $ #{1..$.numFaces} 100 0 )
at time (sliderTime) ( $.pos = $.pos )
for t = 5 to 100 by 5 do
(
v = v - 2
at time (sliderTime+t) ( $.pos = $.pos + [0,0,v] )
)
)