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 >
Text File  |  2017-09-21  |  3KB  |  128 lines

  1. set listobj {
  2.     {0 0 0 0 0 0 0 0}
  3.     {0 0 0 0 0 0 0 0}
  4. }
  5.  
  6. set cnt 1
  7. set sw 0
  8.  
  9. proc move {obj ev ud} {
  10.     global    listobj cnt sw
  11.     global    vsCSLocal vsRelative vsContinue vsAbsolute
  12.  
  13.     if {$cnt < 60} {
  14.     set step -0.1
  15.     } elseif {$cnt < 119} {
  16.     set step 0.1
  17.     } else {
  18.     set step 0
  19.     set cnt 0
  20.     incr sw
  21.     if {$sw == 2} {
  22.         set sw 0
  23.     }
  24.     }
  25.     incr cnt
  26.     for {set i 0} {$i < 2} {incr i} {
  27.     set aa [lindex $listobj $i]
  28.     if {$i == 0} {
  29.         # shouzou
  30.         for {set j 0} {$j < 8} {incr j} {
  31.         set aobj [lindex $aa $j]
  32.         set x 0
  33.         set z 0
  34.         if {$j == 0} {
  35.             set z $step
  36.         } elseif {$j == 1} {
  37.             set z [expr 0.0 - $step]
  38.         } elseif {$j == 2} {
  39.             set x $step
  40.         } elseif {$j == 3} {
  41.             set x [expr 0.0 - $step]
  42.         } elseif {$j == 4} {
  43.             set z [expr 0.0 - $step]
  44.         } elseif {$j == 5} {
  45.             set z $step
  46.         } elseif {$j == 6} {
  47.             set x [expr 0.0 - $step]
  48.         } else {
  49.             set x $step
  50.         }
  51.         vsTranslate $aobj $x 0 $z $vsCSLocal $vsRelative
  52.         }
  53.     } else {
  54.         # board
  55.         if {$sw == 0} {
  56.         for {set j 0} {$j < 8} {incr j} {
  57.             set aobj [lindex $aa $j]
  58.             set x 0
  59.             set z 0
  60.             if {$j == 0} {
  61.             set x $step
  62.             } elseif {$j == 2} {
  63.             set z $step
  64.             } elseif {$j == 4} {
  65.             set x [expr 0.0 - $step]
  66.             } elseif {$j == 6} {
  67.             set z [expr 0.0 - $step]
  68.             }
  69.             vsTranslate $aobj $x 0 $z $vsCSLocal $vsRelative
  70.         }
  71.         } else {
  72.         for {set j 0} {$j < 8} {incr j} {
  73.             set aobj [lindex $aa $j]
  74.             set x 0
  75.             set z 0
  76.             if {$j == 0} {
  77.             set x [expr 0.0 - $step]
  78.             } elseif {$j == 2} {
  79.             set z [expr 0.0 - $step]
  80.             } elseif {$j == 4} {
  81.             set x $step
  82.             } elseif {$j == 6} {
  83.             set z $step
  84.             }
  85.             vsTranslate $aobj $x 0 $z $vsCSLocal $vsRelative
  86.         }
  87.         }
  88.     }
  89.     }
  90.     return $vsContinue
  91. }
  92.  
  93. proc init {obj ev ud} {
  94.     global    listobj
  95.     global    vsTclScript vsPeriodicTask vsCSWorld vsRelative
  96.  
  97.     set a1 [vsGetObjByName $obj "s1" -r]
  98.     set a2 [vsGetObjByName $obj "s2" -r]
  99.     set a3 [vsGetObjByName $obj "s3" -r]
  100.     set a4 [vsGetObjByName $obj "s4" -r]
  101.     set a5 [vsGetObjByName $obj "s5" -r]
  102.     set a6 [vsGetObjByName $obj "s6" -r]
  103.     set a7 [vsGetObjByName $obj "s7" -r]
  104.     set a8 [vsGetObjByName $obj "s8" -r]
  105.     vsTranslate $a2 0 0 -5.5 $vsCSWorld $vsRelative
  106.     vsTranslate $a4 -5.5 0 0 $vsCSWorld $vsRelative
  107.     vsTranslate $a6 0 0 5.5 $vsCSWorld $vsRelative
  108.     vsTranslate $a8 5.5 0 0 $vsCSWorld $vsRelative
  109.     set aa "$a1 $a2 $a3 $a4 $a5 $a6 $a7 $a8"
  110.     set listobj [lreplace $listobj 0 0 $aa]
  111.  
  112.     set a1 [vsGetObjByName $obj "b1" -r]
  113.     set a3 [vsGetObjByName $obj "b3" -r]
  114.     set a5 [vsGetObjByName $obj "b5" -r]
  115.     set a7 [vsGetObjByName $obj "b7" -r]
  116.     set off 4.5
  117.     set moff [expr 0.0 - $off]
  118.     vsTranslate $a1 0 -1 $off $vsCSWorld $vsRelative
  119.     vsTranslate $a3 $off -1 0 $vsCSWorld $vsRelative
  120.     vsTranslate $a5 0 -1 $moff $vsCSWorld $vsRelative
  121.     vsTranslate $a7 $moff -1 0 $vsCSWorld $vsRelative
  122.  
  123.     set aa "$a1 $a2 $a3 $a4 $a5 $a6 $a7 $a8"
  124.     set listobj [lreplace $listobj 1 1 $aa]
  125.  
  126.     vsAddTimeOutHandler $obj 1000 $vsTclScript "" move "" $vsPeriodicTask
  127. }
  128.