如何用手机自学java....

本人大二电子工程专业纯粹因為兴趣想去做一个手机app(安卓系统的),功能大概和58同城或者美团的手机客户端类似(不需要在线支付的功能)目前已经学了C++,(没有學Java)大概计算机二级的水平请教各位大神,要怎样学学什么才能最快速度做成这个app

背景:仓库里有许多东西放的亂七八糟,用的时候总要花不少时间去找最近想整理一下,然后规类入库再做小程序来管理,用的时候只要输入关键字搜索一下就OK了
问题:程序要在支持JAVA的手机上运行,想自己写个但不知道要学哪些东西,如何入门网上逛了一大圈也没找出个结果。看来收集情报嘚能力不行啊~还请高手点拨一下在此先谢谢了
谢谢ma_yongqian的热心,不过我想了解更详细一些
比如:从零基础到写出一个小程序在手机上运行所需经历的过程,在这过程中需要依次掌握哪些知识及

目前开发手机游戏的主要语言还昰以kjava为主现在市面上也很多介绍这方面的书,老实说这些书都是千篇一律其实要想真正学习好手机游戏开发不能仅仅局限于书中的那些模式,下面是我认为在手机环境中开发2D游戏中需要掌握的知识

1、基础数学和物理学:这是基础不要认为这个很枯燥,其实不掌握基础數学和物理学你在游戏这方面是走不远的。基础数学主要包括的是

a)求两点间距离、两直线焦点、圆方程、直线方程

b)矢量的计算--非常重偠比如矢量的差乘,点乘使用矢量计算转向问题

e)链表结构,Kjava中有Vector,如果你认为其效率不高自己可以实现一个自己的Vector(注意与矢量的Vector分開)

物理学:主要包括1)速度的矢量表示和计算 2)弹性碰撞 3)斜抛运动 4)反射计算等

2、学习掌握地图绘制原理能实现编码与数据的分离,掌握地图编辑器的使用显示地图采用克马克计算方式。

3、掌握精灵动画的基础编写在此基础上掌握或自己开发动作编辑器。

4、精灵與地图物件的遮罩问题和精灵间的遮罩问题

6、FMS有限状态机的实现,这是--模拟人工智能目前看最好的办法其次是A*算法等。游戏中其实神經网络遗传算法使用的并不太多,好的状态机制是很重要的

8、掌握在游戏中使用脚本语言比较可惜的是在Kjava中不能使用Lua语言(java中可以使鼡for java的Lua,但是在Kjava中目前我还没能找到)网上也有朋友自己搞出了脚本语言

9、努力使你的程序是实现代码与数据的分离分离体现就是,程序昰程序数据放到外部文件中,可以是TXT的也可以是二进制的

以上主要是指程序员,游戏还需要美工和策划这个不再我这讨论之列。另外对于棋牌博弈类游戏主要是在算法上比如决策树等这些都是一个游戏程序员必须很好掌握的知识,如果你仅仅局限于书上那些知识伱会发现你也能编个游戏,但是距离商业化的程序还差的很远例如,普通的书上对人物的移动一般是x+=step使用步长来计算下一帧的位置,洳果你掌握矢量就会使用速度来表示 x+=Vx*t,开始你可能不习惯但是很快你会发现引入速度这样的矢量会给你的程序更贴近现实和优雅的计算。虽然kjava中为了速度不得不牺牲面向对象的一些优点但是掌握好面向对象的开发技术和模式也是很必要的。

除了以上的你还需要掌握版夲管理器(目前比较多使用SVN)代码对比合并工具(B2,Merge)单元测试(老实说kjava下单元测试是不很方便)以及多接触些手机,因为你很快会發现不同手机的上变化会直接影响你的开发对于那些刚学习的同学,时你可以使用MIDP2.0入门但是一旦掌握后还是要使用MIDP1.0来开发自己实现那些管理类。

以上是我对那些准备在手机上开发2D游戏进而学习的同学的一点建议希望能有所帮助!


我要回帖

 

随机推荐