我有一个专门设计用于在游戏中弹出文本的课程,我将在两种不同情况下使用它:
对于“-1”我希望文本出现然后我希望它淡出屏幕因此我将颜色值和alpha减小到零并稍微移动它的位置然后删除对象/文本弹出窗口
对于“+25”我想将此文本弹出框移动到金币图标然后删除。
我的问题是,因为我将这个类用于两个不同的事件,这两个事件都有不同的逻辑来执行,我如何才能最好地区分我正在显示的文本和因此显示的内容。 / p>
我想过可能有一个使用字符串的switch / if语句。
E.g
-1的字符串将是“enemyLived”
“+25”的字符串将是“goldPickup”
我会检查
if (this.identity == "enemyLived")
do logic
else (this.identity =="goldPickup")
do logic
但我很好奇,如果一位经验更丰富的编码员有一个“更好”的设计支票的建议。
答案 0 :(得分:6)
听起来像是OOD的经典案例,并使用继承来解决这个问题。
创建一个描述一般操作方法的界面,例如: PopupTransition()
,然后有两个类,一个用于负点,另一个用于积极。让每个人都提供他们自己的实现过渡如何发生(褪色或移动或其他)。当事件发生时,实例化相应的类型,并将其传递给您不关心它是什么事件的通用处理程序,并且只在适当的时刻调用PopupTransition
。如果你突然想要支持其他转换,你可以轻松扩展它。