疯狂连连看之开发游戏界面组件一
疯狂连连看之开发游戏界面组件一
开发游戏界面组件
本游戏的界面组件采用了一个自定义View:GameView,它从View基类派生而出,这个自定义View的功能就是根据游戏状态来绘制游戏界面上的全部方块。
为了开发这个GameView,本程序还提供了一个Piece类,一个Piece对象代表游戏界面上的一个方块,它除了封装方块上的图片之外,还需要封装该方块代表二维数组中的哪个元素;也需要封装它的左上角在游戏界面中X、Y坐标。图18.4示意了方块左上角的X、Y坐标的作用。
方块左上角的X、Y坐标可决定它的绘制位置,GameView根据这两个坐标值绘制全部方块即可。下面是该程序中Piece类的代码。
程序清单:codes\18\Link\src\org\crazyit\link\view\Piece.java
public class Piece
{
// 保存方块对象的所对应的图片
private PieceImage p_w_picpath;
// 该方块的左上角的x坐标
private int beginX;
// 该方块的左上角的y坐标
private int beginY;
// 该对象在Piece[][]数组中第一维的索引值
private int indexX;
// 该对象在Piece[][]数组中第二维的索引值
private int indexY;
// 只设置该Piece对象在棋盘数组中的位置
public Piece(int indexX , int indexY)
{
this.indexX = indexX;
this.indexY = indexY;
}
public int getBeginX()
{
return beginX;
}
public void setBeginX(int beginX)
{
this.beginX = beginX;
}
// 下面省略了各属性的setter和getter方法
...
// 判断两个Piece上的图片是否相同
public boolean isSameImage(Piece other)
{
if (p_w_picpath == null)
{
if (other.p_w_picpath != null)
return false;
}
// 只要Piece封装图片ID相同,即可认为两个Piece相等
return p_w_picpath.getImageId() == other.p_w_picpath.getImageId();
}
}
上面的Piece类中封装的PieceImage代表了该方块上的图片,但此处并未直接使用Bitmap对象来代表方块上的图片——因为我们需要使用PieceImage来封装两个信息:
Ø Bitmap对象。
Ø 图片资源的ID。
其中Bitmap对象用于在游戏界面上绘制方块;而图片资源的ID则代表了该Piece对象的标识,当两个Piece所封装的图片资源的ID相等时,即可认为这两个Piece上的图片相同。如以上程序中粗体字代码所示。
下面是PieceImage类的代码。
程序清单:codes\18\Link\src\org\crazyit\link\view\PieceImage.java
public class PieceImage
{
private Bitmap p_w_picpath;
private int p_w_picpathId;
// 有参数的构造器
public PieceImage(Bitmap p_w_picpath, int p_w_picpathId)
{
super();
this.p_w_picpath = p_w_picpath;
this.p_w_picpathId = p_w_picpathId;
}
// 省略了各属性的setter和getter方法
...
}
本文节选自《疯狂Android讲义(含CD光盘1张)》一书。
《疯狂Android讲义(含CD光盘1张)》一书已由电子工业出版社正式出版,本书由李刚编著。
当当:
http://product.dangdang.com/product.aspx?product_id=21099097&ref=search-1-pub
卓越:
http://www.amazon.cn/%E7%96%AF%E7%8B%82Android%E8%AE%B2%E4%B9%89-%E6%9D%8E%E5%88%9A/dp/B0055BH3PY/ref=sr_1_1?ie=UTF8&qid=1309491286&sr=8-1
互动:
http://product.china-pub.com/193974
转载于:https://blog.51cto.com/bvbroadview/604246
疯狂连连看之开发游戏界面组件一相关推荐
- 项目开发-疯狂连连看游戏开发
疯狂连连看游戏开发 游戏简介:疯狂连连看,是一款简单易玩的手机休闲游戏,界面布局简单,玩法简单,适合广大年龄层的用户进行休闲.放松.该游戏,应用于Android手机操作系统,Android1.6以上. ...
- 疯狂连连看之开发界面布局
开发界面布局 本程序将会使用一个RelativeLayout作为整体的界面布局元素,界面布局的上面是一个自定义组件,下面是一个水平排列的LinearLayout. 程序清单:codes\18\Link ...
- android游戏开发组件,Android实现疯狂连连看游戏之开发游戏界面(二)
连连看的游戏界面十分简单,大致可以分为两个区域: --游戏主界面区 --控制按钮和数据显示区 1.开发界面布局 本程序使用一个RelativeLayout作为整体的界面布局元素,界面布局上面是一个自定 ...
- Android疯狂连连看游戏
今天看完了李刚老师的<疯狂Android讲义>一书中的第18章<疯狂连连看>,从而学会了如何编写一个简单的Android疯狂连连看游戏. 开发这个流行的小游戏,难度适中,而且能 ...
- 我的Android进阶之旅------gt;Android疯狂连连看游戏的实现之游戏效果预览(一)
今天看完了李刚老师的<疯狂Android讲义>一书中的第18章<疯狂连连看>,从而学会了如何编写一个简单的Android疯狂连连看游戏. 开发这个流行的小游戏,难度适中,而且能 ...
- 疯狂ios讲义之疯狂连连看游戏简介
<连连看>是一款广受玩家欢迎的小游戏,它具有玩法简单.耗时少等特征,尤其适合广大白领女性在办公室里休闲娱乐.图13.1显示了该游戏的游戏界面. 从图13.1可以看出,在<连连看> ...
- 038——VUE中组件之WEB开发中组件使用场景与定义组件的方式
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
- UI组件库从1到N开发心得-组件篇
正文 距离第一篇UI组件库文章发布已经过去3个月了,在此期间利用零零散散的时间持续更新owl-ui组件库,目前owl-ui移动端组件库已经更新3大类(基础.表单.弹出层)9种组件(Button.Tab ...
- 安卓开发.四大组件.activity.1
安卓开发.四大组件.activity.1 转载于:https://www.cnblogs.com/motadou/p/3534056.html
最新文章
- mysql字段中去掉括号
- noip2010关押罪犯
- EasyUI DataGrid 合并单元格
- jquery的closest方法和parents方法的区别
- ArcGIS 10.0 ArcGIS 9.3.1数据生成实验--个人地理数据库
- SOLIDWORKS——参数化建模
- nssl1470-X【并查集,素数】
- c++ socket学习(1.2)
- 带有emplace开头的STL为何优于其它插入函数
- Android的布局
- 【codevs1281】Xn数列,矩阵乘法练习
- Linux 远程和本地的一些解决方案
- 计算机cmd复制粘贴指令,win7系统使用CMD命令复制和删除文件夹的方法
- 借贷记账思考2015.12.28
- java 工作流 实例_Activiti工作流的应用示例
- matlab中基于十字形窗口的滤波算法,×字形滤波窗口在Matlab自适应中值滤波算法中的应用...
- CASS删除分幅后图框内部十字丝
- unb计算机科学,【加拿大新布伦瑞克大学】加拿大UNB_University of New Brunswick - 加拿大大学 - 加拿大留学云...
- 深入理解模型视图、自定义模型
- 广告行业中那些趣事系列51:超牛的kaggle比赛Favorita Grocery Sales Forecasting冠军方案...
热门文章
- 大数据之-Hadoop三大发行版本---大数据之hadoop工作笔记0010
- ES6新特性_ES6生成器函数实例_第二个实例---JavaScript_ECMAScript_ES6-ES11新特性工作笔记023
- 终止运行线程的注意事项
- 打开帧率显示_2K165hz IPS屏,微星MAG274QRF-QD显示器
- 嵌入式电路设计(从电路到系统)
- 嵌入式电路设计(电路仿真)
- 随想录(用好自己的时间)
- html轮播图淡入淡出,一个简洁的Jquery效果 banner轮播(1) 淡入淡出效果
- jsp下拉列表java_java – JSP:下拉列表2取决于下拉列表1
- 关于电脑的基础知识_改装小白必看的汽车音响改装基础知识!