1 2 3 4 下一页 即时战略类型游戏因其精确的微操,宏大的场面以及丰富的策略元素广受玩家的爱戴,《沙丘魔堡II》开创了真正意义上的即时战略游戏形态,之后Westwood创生了《命令与征服》系列加之暴雪的《魔兽争霸》及《星际争霸》系列瞬间将RTS的发展推向高潮。就是在这样的氛围下,微软的《帝国时代》系列孕育而生,踏着人类文明进步的足迹,陪伴我度过了高中那个人生转折的年代。 本节,我将为大家讲解的是利用场景编辑器搭建的帝国时代2游戏Demo。 即时战略游戏最大的特点就在于它的操作上,通过鼠标搭配键盘进行不同组合的单位管理。在帝国时代游戏中,鼠标左键负责选取单位,而右键则是指挥它们进行移动及攻击;其时,我们完全可以把所有的操作都集中到左键上,让玩家拥有更好的操作手感。然而,与此同时功能的多样化必将加大相关代码的复杂度,左键既要负责选中单个单位,又要在按住不放的情况下选中范围内单位,同时还要在无有效选择情况下指挥已选中的单位进行目标点移动;因此,我们必须充分利用并衔接好mouseLeftButtonDown、mouseLeftButtonUp以及mouseMove事件才能达到目的。这里我用到一个小技巧,就是在鼠标按下后如果拖动出的范围小于10*10像素则认定为无效的范围选取,从而执行其他操作;这也是一个关键技术点,当然,或许你有更加优秀的方案能完美的处理好这些判断的并发。 在范围选取单位对象时,即时战略游戏中的通常做法是从鼠标点击点开始向拖动的目标绘制一个矩形,在Silverlight中我们可以这样做,在左键按下后如判断为选取状态时记录下起始坐标selectedStart,然后在鼠标移动事件中进行如下处理即可: (责任编辑:admin) |