C#开发的OpenRA游戏之建造物品的窗口5
前面分析了TAB窗口的建立和运行,现在关注它的子窗口,也就是ProductionPaletteWidget类实现的窗口,这个窗口主要用来显示所有可以创建物品的ICON图标。用户可以通过这个窗口实现物品创建,如下图所示:
比如要创建电厂,就是点击上面高亮显示的图标,就可以开始建造。可以看到具备条件的物品,它的图标是高亮显示,不具备条件的是灰色显示。
那么它是怎么样来实现那些物品可以建造,那些不可以建造的呢?
因为游戏是不断发展,创建不同的物品在游戏世界里,那么满足可创建的物品也是不断地变化。又比如游戏进行中,由于敌人把一方的兵工厂炸掉了,那么就要立即反映到上面,就不能创建兵种了。这种根据游戏世界里物品不断地变化而改变的窗口,那么就需要采用一种事件通知机制了。这种通知是定义在游戏世界的yaml描述文件里:
World:</