1.团队名称、团队成员介绍
团名:随便敲敲
陈垚嘉(组长)
郑俊佳(组员)
2.项目git地址
3.项目git提交记录截图(每个人)
4.项目功能架构图与主要功能流程图
5.UML类图
6.项目运行截图
7.关键代码
1.图形界面
Image offScreenImage;
@Override
public void paint(Graphics g) {
offScreenImage = this.createImage(768,1000);
Graphics gImage = offScreenImage.getGraphics();
bg.paintSelf(gImage);
if(state==1){
//绘制物体
for(Object obj:objectList)
{
obj.paintSelf(gImage);
}
line.paintSelf(gImage);
}
g.drawImage(offScreenImage,0,0,null);
}
2.线的移动以及物体的移动以及得分
void paintSelf(Graphics g){
logic();
switch (state){//左右摇摆,n为角度的百分比
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.isFlag()){
m=obj.getM();
obj.setX(endx-obj.getWidth()/2);
obj.setY(endy);
if(length<=MIN_length){
obj.setX(-150);
obj.setY(-150);
obj.setFlag(false);
//加分
Bg.setCount(Bg.getCount()+obj.getCount());
Bg.setWaterFlag(false);
state=0;
}
if(Bg.isWaterFlag()){
if(obj.getType()==1){
//金块
m=1;
}else if(obj.getType()==2){
//石块
obj.setX(-150);
obj.setY(-150);
obj.setFlag(false);
Bg.setWaterFlag(false);
state=2;
}
}
}
}
}
try {
Thread.sleep(m);
} catch (InterruptedException e) {
e.printStackTrace();
}
break;
default:
}
}
3.关卡变化
public void nextLevel(){
if(bg.gameTime() && state==1){
if(Bg.getCount() >= bg.getGoal())
{
if(Bg.getLevel()==5){state=4;}
else {
state=2;
Bg.setLevel(Bg.getLevel()+1);
}
}else {state=3;}
dispose();
GameWin gameWin1 = new GameWin();
gameWin1.launch();
}
}
.勾爪与物体的碰撞检测
void logic(){
for(Object obj:this.frame.objectList){
if(endx>obj.getX() && endx<obj.getX()+obj.getWidth()
&& endy>obj.getY() && endy< obj.getY()+obj.getHeight()){
state=3;
obj.setFlag(true);
}
}
}
8.尚待改进或者新的想法
没有数据库,没有用户登录,只有石块和金块也显得单调
9组员任务分配
陈垚嘉(组长):图形界面的绘制,勾爪的摇摆伸缩抓取,物体的绘制及重量体现
郑俊佳:积分设置,物品设置,关卡设置,游戏状态的设置,商店购物