0

我提前道歉,这是一个有点模糊的话题/问题。

假设我正在为一个常见的棋盘游戏编写活动类。这个类可以命名为 Game.java(一般来说)并扩展 Activity 并维护一些按钮和文本视图以及(更重要的是)一个名为 Board.java 的自定义 View 类(或静态嵌套类),它扩展了 SurfaceView。

现在,所有的绘图基本上都需要在 SurfaceView 类中完成,因为这是 Android 应用程序的本质。出现的问题是,如果这个棋盘游戏的部分(例如英雄和怪物)存储在相关列表中,最佳实践规定这些列表存储在哪里?也就是说,人们会认为这些列表应该由 Game 类维护,因为从技术上讲,这是对正在进行的游戏的更全面的视图。但是,在这种情况下,静态嵌套类(或单独的顶级类)Board 无法访问这些列表,因此出于绘图目的,如果不同时在两个类中维护它,它不知道每块的状态是什么,非常麻烦。在 Board 中维护此列表几乎同样繁琐,

关于如何干净利落地实施的任何总体共识或意见?我个人的想法倾向于在 Board 中维护它,出于记忆和理智的目的,最重要的是,但如果有明显缺失的东西,那将非常有帮助。

4

1 回答 1

0

我已经对此进行了一些实验,并且当我的自定义SurfaceView类包含Thread. 除了处理所有物理和绘图之外,该线程还具有表示绘制对象的内部类,并为我的画布上的所有可见项目维护这些对象的列表。

谷歌在下载 SDK 时包含了一些示例,其中有一些处理在画布上绘图。我发现 LunarLander 示例是如何实现此行为的一个很好的起点。使用 SDK 管理器下载示例后,您可以在android-sdk/samples. 希望这可以帮助。

于 2012-09-11T14:33:54.030 回答