home *** CD-ROM | disk | FTP | other *** search
/ The Best of Windows 95.com 1996 September / WIN95_09962.iso / vrml / cp2b2x.exe / DATA.Z / ufo.java < prev    next >
Text File  |  1996-06-21  |  4KB  |  166 lines

  1. // $Id: ufo.java,v 1.5 1996/05/28 09:57:32 sugino Exp $
  2. //
  3. // ufo.java
  4. // 
  5. // (c)Copyright 1996 Sony Corporation. All rights reserved.
  6. //
  7. import vrml.*;
  8.  
  9. public class ufo extends Script{
  10.     SFVec3f ufo_trans = (SFVec3f) getEventOut("ufoTr");
  11.     SFBool setTimerEnabled = (SFBool) getEventOut( "setTimerEnabled" );
  12.     
  13.     int flg = 0;
  14.     int height = 0;
  15.     
  16.     public ufo(){
  17.     }
  18.     public void clicked ( ConstSFBool ev, ConstSFTime time ){
  19.         // when the button is pressed, return immediately.
  20.         if( ev.getValue() == true ) return;
  21.         
  22.         // when the button is released...
  23.         switch ( flg ){
  24.           case ( 0 ):    // landing, set to rising
  25.             flg = 1;
  26.             start();
  27.             break;
  28.           case ( 2 ):    // flying, set to swinging
  29.             flg = 3;
  30.             start();
  31.             break;
  32.           case ( 3 ):    // swinging, set to falling
  33.             flg = 4;
  34.             break;
  35.           default:
  36.             break;
  37.         }
  38.     }
  39.  
  40.     public void move ( ConstSFTime ev, ConstSFTime time ){
  41.         switch ( flg ) {
  42.           case ( 1 ):
  43.             // rising
  44.             rise();
  45.             if( height >= 20 ){
  46.                 flg = 2;
  47.                 stop();
  48.             }
  49.             break;
  50.           case ( 3 ):
  51.             // swinging
  52.             swing();
  53.             break;
  54.           case ( 4 ):
  55.             // go back.
  56.             if(height > 0){
  57.                 gobackFall();
  58.             }else if(height < 0){
  59.                 gobackRise();
  60.             }
  61.             if( height == 0 ){
  62.                 flg = 0;
  63.                 stop();
  64.             }
  65.             break;
  66.           default:
  67.             break;
  68.         }
  69.     }
  70.  
  71.     float movepara[] = new float[3];
  72.     public void rise(){
  73.  
  74.         movepara[ 1 ] += 2.0f;
  75.         ufo_trans.setValue( movepara );
  76.         height = height + 2;
  77.     }
  78.  
  79.     public void gobackFall(){
  80.  
  81.         movepara[ 1 ] += -1.0f;
  82.         ufo_trans.setValue( movepara );
  83.         height = height - 1;
  84.     }
  85.  
  86.     public void gobackRise(){
  87.  
  88.         movepara[ 1 ] += 1.0f;
  89.         ufo_trans.setValue( movepara) ;
  90.         height = height + 1;
  91.     }
  92.  
  93.     public void swing(){
  94.         // random swinging.
  95.         int randomNum = (int)(6 * Math.random());
  96.         
  97.         switch(randomNum){
  98.           case 0:
  99.             swingLeft();
  100.             break;
  101.           case 1:
  102.             swingRight();
  103.             break;
  104.           case 2:
  105.             swingUp();
  106.             break;
  107.           case 3:
  108.             swingDown();
  109.             break;
  110.           case 4:
  111.             swingRise();
  112.             break;
  113.           case 5:
  114.             swingFall();
  115.             break;
  116.           default:
  117.             // do nothing.
  118.         }
  119.     }        
  120.             
  121.     public void swingLeft(){
  122.         movepara[ 0 ] += -2.0f;
  123.         ufo_trans.setValue( movepara ) ;
  124.     }
  125.  
  126.     public void swingRight(){
  127.         movepara[ 0 ] += 2.0f;
  128.         ufo_trans.setValue( movepara ) ;
  129.     }
  130.  
  131.     public void swingUp(){
  132.         movepara[ 1 ] += 2.0f;
  133.         ufo_trans.setValue( movepara ) ;
  134.         height = height + 2;
  135.     }
  136.  
  137.     public void swingDown(){
  138.         movepara[ 1 ] += -2.0f;
  139.         ufo_trans.setValue( movepara ) ; 
  140.         height = height - 2;
  141.     }
  142.  
  143.     public void swingRise(){
  144.         movepara[ 1 ] += 5.0f;
  145.         ufo_trans.setValue( movepara ) ;
  146.         height = height + 5;
  147.     }
  148.  
  149.     public void swingFall(){
  150.         movepara[ 1 ] += -5.0f;
  151.         ufo_trans.setValue( movepara ) ; 
  152.         height = height - 5;
  153.     }
  154.  
  155.     public void start(){
  156.         System.out.println("start() enter.");
  157.         setTimerEnabled.setValue( true );
  158.     }
  159.     public void stop(){
  160.         System.out.println("stop() enter.");
  161.         setTimerEnabled.setValue( false );
  162.     }
  163. }
  164.  
  165.  
  166.