commit to user
36
Gambar 4.17 Pembuatan Animasi Tombol
4. Pemrograman dengan Script Lingo
Script lingo digunakan untuk menjalankan aksi pada frame dan obyek yang telah disusun pada frame. Untuk memberikan script lingo pada
obyek, yaitu dengan klik kanan obyek dan klik script. Script yang telah dibuat secara otomatis akan menjadi cast member, sehingga dapat digunakan
berulang kali. Script lingo yang digunakan dalam aplikasi ini adalah sebagai berikut:
a. Script menuju ke halaman standard
on mouseEnter
me sprite
2 .
member =
buttonbar sprite
7 .
member =
h-standard end
on mouseLeave
me sprite
2 .
member =
buttonmainu sprite
7 .
member =
home” end
on mouseUp
me go
to Standard
end
commit to user
37
Maksud dari script lingo di atas adalah saat cursor mouse berada pada area obyek, member sprite 2 diganti dengan cast member
“buttonbar” dan member sprite 7 diganti dengan cast member
“h-standard”. Saat mouse meniggalkan obyek, member sprite 2 diganti dengan cast member
“buttonmainu” dan member sprite 7 diganti dengan cast member “home”. Dan saat mouse diklik
, menuju ke frame dengan nama “Standard”. Script tersebut dipasang pada obyek tombol standard room.
b. Script quit
Script di atas dipasang pada obyek 3 dimensi huruf X pada halaman utama sebagai tombol keluar. Maksud dari script lingo di atas adalah saat obyek
diklik, maka akan keluar dari aplikasi. c.
Script untuk menjelajahi ruang standard room property
world ,scene,my,
height property
x ,
y ,
z ,r
property cam
property colRadius,px,py,rayHeight,rayAngle
on new me ,args
world = args.
world scene =
world .scene
-- tinggi karakter height
= 120
rayHeight = 4
rayAngle = pi
4 member
standard1 .
model out
. visibility
= non
e on
mouseUp me
halt
end
commit to user
38
-- membuat kamera dan menentukan posisi koordinat
my = scene. camera
[ 1
] my.
fieldOfView =
60 x
= 130
y =
50 z
= r =
px = py =
colRadius = 20
return me end
on enterframe
me -- mendeklarasikan tombol arrow pada keyboard
pUp = keyPressed
126 pDown =
keyPressed 125
pLeft = keyPressed
123 Pright =
keyPressed 124
-- aksi saat tombol arrow pada keyboard ditekan
rotateAmount = pRight-pLeft 0.03
moveAmount = pUp-pDown 4
-- update posisi kamera r = r + rotateAmount
xm = sin
rmoveAmount ym =
cos rmoveAmount
x =
x + xm
y =
y + ym
me .doWallCollision
my. transform
. position
= vector
x ,
y ,
height my.
transform .
rotation =
vector 90
, ,toDegreesr
end on
toDegrees radianValue return
radianValue- 180
pi end
--mengatur agar kamera tidak dapat menembus tembok
commit to user
39
on doWallCollision
me if
px= x
and py=
y then
return else
motionAngle = atan
x -px,
y -py
end if -- cek tembok
wallChecks = [] raySource =
vector x
, y
, z
+rayHeight rayVectorLeft =
vector sin
motionAngle+rayAngle, cos
motionAngle +rayAngle,
rayVectorRight = vector
sin motionAngle-
rayAngle, cos
motionAngle-rayAngle, wallChecks.
add scene.
modelsUnderRay raySource,
rayVectorLeft, detailed
wallChecks. add
scene. modelsUnderRay
raySource, rayVectorRight,
detailed repeat with
wallResult in
wallChecks if
wallResult. count
then wall = wallResult[
1 ]
if wall.
distance colRadius
then hitPoint = wall.
isectPosition penetrationDepth = colRadius-
wall. distance
wallNormal = wall. isectNormal
motionVector = vector
sin motionAngle,
cos motionAngle,
approachAngleFactor = wallNormal.
angleBetween motionVector
180.0 reduceJudder =
1 -
approachAngleFactorapproachAngleFactor 0.3
resolveVector = wallNormal penetrationDepth reduceJudder
x =
x + resolveVector.
x y
= y
+ resolveVector. y
end if end if
end repeat
commit to user
40
-- update posisi kamera px =
x py =
y end
Script di atas merupakan script untuk interaksi menjelajahi ruang virtual. Pada awal script dideklarasikan variabel yang akan digunakan.
Height
digunakan untuk menentukan tinggi dari karakter. Obyek “out” disembunyikan dan membuat cahaya dengan nama “room light”. Lalu
membuat kamera pada posisi x 130 dan y 50. Pada method enterframe dideklarasikan variabel jika tombol
arrow
ditekan, maka posisi kamera akan berubah. Method doWallCollision digunakan untuk membuat kamera
agar tidak menembus obyek interior ruang virtual. d.
Script untuk membuka lemari Interaksi membuka lemari menggunakan script behavior dari
Director, yaitu play animation, mouse left, mouse right, dan model rollover cursor.
Gambar 4.18 Parameter Play Animation Pada parameter play animation ditentukan model obyek yang diklik,
model yang bergerak, keyframe awal animasi, playback animasi, serta nama behavior.
commit to user
41
Gambar 4.19 Parameter Mouse Left Pada parameter mouse left ditentukan jika mouse kiri diklik, maka
animasi dari grup behavior lemari kanan dijalankan.
Gambar 4.20 Parameter Mouse Right Pada parameter mouse right ditentukan jika mouse kanan diklik, maka
animasi dari grup behavior lemari kanan di
reset
dikembalikan pada keadaan semula.
Gambar 4.21 Parameter Model Rollover Cursor Pada parameter model rollover cursor ditentukan model yang akan diberi
aksi dan jenis kursor saat kursor berada pada model.
5. Pengeditan Sound