GuiLite 1.8 发布:100+ 行代码重现“超级玛丽”

为了体现GuiLite的多图层的叠加能力,我们用GuiLite重现了经典游戏“超级玛丽”的场景,具体功能如下:

1. 该UI是由两个独立UI组合而成:上半部为“耗油根”的单图层UI区域;下半部为“超级玛丽”的双图层UI区域;
2. “玛丽”可以自由行走,行走动作由3副静态图片组成,通过“掩色”处理,可以消除矩形外框;
3. “玛丽”行走过的背景,会自动恢复 -- 该功能类似与:“窗口”拖拽后的,桌面背景恢复;
4. “玛丽”可以跳跃。PC用户通过点击鼠标,就可以跳跃;单片机用户则需要用自己的按键驱动调用“jump”函数来触发;
5. “耗油根”是由若干bitmap,进行“掩色”处理后的动图;它的“拖影”是有意为之,跟运行效率无关;
6. 支持Windows,Linux(arm/x64)及任意单片机(例如:STM32F103)
7. ROM使用量: 350k字节;RAM使用量:50k字节
8. UI(uicode.cpp)代码量:136行

窗口叠加一直是UI系统中相对复杂的部分,GuiLite用一种简单的方式处理了这个问题。这种处理可以独立于窗口而存在,不仅可以用来进行窗口叠加;也可以独立使用,进行一些小游戏的开发。希望通过这个实例,让开发者既能灵活使用图层叠加功能,也理解其实现原理。

那么问题来了:为什么在本实例中,要把UI分成上下两个部分呢?为什么不统一使用一个双图层UI呢?

展开阅读全文

没有更多推荐了,返回首页