?? floor.java
字號:
/*文件名:Floor.java
類名:Floor.class
功能:生成樓層的布局,以及乘客小人在樓層里移動
*/
import java.awt.*;
import java.applet.Applet;
import java.applet.*;
//Floor 類定義
public class Floor extends Applet
implements Runnable
{
//聲明Floor類成員變量類型
public AudioClip stepsound;//乘客走路的聲音
public boolean occupied1;//乘客1是否在該樓層
public boolean occupied2;//乘客2是否在該樓層
public boolean occupied3;//乘客3是否在該樓層
public boolean occupied4;//乘客4是在否該樓層
public boolean occupied5;//乘客5是否在該樓層
public boolean occupied6;//乘客6是否在該樓層
public boolean occupied7;//乘客7是否在該樓層
public boolean occupied8;//乘客8是否在該樓層
public boolean occupied9;//乘客9是否在該樓層
public boolean occupied0;//乘客0是否在該樓層
public boolean moving;//乘客在樓層的移動
public int destination;//目的地是幾層
public int elevator_door;//電梯門
public int leave_elevator_door;//離開電梯門
public int location;//位置
public int xPos1;//
public int xPos2;
public int xPos3;
public int xPos4;
public int xPos5;
public int xPos6;
public int xPos7;
public int xPos8;
public int xPos9;
public int xPos0;
public int who;
public int personDestination;//乘客的目的地
private Elevator elevator;//電梯在大樓里
private Thread thread;//線程
private Image floor;//電梯圖像
private Image person1;//第1個乘客的圖像
private Image person2;//第2個乘客的圖像
private Image person3;//第3個乘客的圖像
private Image person4;//第4個乘客的圖像
private Image person5;//第5個乘客的圖像
private Image person6;//第6個乘客的圖像
private Image person7;//第7個乘客的圖像
private Image person8;//第8個乘客的圖像
private Image person9;//第9個乘客的圖像
private Image person0;//第10個乘客的圖像
private Applet applet;
public Floor(Applet applet1, Elevator elevator1)
{//初始化,10個乘客一開始都沒在電梯里
occupied1 = false;
occupied2 = false;
occupied3 = false;
occupied4 = false;
occupied5 = false;
occupied6 = false;
occupied7 = false;
occupied8 = false;
occupied9 = false;
occupied0 = false;
moving = false;
elevator_door = 1;//進入電梯
leave_elevator_door = 2;//離開電梯
who = 1;//第一個乘客
location = 1;//電梯位于第一層
//十個乘客的起始位置
xPos1 = -30;
xPos2 = -30;
xPos3 = -30;
xPos4 = -30;
xPos5 = -30;
xPos6 = -30;
xPos7 = -30;
xPos8 = -30;
xPos9 = -30;
xPos0 = -30;
stepsound = applet1.getAudioClip(applet1.getDocumentBase(), "sound/thin.bell.au");//電梯的聲音
person1 = applet1.getImage(applet1.getDocumentBase(), "image/girl1.gif");//獲取乘客1的圖像
person2 = applet1.getImage(applet1.getDocumentBase(), "image/girl2.gif");//獲取乘客2的圖像
person3 = applet1.getImage(applet1.getDocumentBase(), "image/girl3.gif");//獲取乘客3的圖像
person4 = applet1.getImage(applet1.getDocumentBase(), "image/girl4.gif");//獲取乘客4的圖像
person5 = applet1.getImage(applet1.getDocumentBase(), "image/girl5.gif");//獲取乘客5的圖像
person6 = applet1.getImage(applet1.getDocumentBase(), "image/girl6.gif");//獲取乘客6的圖像
person7 = applet1.getImage(applet1.getDocumentBase(), "image/girl7.gif");//獲取乘客7的圖像
person8 = applet1.getImage(applet1.getDocumentBase(), "image/girl8.gif");//獲取乘客8的圖像
person9 = applet1.getImage(applet1.getDocumentBase(), "image/girl9.gif");//獲取乘客9的圖像
person0 = applet1.getImage(applet1.getDocumentBase(), "image/girl0.gif");//獲取乘客10的圖像
floor = applet1.getImage(applet1.getDocumentBase(), "image/floor1.jpg");//獲取樓層的圖像
elevator = elevator1;
applet = applet1;
}
//構造方法
public void occupy1()
{//乘客1在該樓層
if(!occupied1)
{
occupied1 = true;
repaint();
}
}
public void occupy2()
{
if(!occupied2)
{
occupied2 = true;
repaint();
}
}
public void occupy3()
{
if(!occupied3)
{
occupied3 = true;
repaint();
}
}
public void occupy4()
{
if(!occupied4)
{
occupied4 = true;
repaint();
}
}
public void occupy5()
{
if(!occupied5)
{
occupied5 = true;
repaint();
}
}
public void occupy6()
{
if(!occupied6)
{
occupied6 = true;
repaint();
}
}
public void occupy7()
{
if(!occupied7)
{
occupied7 = true;
repaint();
}
}
public void occupy8()
{
if(!occupied8)
{
occupied8 = true;
repaint();
}
}
public void occupy9()
{
if(!occupied9)
{
occupied9 = true;
repaint();
}
}
public void occupy0()
{
if(!occupied0)
{
occupied0 = true;
repaint();
}
}
public void unoccupy1()
{
if(occupied1)
{
occupied1 = false;
repaint();
}
}
public void unOccupy2()
{
if(occupied2)
{
occupied2 = false;
repaint();
}
}
public void unOccupy3()
{
if(occupied3)
{
occupied3 = false;
repaint();
}
}
public void unOccupy4()
{
if(occupied4)
{
occupied4 = false;
repaint();
}
}
public void unOccupy5()
{
if(occupied5)
{
occupied5 = false;
repaint();
}
}
public void unOccupy6()
{
if(occupied6)
{
occupied6 = false;
repaint();
}
}
public void unOccupy7()
{
if(occupied7)
{
occupied7 = false;
repaint();
}
}
public void unOccupy8()
{
if(occupied8)
{
occupied8 = false;
repaint();
}
}
public void unOccupy9()
{
if(occupied9)
{
occupied9 = false;
repaint();
}
}
public void unOccupy0()
{
if(occupied0)
{
occupied0 = false;
repaint();
}
}
public void pause(int i)
{
try
{
Thread.sleep(i);
return;
}
catch(InterruptedException interruptedexception)//例外處理
{
return;
}
}
public void setDestination(int i,int w)
{
destination = i;//目的地是第i層
who = w;//第w位乘客
start();//調用啟動方法
}
//電梯開始運行
public void start()
{
thread = new Thread(this);
thread.start();
}
//電梯停止運行
public void stop()
{
if(thread != null)
{
thread.stop();
thread = null;
}
}
//
public void run()
{
if(who==1)
{
if(destination == elevator_door)
{
moving = true;
while(xPos1 < 190)
{
xPos1++;
repaint();
stepsound.play();
pause(20);
}
cleanUp();
}
if(destination == leave_elevator_door)
{
moving = true;
while(xPos1 > 1)
{
xPos1--;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -