【发布时间】:2014-06-19 17:54:20
【问题描述】:
我有一个StatBarView 类,其中包含一个Stat、一个int 命名百分比和两个Colors。在Update() 方法中,我平滑地改变了条形的百分比值,它必须有多满。接下来我有四种Draw() 方法,一种用于绘制小条,一种用于中型,一种用于大型,一种用于将其绘制为文本而不是图形。
它可以工作,但是..如果我想实现更多的绘图案例,我觉得这会变得一团糟。
我可以将“文本视图”变成它自己的StatTextView,但这只会将问题转移到其他地方。我还想避免将各种参数传递给 draw 方法,如果我想更改一些东西的大小,它会让我到处跑。我还想避免使用 switch 语句的一些大规模方法,这感觉更糟。
我考虑过传递一个带有Draw(int percentage) 的IStatBarContext,这可行,但感觉非常复杂。
我是否必须在 Draw() 的每次迭代中调用 Stat.Draw(spriteBatch, position, new StatBarLarge())?这是每秒大量无用的新对象。此外,new StatBarString() 不会使用该百分比统计信息。我想我的设计哪里出了问题。
也就是说,我不知道如何真正让这段代码更干净。有人能帮帮我吗?
【问题讨论】: