全部博文(436)
分类:
2010-11-04 23:04:14
网络工程第五次进度报告(2010.10.29-2010.11.4)
一、 任务概述:
在本阶段,我们的主要任务就是确定在上阶段的基础上确定游戏的最终模型,进行具体的编码设计。
1)确定游戏规则:讨论修改了第四阶段关于游戏每个关卡的设计,确定了游戏的规则。
2)确定每个关卡:搭建每个关卡的基本界面。
3)功能实现:实现部分简单关卡的功能。
二、 游戏的关卡设置和说明:
1) 第一关:
猜猜哪张是红桃A,每次游戏有三张纸牌,随机排列,用户点击纸牌进行翻牌,显示答案,对于用户选择的答案进行高亮显示,系统会提示用户选择正确或错误,当用户选择正确是,提示笑脸,错误提示哭脸。
初始界面
2)第二关:
系统从牌库中随机抽取六张扑克牌,用户点击纸牌猜牌面大小。对于答案用高亮现实,系统提示用户答案是否正确。首先在界面设计时添加了一个静态文本视图,6个图片视图,1个按钮,对应于类中就有6个图片视图的私有成员和一个按钮的私有成员,另外还有一个int类型的图片管理集的私有成员和一个用于判断的int 型变量a等。
然后通过onCreate函数将图片视图和按钮与界面变量进行结合。其中调用了一个Randon()函数将纸牌顺序进行随机排列。之后设置了一个界面监听函数,并通过一个switch对用户选择的所有可能情况进行设置
界面截图
3)关卡的选择:
关卡选择为进入系统的主界面,在这个界面中用户可以进行关卡选择,系统共分为两关,关卡选择界面搭建如下,在这个模块中界面上的两个按钮和另外的两个java文件进行连接,在本阶段,只有界面的搭建,功能上尚未实现。
三、 以解决问题
在这个阶段,我们更加详细的讨论了整个游戏的模型并进行了界面和部分功能模块的搭建,第一关和第二关的功能已初步实现,关卡选择的界面搭建也已经完成。
四、 遗留问题
1)每个游戏的关卡中都有相应的图片并且产生相应的R.java所以把所有的东西放到一起后会报很多的错误,无法找到相应的ID,不能相互的融合。
2)看了很多关于添加背景音乐的知识,尝试在系统中添加音乐没有调试成功。
五、 本阶段任务和下阶段展望
本阶段任务:
本周我们将任务分为三个模块:1、每一关游戏的具体实现与优化。2、选关界面的设计。3、选关界面与游戏界面的连接。在第十周结束时,我们完成了基本的游戏的具体实现(有待进一步提高)和选关界面设计这两个方面。选关界面与游戏界面的连接还没有完全实现,但是已经有了大体的思路。
下阶段展望:
十一周我们计划重点突破选关和游戏界面的连接。在完成该项任务之后我们将对游戏的具体实现进行进一步地优化。如果这些任务能够顺利完成,那么我的任务就已经接近尾声了。相信我们下一周能够完成既定任务
六、个人总结
本阶段,我和我们组的成员一起讨论,对游戏的关卡设置及每一关的具体内容进行具体设计,并对这些进行具体实施。我和我们组的付佳丽负责的是第一关的具体实现,在此关中,我们尝试着对上一阶段的界面及内容进行深入。我们刚开始做时,有些不顺手,不知从何下手。在对上一阶段的程序进一步的阅读中,经过不断的添加、修改、调试,我们在上一阶段的基础上,给第一关中的牌面更改了背景,并在判断猜牌是否正确的过程中给界面添加了两张不同的图片,若猜牌正确,则显示笑脸;否则,显示哭脸(具体界面上边已经展示)。当然在这之中,我们也遇到了一些难,如:虽然哭脸和笑脸能够加进去,但是位置不太对,看到这样的效果,我们又回头去改main.xml中修改放置这两张图片的ImageView的位置及大小,经过一番修改终于实现了我们想要的效果。但是,虽然这个问题解决了,另外一个问题又冒了出来,第一关是三张牌进行猜牌,猜完某张牌后,将显示三张牌的正面,只是透明度不同,使得玩家点中的牌突出出来,但是实践的结果是有时显示两张牌,有时显示三张牌,这个问题让我们迷惑很久,我们只好再回到源程序中继续研读,找寻根源。终于,功夫不负有心人,我们发现在.java的程序中的随机函数的循环做的次数计算的不对,将其改成正确的值后就可以了(程序段如下)。这一阶段给我的感受是:经过不断钻研、努力后的成功,即使是很小的成就,也会让人有说不出的兴奋。
private void Randon()
{
for(int i=0;i<myImage.length;i++) // 将myImage.length改成3
{
int temp=myImage[i];
int s=(int)(Math.random()*2);
myImage[i]=myImage[s];
myImage[s]=temp;
}
}
——陈艳艳
本阶段,我们小组成员进一步讨论了对游戏关卡的设置和各个模块的基本界面。经过详细的讨论,我们制订了具体的计划,并在本阶段完成了基本界面和部分功能的实现。在这个阶段中,我主要和陈艳艳负责第一关的实现。我们尝试更改上阶段阅读的代码和对添加监听事件方法的深入研究。在这个阶段中,我们初步实现了第一阶段的基本功能,初始界面中显示三张纸牌的背面,点击后进行翻牌,对于回答错误现实一个哭脸,回答正确则显示笑脸。在这个功能中主要使用了ImageView类,通过R.id.mImage01为相应的ImageView变量找到main.xml界面中的组建myImageView4=(ImageView)findViewById(R.id.mImage05),然后为ImageView添加源图片myImageView4.setImageResource(frame),通过if语句的判断根据用户的回答结果不同为相应的变量添加不同的源。这个阶段中我们遇到的最大困难便是控制纸牌的随机顺序,由于循环次数控制不对,我们的纸牌只能现实两张结果,为了解决这个问题我们检查了java文件和xml文件按,做了大量的工作,最后,通过小组成员一起努力,终于找到了原因,调通了程序。前几个阶段阅读了很多的小代码,等到真正进入开发阶段才发现一个循环次数能影响整个程序,在本阶段最大的收获就是更加深刻的理解只有经过实践的知识才能转化成自己的知识,真正的开发光有大量的代码阅读是远远不够的,实践是掌握知识最好的途径。
——付佳丽
这周我和同组的同学已经开始了编程工作,我们完成了整个游戏的框架,游戏的第一关已经制作完毕。通过以前的学习,完成了游戏的画面设定,包括游戏的背景图片、直拍图片的设定和不同TextView见得切换。游戏的细节也已经做好了,游戏里文字的颜色、按钮的属性等都以完成。我还想在游戏中加入一些音效,用了一下午的时间,仍没有在找到实际可行的办法。
下一周的计划是,学会Android音效的使用,把背景音乐加入到游戏中,与其他人一起努力,争取在下周完成程序的编写。
——吴雄飞
本周在安排完小组任务之后我们开始着手各自的内容。我跟吴雄飞的内容是实现第二关——猜猜哪张牌最小的代码实现与界面优化。首先我们用onCreate函数将图片视图和按钮与界面变量进行结合,并在其中调用了一个Randon()函数将纸牌顺序进行随机排列。在响应函数中通过一个switch对玩家选择的所有情况进行设置。然后将用户选择与正确答案进行对比,并给出不同的响应消息。在设置按钮响应函数时,通过int a判断用户是否作出了选择。若已作出选择,则将6个视图都填充上牌面的背景色,并将a--。在完成上述程序之后,出现了一点小问题:当随机从13张牌中选择的6张牌中不含有3,则永远提示“对不起你猜错了”。后来原因是在进行if判断时固定了比较对象。解决方法是通过一个中间变量b和一个for循环找到6张牌中的最小值,然后让玩家的选择与最小的b进行比较。之后我们还对界面进行了美化,添加上了背景。但是在我们试图添加声音时,却始终会出现错误提示,这个还有待解决。
——李玲
在这一阶段中,我们明确了所要完成的具体工作;总体分为三大部分,选关卡、第一关以及第二关游戏的实现。此阶段主要负责实现选关卡的功能。在过去的几周里,我们实践了各种较小的程序应用,对其中的界面设置有了一定的认识,除此以外,在上上个阶段中,实现的多个Activity的用户界面设计对选择关卡功能有很大帮助。选择关卡,对它的初步认识就是选择,某一关则跳转到相应的游戏中。看似很简单,但是却需要多个文件的处理。首先是对Activity的.java文件的编写,在这个文件中需要用到Intent intent =new Intent()来找到下一个Activity;其次在这里还要利用setContentView()显示所对应的.xml所配置的界面;除此以外,还要对AndroidManifest.xml进行相关设置等等。按照上述进行工程的编写,虽然没有报错,但是没有跳到下一个关卡。对于,这一点,我们还没有一个合适的办法来解决。
选关卡的界面初步设计:
——陈艳玲
这个阶段我们主要是进行了游戏第一关和第二关的设计,并把上次设计的关卡与游戏相连接。我们是分开做的,每个人都有自己负责的部分,有自己的文件,运行效果都很好。我主要负责把上次开发的关卡与这次开发的第一关和第二关连接在一起,形成一个可以自由选关的游戏。我们相当于要把三个项目文件最后整合成为一个项目文件,所有的.java文件放在一个src下,但是遇到了很多的问题,每个游戏的关卡中都有相应的图片并且产生相应的R.java所以把所有的东西放到一起后会报很多的错误,无法找到相应的ID,不能相互的融合。后来我又尝试把关卡的显示换成按钮的形式,最后嵌进游戏中相应的关卡。使用ListView 中某项被选中后的逻辑,主要是通过Intent intent=new Intent();intent.setClassName(this,"com.webabcd.view._"+mData.get(position));startActivityForResult(intent, 0);}}来实现。
——陈卓