1. package com.jcdj1996.final03;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4.  
  5. import javax.swing.Timer;
  6.  
  7. import lejos.nxt.*;
  8. public class Robot implements ActionListener {
  9.     TouchSensor t1 = new TouchSensor(SensorPort.S1);
  10.     Timer timer1 = new Timer(200,this);
  11.     static int speed1, steer1;
  12.     //final03 f1 = new final03();
  13.     public void init()
  14.     {
  15.         timer1.start();
  16.     }
  17.     public void turn(int angle){    //steers robot
  18.         steer1 = angle;
  19.         try{
  20.         Motor.C.setPower(10);
  21.         Motor.C.rotateTo(((int)(angle*4)),true);
  22.         }catch(Exception e)
  23.         {
  24.             System.out.println(e);
  25.         }
  26.        
  27.         if(!(Motor.A.getLimitAngle()>angle-2)&&!(Motor.A.getLimitAngle()<angle+2))
  28.         {
  29.             turn(angle);
  30.         }
  31.     }
  32.     public void setSpeed(int speed){
  33.         speed1=speed;
  34.         Motor.B.setPower(900);
  35.         if(speed<0) //negative speed means backwards
  36.         {
  37.             Motor.B.setSpeed(speed*-1);
  38.             Motor.B.backward();
  39.         }else{
  40.             Motor.B.setSpeed(speed);
  41.             Motor.B.forward();
  42.         }  
  43.     }
  44.     public void fire()
  45.     {
  46.         try{
  47.             if(!Motor.A.isMoving()) //avoid incomplete cycles
  48.             {
  49.                 Motor.A.rotate(360);    //Rotate Firing motor 360
  50.             }
  51.         }catch(Exception e)
  52.         {
  53.             System.out.println(e);
  54.         }
  55.     }
  56.     public void actionPerformed(ActionEvent arg0) {
  57.         if(t1.isPressed())  //touch is pressed, play tone, update label
  58.         {
  59.             Sound.playTone(500, 500);
  60.         }      
  61.     }
  62. }