前言
TuoJiChuanQi是本人在学习java时候,突发奇想做的一个小游戏,算是本人第一个java项目。项目基础代码来源本人之前学的一本书籍《Android游戏开发详解》作者是美James S Cho。书上的项目还是在eclipse年代,我写时as已经是主流了。因为闲置时间过长,又是第一个自己写的,所以整理一下开源供有兴趣学习的同学。请忽略一些不规范的命名方式和一些编程规范(懒得改)。
提示:以下是本篇文章正文内容。
一、项目介绍
本项目是一个Java项目的安卓应用程序,只使用了一个Activity和一个View,所有的功能都是由代码实现(甚至包括一个非常丑陋的输入法)。View继承自SurfaceView并实现Runnable,在run方法中计算下一帧的逻辑和输出画面,然后按每秒设定的帧数计算沉睡时间并睡眠。具体看代码(因为使用png图片,部分手机可能无法打开)。
一个开源的安卓手机单机游戏演示(未完成,仅供学习)
二、如果想要修改说明
1.怎么创建新画面
统一在game.state目录下,所有视图都继承抽象类State,每个视图的init()方法写初始化,update()方法写逻辑,reader(方法写渲染),具体详见代码注释。onLoad(),onExit()可以在MenuState找到示例。其他state我未完成,复杂页面实现类似于load压栈exit出栈的方式。
2.怎么创建新的怪物
统一在game.model目录下,你可以抽离出一个hero的基类,让战,法,道一起去继承它。抽离出一个monster的基类,让所有怪兽去继承它。那样只有在自身类里面实现个性化的技能,属性,图片。当然简单的做法可以直接复制现有的修改。
3.一些逻辑上的说明
WhatDo:
//1表示向左站立,2表示向左上站立,3向上站立,4向右上,5向右,6向右下,7向下,8向坐下站立,移动速度0格
//动画11表示向左走,12表示左上走,13向上走,14向右上走,15向右走,16向右下走,17向下走,18向左下走,走位移1格
//动画21表示向左跑,22表示左上跑,23向上跑,24向右上跑,25向右跑,26向右下跑,27向下跑,28向左下跑,跑位移2格
//对WhatDo取余是方向,10整除是判断跑步还是走路,图片编号10-20站立,110-190表示走路,210-290表示跑步
图片说明:
举例:左站001010 左走第一张001110
001表示装备布衣
个位数表示图片序号
十位速表示图片方向(序号分类)
百位表示人物状态(站立0,走路1,跑步2,物理攻击3,挖矿4,法术5,被击中6,死7)
千位,万位,十万位,表示装备编号,布衣001
装备编号*1000+跑步2,走路1,站立0,*100
站立图片共4张
走路图片共6张
写在最后
回头看以前的写代码还是很有热情的,因为我居然因为对安卓不熟悉,不会在view里面使用安卓原生的EditText就自己写了一个输入法。。。最后感谢《Android游戏开发详解》这本书,毕竟我靠这个小游戏找到一份开发的工作。。。如果项目有问题,可以QQ邮箱联系我。。。
如果有时间就写一下具体实现,比如这个自动寻怪。