home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet 1996 World Exposition
/
park.org.s3.amazonaws.com.7z
/
park.org.s3.amazonaws.com
/
Japan
/
Sony
/
3DWorld
/
ZEIT
/
VRML
/
e-room.tcl
next >
Wrap
Text File
|
2017-09-21
|
3KB
|
128 lines
set listobj {
{0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0}
}
set cnt 1
set sw 0
proc move {obj ev ud} {
global listobj cnt sw
global vsCSLocal vsRelative vsContinue vsAbsolute
if {$cnt < 60} {
set step -0.1
} elseif {$cnt < 119} {
set step 0.1
} else {
set step 0
set cnt 0
incr sw
if {$sw == 2} {
set sw 0
}
}
incr cnt
for {set i 0} {$i < 2} {incr i} {
set aa [lindex $listobj $i]
if {$i == 0} {
# shouzou
for {set j 0} {$j < 8} {incr j} {
set aobj [lindex $aa $j]
set x 0
set z 0
if {$j == 0} {
set z $step
} elseif {$j == 1} {
set z [expr 0.0 - $step]
} elseif {$j == 2} {
set x $step
} elseif {$j == 3} {
set x [expr 0.0 - $step]
} elseif {$j == 4} {
set z [expr 0.0 - $step]
} elseif {$j == 5} {
set z $step
} elseif {$j == 6} {
set x [expr 0.0 - $step]
} else {
set x $step
}
vsTranslate $aobj $x 0 $z $vsCSLocal $vsRelative
}
} else {
# board
if {$sw == 0} {
for {set j 0} {$j < 8} {incr j} {
set aobj [lindex $aa $j]
set x 0
set z 0
if {$j == 0} {
set x $step
} elseif {$j == 2} {
set z $step
} elseif {$j == 4} {
set x [expr 0.0 - $step]
} elseif {$j == 6} {
set z [expr 0.0 - $step]
}
vsTranslate $aobj $x 0 $z $vsCSLocal $vsRelative
}
} else {
for {set j 0} {$j < 8} {incr j} {
set aobj [lindex $aa $j]
set x 0
set z 0
if {$j == 0} {
set x [expr 0.0 - $step]
} elseif {$j == 2} {
set z [expr 0.0 - $step]
} elseif {$j == 4} {
set x $step
} elseif {$j == 6} {
set z $step
}
vsTranslate $aobj $x 0 $z $vsCSLocal $vsRelative
}
}
}
}
return $vsContinue
}
proc init {obj ev ud} {
global listobj
global vsTclScript vsPeriodicTask vsCSWorld vsRelative
set a1 [vsGetObjByName $obj "s1" -r]
set a2 [vsGetObjByName $obj "s2" -r]
set a3 [vsGetObjByName $obj "s3" -r]
set a4 [vsGetObjByName $obj "s4" -r]
set a5 [vsGetObjByName $obj "s5" -r]
set a6 [vsGetObjByName $obj "s6" -r]
set a7 [vsGetObjByName $obj "s7" -r]
set a8 [vsGetObjByName $obj "s8" -r]
vsTranslate $a2 0 0 -5.5 $vsCSWorld $vsRelative
vsTranslate $a4 -5.5 0 0 $vsCSWorld $vsRelative
vsTranslate $a6 0 0 5.5 $vsCSWorld $vsRelative
vsTranslate $a8 5.5 0 0 $vsCSWorld $vsRelative
set aa "$a1 $a2 $a3 $a4 $a5 $a6 $a7 $a8"
set listobj [lreplace $listobj 0 0 $aa]
set a1 [vsGetObjByName $obj "b1" -r]
set a3 [vsGetObjByName $obj "b3" -r]
set a5 [vsGetObjByName $obj "b5" -r]
set a7 [vsGetObjByName $obj "b7" -r]
set off 4.5
set moff [expr 0.0 - $off]
vsTranslate $a1 0 -1 $off $vsCSWorld $vsRelative
vsTranslate $a3 $off -1 0 $vsCSWorld $vsRelative
vsTranslate $a5 0 -1 $moff $vsCSWorld $vsRelative
vsTranslate $a7 $moff -1 0 $vsCSWorld $vsRelative
set aa "$a1 $a2 $a3 $a4 $a5 $a6 $a7 $a8"
set listobj [lreplace $listobj 1 1 $aa]
vsAddTimeOutHandler $obj 1000 $vsTclScript "" move "" $vsPeriodicTask
}