塔防P7 商店系统
塔防游戏 第七集
本集主要实现了商店系统,让玩家通过可以展开和关闭的商店界面购买炮台。
首先绘制商店按钮和商店背景两个角色,放在右上角。给按钮编写一下鼠标移到按钮上方时高亮的逻辑。

我们设定一个表示商店打开状态的全局变量打开商店,初始化赋值为no。当按下鼠标时检查变量的值,如果商店是打开的需要关闭它,反之则需要打开它。为了执行其他的操作,在打开和关闭商店的时候进行广播。

在接收到打开或关闭广播之后,修改打开商店变量的值和图标本身的状态。我给图标新建了一个镜像的外观,也可以用翻转图像的方法。

接下来给商店背景绘制逻辑。在商店关闭时应该不显示背景,在商店打开时显示。为了让背景布遮盖住地图和道路,将背景稍微虚化一些。

在商店中应该有可以购买的炮台的图标。为了和之前可以布置的炮台有所区分,我们重新做一个角色。复制一下我们的炮台,删掉不需要的逻辑代码,只留布置相关的代码就可以了。相应地可以在原本的炮台变量中删去布置的代码。

游戏开始时,商店没有打开,应该把他隐藏掉;当打开商店时显示,关闭商店时隐藏。打开商店时,运行原本购买炮塔的逻辑。

接下来我们再为炮台增加一个描述角色。绘制完成之后放在商店的下部,在炮台被选择的时候显示描述。因为之后会添加一些不同的炮台,显示的描述会不同,这里新建一个全局变量炮台描述类型显示被选中的炮台的类型名称,当打开商店并选中炮台时,显示炮台描述。关闭商店时除了隐藏之外,关闭其他脚本可以使角色直接不显示。

这之后老师在购买之后做了一个关闭商店的功能,我觉得可能有连续购买的需要就没有添加到我的代码里。实现就是在购买完成,克隆炮台时添加一个广播关闭商店就可以了。

对于可能遇到的商店遮盖敌人或者炮台的情况,我们将背景的图层先移到最前,然后再后移两层就可以了。
总结
本次课程完成了商店功能,学习了如何用几个角色构建出一个商店。在这个过程中,用全局变量和广播可以将一个角色受到的反馈发送给其他角色,让几个角色同事根据这个反馈作出相应。比如点击了展开商店的按钮,除了按钮本身还有商店背景,商店中的炮台图标作出响应。

浙公网安备 33010602011771号