如何为Android创build一个简单的2D游戏?
在游戏开发方面,我是一个完全新手,我需要有人指点我正确的方向。
为了清晰起见,请考虑以下animation。
基本上我需要知道如何模拟上述animation作为一个Android游戏,但我不知道这样做的必要步骤。 我的问题可以概括如下:
- 我是否需要使用游戏引擎来进行这样简单的游戏?
- 或者可以不使用任何特定的框架呢?
- 我是否需要使用Adobe Flash等animation应用程序?
- 做这种游戏有什么必要的步骤?
是否使用游戏引擎是一种偏好。 这将取决于你究竟是什么。 如果你想了解渲染,碰撞检测等基本概念,那么自己写这些是完全可以接受的,而且很有趣。 另一方面,如果你只是想让游戏完成,而不必担心细节,那么引擎肯定是要走的路。
游戏引擎的范围从非常基本的包装(通常提供更简单的function,照顾低级任务)到高度复杂的抽象,其中实际的游戏开发不再类似于任何特定的平台 – 它们有时也允许您创build游戏一次并部署它到各种平台没有任何改变。
要实现基于该animation的游戏,您可以使用以下内容:
- 对于每个非玩家angular色来说,创build一系列连续的“帧”,当循环时给出移动幻觉。 这些可以在任何graphics应用程序中创build(最好在纹理贴图/图集中)。
- 对于玩家angular色,您需要为每个“移动”设置一个animation序列,例如
kick
,punch
等。然后在玩家触发某个动作时播放正确的序列(例如,当玩家按下踢button时播放kick
序列)。 - 每个字符都应该有一个边界框(即一个定义字符大小和位置的矩形)。 基于攻击types,玩家angular色可能应该具有不同大小的框(即,
kick
动作的框比向punch
动作的框延伸得更远。 - 随机产生屏幕右侧的字符,并以某种速度(基于types?)向玩家移动。 在每次迭代期间,testing玩家与每个非玩家边界框之间的碰撞。 如果发现碰撞,请检查玩家是踢还是冲,并杀死被击中的angular色,如果玩家没有进攻,可能会伤害他/她。
这是你的问题的一个非常基本的描述,应该给你足够的想法来研究,以实现一个基本的版本:)
一些游戏引擎你可能想看看:
- Andengine
- LibGDX
- 统一
如果您有兴趣专门学习制作Android游戏,请看这本书:
- 开始Android游戏
有很多游戏引擎可以帮助你完成工作。
这里是所有移动游戏引擎的链接 。
Android 2D游戏引擎
的Cocos2D-X
语言:C ++
方向:2D
难度:中级
Corona SDK
语言:Lua
定位:2D / 3D
难度:中级
EDGELIB
语言:C ++
方向:2D
难度:中级
GameMaker
语言:无(graphics)
方向:2D
难度:容易
GameSalad的
语言:无(graphics)
方向:2D
难度:容易
HaxeFlixel
语言:Haxe
方向:2D
难度:中级
libGDX
语言:Java
定位:2D / 3D
难度:中级
果酱
语言:C ++
定位:2D / 3D
难度:中级
Stencyl
语言:ActionScript(可选),Objective-C(可选)
方向:2D
难度:中级
Unity3D
语言:JavaScript(实际上是UnityScript),C#(单声道)
定位:2D / 3D
难度:中级
我按你问的顺序回答
-
build议始终使用引擎,因为它们使工作更容易,这就是他们的目的。
-
你可以在没有框架的情况下做某些animation和动作,但实际上在代码和逻辑上会变得更加复杂。
-
Adobe Flash在android上是无用的。 大多数的Android设备不运行Flash,用户不需要做一些事情就可以得到它。
-
我推荐的步骤是
- 研究一些引擎
- 回顾一些框架
- select和引擎取决于你的游戏的逻辑
-
一些引擎可用于冒险游戏,谜题和其他RPG游戏。 根据你的需要去一个。
几个简单的程序:
- 应用游戏工具包
- 适用于Android的Cocos2d
- Corona SDK
- GameMaker
- Stencyl
你可以从这些开始。 Unity是最好的引擎,但也是最复杂的。
我问了自己这个问题大概10年后才find一个好的答案,在我看来,所有Android的游戏框架还不够成熟或有点难以实现。 我会build议你使用这个 。 你可以在所有设备上运行你的游戏(不仅仅是android)。 如果知道基础知识,学习起来相当容易。
这是一个很好的教程 ,让你开始!
我做了一个游戏,使用Adobe的技术,你可以在这里查看 。
- Android Studio找不到与com.android.support:appcompat-v7:+相匹配的任何版本
- android sdk的位置尚未在mac os的首选项中设置?
- 无法parsing目标'android-XX'
- Android +以编程方式通过蓝牙配对设备
- PopupWindow $ BadTokenException:无法添加窗口 – 标记null无效
- LinearLayout:layout_gravity =“bottom”在水平LinearLayout上不起作用
- 具有自定义布局和EditText的AlertDialog.Builder; 无法访问视图
- 检测用户何时解除软键盘
- Android:animation位置完成后重置