脚本宝典收集整理的这篇文章主要介绍了面向对象设计(黄金矿工),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
成员 | 分配 | |
---|---|---|
陈旭佳 | 抓取判定,多个金块设计,红线摇摆 | 组长 |
陈娅妮 | 积分状态设定,计时效果,商店购物 | 组员 |
1.抓取代码
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
switch (state){
case 0:
if(e.getButton()==3){
state=1;
bg.startTime = System.currentTimeMillis();
}
break;
case 1:
//左右摇摆,点击左键
if(e.getButton()==1&&line.state==0)
{line.state=1;}
//抓取返回,点击右键
if(e.getButton()==3&&line.state==3&&Bg.waterNum>0){
Bg.waterFlag=true;
Bg.waterNum--;
}
break;
case 2:
if(e.getButton()==1){
bg.shop=true;
}
if (e.getButton()==3){
state=1;
bg.startTime = System.currentTimeMillis();
}
break;
case 3:
case 4:
if(e.getButton()==1){
state=0;
bg.reGame();
line.reGame();
}
break;
default:
}
}
2.积分算法
void paintSelf(Graphics g){
g.drawImage(bg1,0,0,null);
g.drawImage(bg,0,200,null);
switch (GameWin.state){
case 0:
drawWord(g,80,Color.green,"准备开始",200,400);
break;
case 1:
g.drawImage(peo,310,50,null);
drawWord(g,30,Color.black,"积分:"+count,30,150);
//药水组件
g.drawImage(water,450,40,null);
drawWord(g,30,Color.black,"*"+waterNum,510,70);
//关卡数
drawWord(g,20,Color.black,"第"+level+"关",30,60);
//目标积分
drawWord(g,30,Color.black,"目标"+goal,30,110);
//时间组件
endTime = System.currentTimeMillis();
long tim = 20-(endTime-startTime)/1000;
drawWord(g,30,Color.black,"时间:"+(tim>0?tim:0),520,150);
break;
case 2:
g.drawImage(water,300,400,null);
drawWord(g,30,Color.black,"价格:"+price,300,500);
drawWord(g,30,Color.black,"是否购买?",300,550);
if(shop){
count = count-price;
waterNum++;
shop=false;
GameWin.state=1;
startTime=System.currentTimeMillis();
}
break;
case 3:
drawWord(g,80,Color.cyan,"失败",250,350);
drawWord(g,80,Color.cyan,"积分:"+count,200,450);
break;
case 4:
drawWord(g,80,Color.red,"成功",250,350);
drawWord(g,80,Color.red,"积分:"+count,200,450);
break;
default:
}
}
3.绘制
void paintSelf(Graphics g){
logic();
switch (state){
case 0:
if(n<0.1){ dir = 1;}
else if (n>0.9){dir = -1;}
n=n+0.005*dir;
lines(g);
break;
case 1:
if(length<=MAX_length){
length=length+5;
lines(g);
}else {state=2;}
break;
case 2:
if(length>=MIN_length){
length=length-5;
lines(g);
}else {
state=0;
}
break;
case 3://抓取返回
int m=1;
if(length>=MIN_length){
length=length-5;
lines(g);
for(Object obj:this.frame.objectList){
if(obj.flag){
m=obj.m;
obj.x=endx-obj.getWidth()/2;
obj.y=endy;
if(length<=MIN_length){
obj.x=-150;
obj.y=-150;
obj.flag=false;
//加分
Bg.count+=obj.count;
Bg.waterFlag=false;
state=0;
}
if(Bg.waterFlag){
if(obj.type==1){
//金块
m=1;
}else if(obj.type==2){
//石块
obj.x=-150;
obj.y=-150;
obj.flag=false;
Bg.waterFlag=false;
state=2;
}
}
}
}
}
try {
Thread.sleep(m);
} catch (InterruptedException e) {
e.printStackTrace();
}
break;
default:
}
}
1.课设时间太少,期末周考试较多被其他科目时间占用,并没有充足时间准备 2.完善算法 3.对于本次课设,虽然显得很匆忙,但小组成员的能力都有了较大提升,对面向对象设计也有了更好的认知
以上是脚本宝典为你收集整理的面向对象设计(黄金矿工)全部内容,希望文章能够帮你解决面向对象设计(黄金矿工)所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。