Android游戏快速入门(一):基础储备
智能手机时代已经到来了,手机的性能正在以你我惊讶的速度提升。那么手机游戏也在迅速发展,从简单的平面单机游戏不断的向复杂的3D网络游戏发展。所以,手机游戏的市场肯定也在不断扩张。那么,作为程序猿,我们也不能落后,要与时俱进,才不会被淘汰。Android是眼下最火的手机平台,那么我们选择android平台开发肯定没错。今天我们就带着大家一步步攻克android手机游戏。其实,这一切都没有那么难,一切都是自我设限。好吧,那就一起行动起来吧!
我打算陆续的把游戏中用到的技术点和我的一些体会发布到这里,不会一下子全部罗列出来,那样会增加大家的学习负担。今天,我们将讨论游戏的基础储备。
其实,游戏有很多分类,在此我就不啰嗦了,baidu搜索就有答案。我最终以大战飞机(雷电)游戏为实现目标和讲解案例。我不采用任何的游戏引擎,全部以android原生态的功能来实现。
关于游戏开发要掌握的一些基础:
1、坐标系Android系统中,屏幕的坐标原点(0,0)跟电脑屏幕的一样,在屏幕的左上角,横向代表x轴,向右延生为正方向,纵向代表y轴,向下延生为正方向,如下图:
为了能让游戏角色显示在屏幕的合适位置,我们需要知道屏幕的宽度和高度作为参考。在Android获取屏幕的高宽很简单,只需要在Activity中获取WindowManager对象,然后从WindowManager对象中获取Display对象,再从Display对象中获取高宽,代码如下:
WindowManager windowManager = getWindowManager();Display display = windowManager.getDefaultDisplay();int screenWidth = display.getWidth();int screenHeight = display.getHeight();
几乎所有的游戏都需要做边界判断,比如我们要实现的飞机大战,我们需要判断玩家、敌人和子弹等视图的边界是否超过屏幕,或者他们之间有没有发生碰撞。简单来说就是判断有没有超出屏幕的边界,或者游戏角色之间有没有重叠,一般都是通过坐标(x,y)来判断的。
1) 如果x<0,那么超过了屏幕的左边界,如果x>屏幕的宽度,那么超过的屏幕的右边界。
2) 如果y<0,那么超过了屏幕的上边界,如果y>屏幕的高度,那么超过了屏幕的下边界。
游戏中的角色移动其实也是简单的,就是不断的改变角色的x,y坐标的值,然后不断重新把他们绘制到屏幕里,只是这个动作的非常快,以至于人的眼睛是无法分辨。但是,这种角色坐标改变的逻辑是需要我们程序猿按照游戏的逻辑的来控制的。常常会使用到线程的知识点,不过也很简单。
1) 如果向左移动:x 的坐标减小,向右移动:x 的坐标增大;
2) 如果向上移动:y 的坐标减小,想下移动:y 的坐标增大;
这一讲我们就讲这些,下一讲我们将开始Android中关于游戏的几个重类,以及实现文字、图像和背景的绘制,最后让他们动起来。
敬请期待吧!!!