小组第四周总结

时间:2022-12-20 08:29:19

小组项目第四周总结

游戏界面

小组第四周总结


操作方式

方向键←:模块左移
方向键↓:模块加速向下移
方向键↑:调整模块


部分代码注释

private int aa=0;
private int ic=0;
private final int sp_width=10; //游戏界面宽格10格
private final int sp_height=20; //游戏界面高格20格
private final int types[][][]={ //游戏模块
{{-1,0},{0,0},{1,0},{2,0}}, //长条(一共两种形态)
{{0,-1},{0,0},{0,1},{0,2}},
{{-1,0},{0,0},{1,0},{1,1}}, //直角(右)(一共四种形态)
{{0,1},{0,0},{0,-1},{1,-1}},
{{1,0},{0,0},{-1,0},{-1,-1}},
{{0,-1},{0,0},{0,1},{-1,1}},
{{-1,0},{0,0},{0,1},{1,0}}, //直角(中)(一共四种形态)
{{0,1},{0,0},{1,0},{0,-1}},
{{1,0},{0,0},{0,-1},{-1,0}},
{{0,-1},{0,0},{-1,0},{0,1}},
{{-1,1},{-1,0},{0,0},{1,0}}, //直接(左)(一共八种形态)
{{1,1},{0,1},{0,0},{0,-1}},
{{1,-1},{1,0},{0,0},{-1,0}},
{{-1,-1},{0,-1},{0,0},{0,1}},
{{0,-1},{0,0},{1,0},{1,1}},
{{-1,0},{0,0},{0,-1},{1,-1}},
{{0,1},{0,0},{1,0},{1,-1}},
{{1,0},{0,0},{0,-1},{-1,-1}},
{{0,0},{0,1},{1,0},{1,1}} //正方形(一共就一种形态)
};

private int[][] block_box=new int[4][2]; //四个方块坐标
private int[][] block_box_tt=new int[4][2];
private int block_x=0,block_y=0; //游戏方块在游戏界面中的坐标
private int block_type=0; //方块类别
private int[][] game_space=new int[20][10]; //空间数据
private int movetype=0;
private int scroe=0;
private int speed=5;

public RussionBlockGame()
{
clearspace();
makenewblock();
}

public void clearspace() //初始化空间数据
{
for(int i=0;i<sp_height;i++)
for(int j=0;j<sp_width;j++)
game_space[i][j]=0;
}

public void makenewblock() //随机出现模块,利用随机生成数,在switch语句产生对应的模块
{
aa=(int)(Math.random()*100%7+1);
ic=aa*10+1;
switch(aa)
{
case 1:
block_type=0;
break;
case 2:
block_type=2;
break;
case 3:
block_type=6;
break;
case 4:
block_type=10;
break;
case 5:
block_type=14;
break;
case 6:
block_type=16;
break;
case 7:
block_type=18;
break;
}
block_x=1; //产生模块时,从最上面第一个出现,即x=1;
block_y=sp_width/2; //产生模块时,从界面中间出现,即y=5;
for(int i=0;i<4;i++) //一共五种类型的模块,有一个点生成对应的模块
{
block_box[i][0]=block_x-types[block_type][i][1];
block_box[i][1]=block_y+types[block_type][i][0];
}
}

部分BUG

1.游戏在暂停后,点击开始会无法重新开始。
2.游戏过程中会偶尔会发生模块凭空出现的情况。
3.在模块超出游戏设置的空间时,游戏无法主动结束。
4.无法主动更替背景颜色与难度等级


小组感想

之前实验也设计过成绩管理系统等程序,课程设计思想大致相似,变化范围有限,没有太多可发挥的空间。大家作品结果离不开一个模式。相比一些数据库软件,游戏的设计有很多人情色彩和艺术思想的发挥。然而“心比天高,身为下贱”。设计游戏的困难远超想象。在设计初期,为了解决模块的运动,游戏界面的建立,我们花费了数天时间查询相关的技术,如需要使用的线程、Game包的功能、高级,低级图形界面的使用、贴图等,每一项都需要一定的时间去熟悉额掌握。这款游戏作为小组的项目设计,其模块间的联系十分紧密,代码重复执行率高,小组项目进度曾一度停滞不前。所幸,网上有很多热情的人,贴吧大神除了授业解惑外,还提供了他设计的代码以供参考,这是开源精神的体现。我们小组曾含泪播种,进行过无数次调试,修改,能最终看到成品也算是含笑收获了。


小组成员分工

祁玮:负责博客编写
韩昊辰:调试游戏,寻找BUG
史婧瑶、荆玉茗:寻找相关资料,对部分源代码设计测试代码