正确开发android游戏

正确开发android游戏,android,drawing,Android,Drawing,我想指出的是,我对Android游戏开发相当陌生。我尝试过几种编程游戏的方法,发现两种方法都有效,但它们都有各自的优势。所以我想知道哪种方法更好/更普通。例如,如果我们试图制作拼图游戏,我们需要许多相互作用并对触摸事件作出反应的拼图对象 方式1: 正如我从java学到的,若有许多对象的行为方式相同,那个么应该创建类,然后创建该类的对象。我尝试了这个游戏项目,并创建了类“拼图”,扩展了ImageView。然后在我的主程序中,我将它们添加到布局中,并将它们从主活动中移出。这是相当复杂和缓慢的。而且,

我想指出的是,我对Android游戏开发相当陌生。我尝试过几种编程游戏的方法,发现两种方法都有效,但它们都有各自的优势。所以我想知道哪种方法更好/更普通。例如,如果我们试图制作拼图游戏,我们需要许多相互作用并对触摸事件作出反应的拼图对象

方式1:

正如我从java学到的,若有许多对象的行为方式相同,那个么应该创建类,然后创建该类的对象。我尝试了这个游戏项目,并创建了类“拼图”,扩展了ImageView。然后在我的主程序中,我将它们添加到布局中,并将它们从主活动中移出。这是相当复杂和缓慢的。而且,我觉得这样做并不正确

方式2:

我将游戏对象添加为组件(例如ImageView、ImageButton、带有图像背景的自定义布局)。通过这种方式,我可以更好地控制它们,同时拥有多个对象并让它们彼此交互更容易。但是这种方法非常慢,而且感觉不是正确的方法

方式3:

我在活动中添加了SurfaceView,并使用draw()方法在画布上绘制所有对象。这种方法要快得多,但这样我对我的对象的控制就少了。例如,在画布上绘制许多对象,并让它们都对触摸事件做出响应或相互交互是很难实现的


有没有其他我错过的方法,或者我的方法接近正确的方法?

你可以使用android类构建东西,或者如果你足够熟练,你可以从andengine.org或其他一些使用opengl es的开源游戏引擎开始,以一种将opengl es部分从你。您仍然需要进行大量的配置,但这不会像从头开始构建基于opengl的应用程序那样糟糕

andengine.org


还有相当多的其他开源android游戏引擎得到了开发者社区的大力支持。做一些谷歌搜索,并查看它。否则,正如您所注意到的,您希望在游戏方面完成的大多数事情,在使用普通的android视图时,都会变得非常缓慢和笨拙。

在本机android方式中,我认为方式3是正确的。但正如您以前所经历的那样,它非常混乱且难以处理(取决于设备或操作系统版本,您将面临来自GC的严重帧丢失

如果您只是在练习,那么方法1很容易理解Android的体系结构。 方法3可以训练你一种布局渲染技术。但是不要想在市场上发布。你会得到Android碎片化的可怕体验

如果你想创建一个真正的游戏,并在市场上发布,你必须使用OpenGL。有几个游戏引擎可以使用OpenGL

  • AndEngine
  • libgdx
  • Unity3D
  • Cocos2d-x-将是一个不错的选择

您可以发布您的代码片段以供参考吗。