Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OOP-一般的角色扮演游戏类_Java_Oop_Generalization - Fatal编程技术网

Java OOP-一般的角色扮演游戏类

Java OOP-一般的角色扮演游戏类,java,oop,generalization,Java,Oop,Generalization,上面的代码是我正在开发的角色扮演游戏的OOP类,我很难思考每个类的一般状态和行为 问题 我如何创建这些类(我是OOP的初学者)。我听过一些封装等 我不知道如何正确使用界面、抽象等 关于类的一般状态和行为的思考 正如你在武器课上看到的。枪、剑、弓可以用作近战、射程甚至魔法。我应该称这些为WeaponType吗?(射程、近战、魔法) 让我们逐行回答您的问题 我如何创建这些类(我是OOP的初学者)。我听说过一些 封装、多态性等 如果你对OOPS没有透彻的了解,你就无法开发一款游戏。花一些时间来理解抽

上面的代码是我正在开发的角色扮演游戏的OOP类,我很难思考每个类的一般状态和行为

问题

  • 我如何创建这些类(我是OOP的初学者)。我听过一些封装等
  • 我不知道如何正确使用界面、抽象等
  • 关于类的一般状态和行为的思考
  • 正如你在武器课上看到的。枪、剑、弓可以用作近战、射程甚至魔法。我应该称这些为WeaponType吗?(射程、近战、魔法)

    • 让我们逐行回答您的问题

      我如何创建这些类(我是OOP的初学者)。我听说过一些 封装、多态性等

      如果你对OOPS没有透彻的了解,你就无法开发一款游戏。花一些时间来理解抽象/封装/多边形/继承

      我不知道如何正确使用界面、抽象等

      也许如果你知道这些是什么意思,你就能够决定何时以及如何使用它们,如果你需要它们的话

      思考您可以看到的类的一般状态和行为 在武器类。枪、剑、弓可以用作近战、射程、, 甚至是魔法。我应该称这些为WeaponType吗?(射程、近战、魔法)

      在这种情况下,您可以拥有一个名为“武器”的接口,其类型作为抽象方法。您可以继承它们,并更改每种武器的武器属性,如攻击力、强度等。当然,您还需要了解OOPS概念。
      如果你对复杂的设计(如游戏)学得很快,我建议你学习更好的界面和抽象类。然后我建议你画一个游戏模型的UML图。 武器可以是带有fire()方法的接口,所有实现该接口的武器都有自己的fire()方法


      对于一个好的设计,我也建议好好学习设计模式。如果你做了一个好的游戏设计,在未来将很容易扩展你的游戏与新功能

      旁注:这是
      class Foo
      而不是
      Foo class
      也许你可以从阅读一些教程开始,比如,这个问题太宽泛了,因为你有正确的标签吗?这肯定不是Java源代码?!对不起,只是打错了。再说:你的问题太广泛了。你基本上放弃了很多要求和想法,然后你要求我们向你解释如何做到这一切。对不起,stackoverflow不是这样工作的。我给你的一个一般性答案是:搜索“敏捷原则Robert Martin pdf”;下载并阅读。我不明白“武器”是如何成为一种状态的。
      // in general, it could be potion, armor, weapon, etc.
      Item class {
         // states
         id
         name
         // behavior
         set, get of states here..
      
         use()
         // still thinking what is the other general behavior
      } 
      
      // in general, it could be Gun,Sword,Wand, Bow (range,melee,magic)
      Weapon class extends Item{
         // gun - fire(); type: range (in the movie, the gun can be use as melee weapon too xD)
         // sword - slash(); type: melee (in the movie, the sword can be thrown :) or use as magic wand?)
         // wand - ??
         // mace - bash();
         // bow - shoot() ??
         // so what is the general behavior of this weapon?
      } 
      
      Bag class {} // parent is Item, collection of items here
      
      // Human, Orc, etc
      Character class {
         // states
         Weapon
      
         // behavior
         attack();
         // still thinking what is the other behavior and states
      } 
      
      // Swordsman, Magician, Archer, etc.
      Hero class extends Character{
      }