📄 a.java
字号:
import java.awt.*;
import java.applet.*;
public class wumin1 extends Applet
{;
carton carton_1=null;//声明一个carton类的实例.
public void start()
{;
if (carton_1==null)//假如未初始化
{;
carton_1=new carton(getGraphics(),this);//初始化
carton_1.start();//启动
};
};
public void stop()
{;
carton_1.stop();//停止
carton_1=null;//释放资源
};
//键被按下事件的处理.
public boolean keyDown(Event e,int key)
{;
if (key==Event.UP)//假如是向上键被按下
carton_1.set_direction(0);//向上的布尔变量置true
JAVA手机网[www.cnjm.net] if (key==Event.DOWN)//假如是向下键被按下
carton_1.set_direction(1);//向下的布尔变量置true
if (key==Event.LEFT)//假如是向左键被按下
carton_1.set_direction(2);//向左的布尔变量置true
if (key==Event.RIGHT)//假如是向右键被按下
carton_1.set_direction(3);//向右的布尔变量置true
JAVA手机网[www.cnjm.net] return true;
};
//键被松开事件的处理.
public boolean keyUp(Event e,int key)
{;
if (key==Event.UP)//假如是向上键被松开
carton_1.clear_direction(0);//向上的布尔变量置false
if (key==Event.DOWN)//假如是向下键被松开
carton_1.clear_direction(1);//向下的布尔变量置false
if (key==Event.LEFT)//假如是向左键被松开
carton_1.clear_direction(2);//向左的布尔变量置false
JAVA手机网[www.cnjm.net] if (key==Event.RIGHT)//假如是向右键被松开
carton_1.clear_direction(3);//向右的布尔变量置false
return true;
};
};
//小方块所属类的描述
class carton extends Thread//从Thread类派生
{;
JAVA手机网[www.cnjm.net] boolean up=false,down=false,left=false,right=false;//四个表示方向的布尔变量
int position_x=200,position_y=150;//坐标.初始位置是(200,150)
Applet applet;
Graphics g;
int sleep_time=5;//睡眠时间
Color my_color;
//初始化时要将各种环境准备好
JAVA手机网[www.cnjm.net] public carton(Graphics a,Applet app)
{;
g=a;
applet=app;
};
//这是主运行函数.
public void run()
{;
while(true)//此函数一直运行
{;
set_position();//计算小方块坐标
draw_image();//画小方块
try//标准的暂停方式
JAVA手机网[www.cnjm.net] {;
sleep(sleep_time);
};
catch(InterruptedException e)
JAVA手机网[www.cnjm.net] {;
};
};
};
//计算小方块的坐标
public void set_position()
{;
if(up==true && position_y>1)//假如向上的键被按下并且小方块的纵坐标大于1
position_y--;//小方块向上移动
if(down==true && position_y<330)//假如向下的键被按下并且小方块的纵坐标小于330
position_y++;//小方块向下移动
if(left==true && position_x>1)//假如向左的键被按下并且小方块的横坐标大于1
position_x--;//小方块向左移动
if(right==true && position_x<380)//假如向右的键被按下并且小方块的横坐标小于380
position_x++;//小方块向右移动
};
//画屏幕
public void draw_image()
{;
my_color=new Color(179,179,179);
g.setColor(my_color);
g.fillRect(0,0,400,350);//画背景
my_color=new Color(100,100,100);
JAVA手机网[www.cnjm.net] g.setColor(my_color);
g.fillRect(position_x,position_y,20,20);//根据小方块的坐标画小方块
};
//表示方向的布尔变量的置true方法
public void set_direction(int direction_)
{;
switch(direction_)
{;
case(0)://向上键被按下则向上的布尔变量置位
JAVA手机网[www.cnjm.net] up=true;
break;
case(1)://向下键被按下则向下的布尔变量置位
down=true;
JAVA手机网[www.cnjm.net] break;
case(2)://向左键被按下则向左的布尔变量置位
left=true;
break;
case(3)://向右键被按下则向右的布尔变量置位
right=true;
break;
default:
break;
};
};
//表示方向的布尔变量的置false方法
JAVA手机网[www.cnjm.net] public void clear_direction(int direction_)
{; switch(direction_)
{;
case(0)://向上键被松开则向上的布尔变量置false
up=false;
break;
case(1)://向下键被松开则向下的布尔变量置false
down=false;
break;
case(2)://向左键被松开则向左的布尔变量置false
left=false;
break;
case(3)://向右键被松开则向右的布尔变量置false
JAVA手机网[www.cnjm.net] right=false;
JAVA手机网[www.cnjm.net] break;
default:
break;
};
};
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -