Android 游戏开发 NancyGLines 设计
2010-03-24 05:26:00 来源:WEB开发网thread.doTouch(x, y);
return super.onTouchEvent(event);
}
然后,实现GLinesThread的doTouch方法:
public void doTouch(float posX, float posY) {
// 激活或移动某个球
}
我会使用一个二维数组来保存棋盘上每个格子的状态:
private int mStatus[][];
比如,mStatus[0][1] = Color.BLUE ,表示,第一行第二列的格子放置了一个蓝色的球。
当我需要移动某个球时,首先需要实现最短路径算法,因为如果有其他球的阻碍,是不能移动的。因此,我使用了一个类似的Dijkstra 最短路径算法,实现了球的移动函数:
private void moveBall(int currentX, int currentY, int targetX,
int targetY) {
}
然后,球移动过去后,还需要实现判断是否满足横竖斜大于等于5个的情况,如果满足,则消除那些球。因此,添加clearBalls方法:
private boolean clearBalls(Ball ball) {
}
在没有满足得分条件时,需要落下新的三个球,因此,实现getThreeBalls方法:
private void getThreeBalls() {
}
其实到这里,整个框架已经搭建起来了。整个的原理在与通过一些操作修改棋盘状态的mStatus数据结构,操作完成后,调用updateCanvas()刷新屏幕。
实现好上面的方法后,游戏已经可以运行起来了。就是上面截图中看到的效果了。之后我还需要做一些界面美化,加入菜单,关卡的操作。
最后附上:
完整代码: /Files/coderzh/Code/NancyGLines.rar
体验apk文件:/Files/coderzh/Code/NancyGLines.apk.rar
希望大家提宝贵意见,同时,我也会继续完善这个游戏。
更多精彩
赞助商链接