java - NPC类应该有自己的移动功能,还是移动功能属于游戏类?

标签 java android

我正在开发一款安卓游戏,并且一直在考虑我的主要游戏循环。我的 android java 游戏中的 NPC 类应该有自己的移动功能,还是应该将移动功能移动到游戏类中?选项一和选项二、CPU 负载、编译后的 apk 大小、可维护性等之间是否有任何优势?

我想知道我刚刚写的这两个不同的代码示例中的任何一个是否是“正确”的方式。

SUDO 代码:选项一 - NPC 类有它自己的移动功能

class Game {
    Npc npcs[] = new Npc[10];

    public Game(){
       while(running){
           for(loop=0;loop<npcs.count(); loop++){
              npcs[loop].move();
           }
       draw();
}}}

SUDO 代码:选项二 - 移动函数是 Game 类的一部分

class Game {
    Npc npcs[] = new Npc[10];

   protected moveNPC(){
       for(loop=0;loop<npcs.count();loop++){
           npcs[loop].x = // change x value
           npcs[loop].y = // change y value
       }
   }

    public Game(){
       while(running){
           moveNPC();
           draw();
}}}

最佳答案

在效率或硬件使用方面几乎没有任何差异,因此您应该选择选项一。 NPC 是一个表示一组对象的类,这些对象的行为都封装在 move() 方法中 - 这是一个基本的 OOP 事物。意味着您的选项二方法可行,但从面向对象的角度来看是错误的。希望这会有所帮助。

关于java - NPC类应该有自己的移动功能,还是移动功能属于游戏类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9478125/

相关文章:

java - 如何在 Hibernate 5 中使用泛型类型参数?

java - 在 Spring 表达式语言 (SpEL) 中评估属性

android - 不可见的组件仍然占用空间

java - 在一个 3D 对象上应用旋转后更新 View OpenGL ES 2.0

java - 如果未激活另一个配置文件,则激活 Maven 配置文件

java - 如何根据特定条件锁定代码块?

java - Hibernate 映射不工作

Android将我自制的CA证书识别为用户证书,并且无法正确安装

java - 解析密码重置

android - DDMS 数据文件夹的小问题