为什么游戏组件会调用base.LoadContent()
?当我删除对Base的所有此类调用时,我的游戏工作正常吗?
我认为,base.Update()
和base.Draw()
用于保持组件与游戏同步。这是正确的还是其他原因?
由于
答案 0 :(得分:2)
在XNA基本游戏模板中你需要注意的唯一基础是对base.Initialize()的调用。其余的人在基础游戏类中调用空方法,可以删除,没有任何后果/意外行为。
有关基础游戏课程的详细信息及其操作顺序以及幕后发生的事情,Nick Gravelyn在前一段时间做了很棒的写作,引导您完成所有操作。你可以在这里阅读 - > http://blog.nickgravelyn.com/2008/11/life-of-an-xna-game/
答案 1 :(得分:0)
基类GameComponent在窗帘后面做了很多不那么明显的事情,没有你意识到这一点。您必须确保始终调用基本方法(除非您非常清楚自己在做什么),以便游戏组件处于XNA所期望的状态。在LoadContent的特定情况下,我认为不会遗漏任何内容,但我无法保证。
例如,在Initilize的情况下,GameComponent.Initialize()是负责调用this.LoadContent()的方法,所以不包括在派生类中调用base.Initialize()会阻止你的游戏加载任何图形,字体等,除非你自己做。
同样重要的是要注意,您稍后可能会将对象向下移动到组件层次结构中,然后您必须将所有调用添加到您最初未包含的基础。