目标分为:程序设计思想实践改进目标、Android平台手机开发技术的研究目标。
(1)运用面向对象的编程思想统一过程,对Chess足球小将手机游戏的系统结构、过程、功能等要素进行可视化的描述,为Android程序设计的可视化提供方法、技术上的支持,为系统的理论模型和软件建模提供参照。
(2)本系统中使用了多种基于Android平台的软件开发技术,根据要实现的系统功能,系统需要使用到的技术及技术研究的目标主要有:
手机游戏用户界面的人性化、个性化界面布局,给用户以良好的游戏体验;
移动设备上的图形编程,提供流畅靓丽的游戏过程界面;
3.2 研究主要内容
项目研究的内容主要有以下二大块:
第一部分是手机游戏的界面设计和背景音效的设计。和PC上的游戏开发有些许不同,手机游戏更加的注重用户体验,一个人性化的、时尚靓丽的游戏界面和优美个性化的音效设计是一个成功的手机游戏要达到的基本要求。
第二部分是对局智能程序的设计。可以和设计好的AI(Artificial Intelligence)算法进行游戏。人工智能程序设计是一项对算法要求很高的程序设计,特别是在手机这种硬件资源紧缺的环境中,更是需要一个高效的算法来提供强大的AI对局支持
3.3 研究的意义
游戏制作的目的是满足了人们休闲的需要,在紧张工作之余益智类的小游戏能够给人带来最大程度的放松,也可以增进人们之间的交流,沟通,通过游戏还可以认识更多的朋友,也可以到达跨省、跨市,甚至跨国间人们互相娱乐的目的。而消消看游戏学会锻炼眼力,时间利用快速、连续的移动,在十行十列限制区内,交换相对一致球移动。消消看除了掌握正确的动作和遵循一般的规律以外,还应学会一些特殊的变化。变节奏和变位置的,以避免加分被对手赢了。应掌握多种方式的移动球,做到能里能外,而且学会多获取随机出现增加的新球。
足球小将游戏是一个比较经典的游戏,根据软件工程有关的规范,以合理的开发原则,设计出消消看游戏,并给人们的生活带来唯美的艺术享受和健康愉快的补充。
游戏软件是一种与文化背景密切联系的产品,具有很强的民族性和丰富的文化内涵。伴随着游戏软件在市场上的销售,与其相关的文化也随之传播。因此发展我国自主的益智、健康的游戏软件已是当务之急。游戏是一种基于计算机的应用软件,是新型的休闲娱乐方式。当前开发的游戏软件应该做到知识性、娱乐性、趣味性、教育性相统一。
通过此次课题的设计,掌握制作一个游戏软件的方法,以及制作游戏软件的整个流程,制作游戏软件的步骤,为以后的就业工作打下基础。
四、Android程序设计相关技术概论
Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。根据Android的软件框图,其软件层次结构自下而上分为以下几个层次:
图4.1 Android系统架构
4.1 XML界面布局
XML 是一种基于 XML 的语言,因此需要对 XML(特别是 XML 名称空间)很熟悉。XML是英文“XML User Interface Language”的首字母缩写。顾名思义,它是一种应用XML来描述使用者界面的标示语言。
4.2 Android的Activity组件
Activity,一般代表手机屏幕的一屏,相当于浏览器的一个页面。在Activity中添加view,实现应用界面和用户交互。一个应用程序一般由多个Activity构成,这些Activity之间可互相跳转,可进行页面间的数据传递。每个Activity都有自己的生命周期。
4.3 SQLite数据库
在Android平台上,集成了一个嵌入式关系型数据库—SQLite。SQLite是支持结构化查询的轻量级数据库,能很好得适应于移动设备的应用。
Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。
4.4 Android 2D图形编程
1、Simple Graphics in View:就是直接使用Android已经实现的一些画图操作,比如说images,shapes,colors,pre-defined animation等等。这种方式只能画静态或者极为简单的2D图画,对于实时性很强的动画,高品质的游戏都是没法实现的。2、Canvas:首先我们要明白这个Canvas是一个2D的概念,是在Skia中定义的。也就是说在这个方式下还是说的画2D图形。
五、游戏研究重点、算法与思路
5.1游戏研究的重点
1.1 如何拼接 用一张整图不现实,这样会影响程序的执行效率,而且很占空间
只有通过图块的拼接。
1.2 装载地图 将地图索引写进文件,在程序装载的时候,通过输入输出流来读
地图内容。
2、游戏按键 在游戏中通过手触或者使用左右键使球员左右移动,通过判断击球的角度来确定足球运行的方向和速度,当你有事需要处理时,你可以点击两个比分中间的标志,来暂停住游戏的运行。
3、关卡 关卡地图的设置:不同的关卡,对手的移动速度是不同的
4、帮助信息
(1)让自己的队员击中球
(2)抓住时间打中道具,让你有更大的赢面。
(3)控制左右键来使球员移动。
5.2游戏研究的算法
(1)后台电脑判断左右移动
public class AIThread extends Thread{
GameView father; //视图类引用
boolean flag; //循环控制变量
int sleepSpan = 30; //睡眠时间
//构造器,初始化成员变量
public AIThread(GameView father){
this.father = father;
flag = true; //设置线程标志位
}
//线程启动后的执行方法
public void run(){
while(flag){
int d = father.ball.direction; //获取足球运动方向
if(d >0 && d<8){ //如果足球方向偏左
father.aiDirection = 4; //AI运动方向改为向左
}
else if(d>8 && d<15){ //如果足球方向偏右
father.aiDirection = 12; //AI运动方向改为向右
}
try{
Thread.sleep(sleepSpan); //休眠一段时间
}
catch(Exception e){
e.printStackTrace(); //打印并捕获异常
}
}
}
}
(2)碰撞测试(足球与边框)
public void checkForBorders(){
int d = direction;
//左右是不是出边界了
if(x <= father.fieldLeft){
//撞了左边界
if(d>8 && d<16 && d!=12){ //如果不是正撞到左边界
if(Math.random() < changeOdd){ //一定概率概率沿正确反射路线变向
direction = 16 - direction;
}
else{ //一定概率随机变向
direction = (direction>12?1:5) + (int)(Math.random()*100)%3;
}
}
else if(d == 12){ //如果是正撞到左边界
if(Math.random() < 0.4){ //注意这个概率要小,因为正撞上去希望随机变向的概率大一些
direction = 4;
}
else{
direction = (Math.random() > 0.5?3:5);
}
}
}
else if(x > father.fieldRight){
//撞到右边界
if(d >0 && d<8 && d!=4){
if(Math.random() < changeOdd){ //按正常反射路线变向
direction = 16-direction;
}
else{ //一定几率随机变向
direction = (direction>4?9:13) + (int)(Math.random()*100)%3;
}
}
else if(d == 4){ //如果是正撞到右边界
if(Math.random() < 0.4){
direction = 12;
}
else{
direction = (Math.random()>0.5?11:13);
}
}
}
d = direction;
//判断是否撞到上边界
if(y < father.fieldUp){
//不是正撞
if(d>0 && d<4 || d>12&&d<16){
if(Math.random() < changeOdd){ //一定几率沿正确反射路线变向
direction = (d>12?24:8) - d;
上一篇:
基于android手机通讯录的毕业论文
下一篇:
试论APP广告在手机中的应用