草庐IT

C#开发的OpenRA游戏的游戏界面内鼠标处理窗口

C#开发的OpenRA游戏的游戏界面内鼠标处理窗口OpenRA游戏里,游戏上面所有物品显示,都是基于窗口容器。前面也讨论过,其实就是基于ingame.yaml文件来布局和创建的,在ingame.yaml文件里,根窗口Container@INGAME_ROOT,共有六个子节点:Children:   LogicKeyListener@GLOBAL_KEYHANDLER:   LogicKeyListener@WORLD_KEYHANDLER:   Container@WORLD_ROOT:   Container@MENU_ROOT:   TooltipContainer@TOOLTIP_CON

C#开发的OpenRA游戏加载界面的实现

C#开发的OpenRA游戏加载界面的实现游戏的UI是一个游戏必备,但是游戏的UI都是自己处理的,不能使用像Windows自带的UI。这样游戏的UI,其实也是使用游戏的方式来显示的,只不过使用了低帧率的方式来显示。比如OpenRA游戏界面,就会显示如下:游戏的界面有很多,先从一个简单的加载界面开始。由于每个界面是不一样的,那么就需要决定怎么样定制不同界面。在OpenRA里,通过mod.yaml文件来定义不同的界面,比如定义了下面这段:

C#开发的OpenRA的游戏主界面怎么样创建2

继续游戏主界面创建的主题,前面已经说明了怎么样找到游戏主界面的入口,但是在OpenRA里很多对象都是动态地创建,并且是动态地加载成员变量的数据,并不是从对象里面进行初始化,这种方式有点像先把对象参数保存在文件里,然后创建一个空白的对象,再从文件里把这个对象的数据恢复过来。这种操作采用类FieldLoader来管理。因此,也可以通过这种方法把类的变量值进行保存出来,进行实现对象持久化。这个类还方便地从yaml里分恢复数据到类对象。在加载函数LoadComplete里面就开始调用创建游戏主界面了:foreach(variwlinWorldActor.TraitsImplementing()){//