// 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{
}
上面的代码是我正在开发的角色扮演游戏的OOP类,我很难想到每个类的一般状态和行为。
问题
答案 0 :(得分:2)
让我们逐行回答你的问题
如何创建这些类(我是OOP的初学者)。我听说过一些 封装,多态性等。
如果没有了解OOPS,就无法开发游戏。请花一些时间了解抽象/封装/ Polymerphsim /继承。
我不知道如何正确使用界面,抽象等。
也许如果你知道那些意味着你能够决定何时以及如何使用它们,那么你将需要它们。
思考班级的一般状态和行为正如您所见 在武器类。枪,剑,弓可以用作近战,射程, 甚至是魔法。我应该调用这些WeaponType吗? (范围,混战,魔法)
在这种情况下,您可以使用一个名为Weapons的接口,其类型为抽象方法。您可以继承它们并为每个武器等武器属性更改,如攻击力,力量等。当然,您需要通过与OOPS概念。 如果您是快速学习者Start by watching this Video.
答案 1 :(得分:0)
对于像游戏这样的复杂设计,我建议你学习更好的界面和抽象类。然后我建议你绘制一个游戏模型的UML图。 武器可以是一个带有fire()方法的接口,实现该接口的所有武器都有自己的fire()方法。
对于一个好的设计,我也建议你很好地学习设计模式。如果您对游戏进行了良好的设计,将来可以通过新功能轻松扩展您的游戏!