对象识别自身和运行特定逻辑的最佳方法是什么?

时间:2014-02-25 18:47:51

标签: c# xna-4.0

我有一个专门设计用于在游戏中弹出文本的课程,我将在两种不同情况下使用它:

  • 显示红色“-1”和
  • 黄色“+25”

对于“-1”我希望文本出现然后我希望它淡出屏幕因此我将颜色值和alpha减小到零并稍微移动它的位置然后删除对象/文本弹出窗口

对于“+25”我想将此文本弹出框移动到金币图标然后删除。

我的问题是,因为我将这个类用于两个不同的事件,这两个事件都有不同的逻辑来执行,我如何才能最好地区分我正在显示的文本和因此显示的内容。 / p>

我想过可能有一个使用字符串的switch / if语句。

E.g

-1的字符串将是“enemyLived”

“+25”的字符串将是“goldPickup”

我会检查

if (this.identity == "enemyLived") do logic else (this.identity =="goldPickup") do logic

但我很好奇,如果一位经验更丰富的编码员有一个“更好”的设计支票的建议。

1 个答案:

答案 0 :(得分:6)

听起来像是OOD的经典案例,并使用继承来解决这个问题。

创建一个描述一般操作方法的界面,例如: PopupTransition(),然后有两个类,一个用于负点,另一个用于积极。让每个人都提供他们自己的实现过渡如何发生(褪色或移动或其他)。当事件发生时,实例化相应的类型,并将其传递给您不关心它是什么事件的通用处理程序,并且只在适当的时刻调用PopupTransition。如果你突然想要支持其他转换,你可以轻松扩展它。