塔防P2 敌人监控和炮塔绘制

塔防游戏 第二集

本集主要实现的功能有:

  1. 敌人状态监控
  2. 炮台的绘制和拖动克隆
  3. 炮台的攻击范围显示

敌人状态监控

设置四个列表监控场上敌人的状态:

  1. 敌人X轴坐标,敌人Y轴坐标:存放敌人在场上的位置,随着敌人移动而更新;
  2. 敌人进度:存放敌人行走的长度,随着敌人移动而更新;
  3. 敌人编号,每个克隆体有唯一的编号,出生时确定,不更新。
    所有的列表都需要在游戏开始时初始化为空。为了给每个克隆体唯一的编号,设置一个私有变量“克隆体编号”,初始赋值为0。母体每次克隆之前,将编号增加1,这样每个克隆体都有唯一的编号。

克隆体生成后,初始化将空坐标加入队列,将0加入进度。为什么需要初始化?因为之后的更新是在原本的项上进行修改,而不进行添加操作。

编号是不用更新的,其他的列表需要随着游戏进行更新数据。坐标更新获取敌人当前的x轴和y轴坐标更新列表就可以。进度更新用上次更新时的进度加上敌人的速度即可。数据更新放在移动的重复执行中,在移动操作之前。

炮台的绘制和拖动克隆

炮台根据个人需要绘制一个即可,适当调整大小。注意需要把炮身的中心作为造型的中心,而不是用所有元素。这样可以做出正确的旋转效果。

默认将炮塔放在右上角,作为购买图标。右上角的炮台大小可以设置为较小,克隆时恢复正常大小以和地图上的其他炮台区分。
我们想要实现的炮塔逻辑是:点击时克隆一个正常大小的炮塔图标跟随我们的鼠标,再次点击鼠标后将炮塔放置在地图上。我们声明一个私有变量是否有鼠标操作,默认为no。判断点击。当鼠标按下时将是否有鼠标操作设置为yes,松开后克隆炮台,将克隆的炮台跟随鼠标,直到再次点击鼠标后取消跟随,将“是否有鼠标操作设置为no。
在这里,用碰到鼠标指针与按下鼠标判断鼠标按下,再用碰到鼠标指针和按下鼠标不成立判断鼠标抬起。对于克隆体,也等到下一次鼠标点击抬起后再放置炮台。

接下来在选择好炮台后,我们希望能预览到炮台的攻击范围。新建一个角色叫炮台的攻击范围,绘制半透明的圆圈表示炮塔的覆盖范围。在游戏开始时隐藏起来,点击炮台,让炮台跟着移动后让它显示并跟随鼠标移动。在放下炮台后,令其继续隐藏。

如何让其看起来是半透明的?可以在绘制的时候设置透明度,也可以在代码中让它有虚像。

总结

本节课完成了对敌人的监控,炮塔和炮塔攻击范围的绘制和布置逻辑。这节课用到了较多的列表和变量,在起名上如果过于随意很容易遗忘这个列表的功能或存放的内容。对于全局变量和私有变量,也可以使用下划线_来区分,避免使用时混淆。

posted @ 2025-03-20 09:30  AnzioNiko  阅读(81)  评论(0)    收藏  举报