赞 | 15 |
VIP | 71 |
好人卡 | 24 |
积分 | 36 |
经验 | 70116 |
最后登录 | 2024-10-23 |
在线时间 | 3065 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 3582
- 在线时间
- 3065 小时
- 注册时间
- 2011-11-17
- 帖子
- 980
|
本帖最后由 yagami 于 2013-10-2 02:18 编辑
这东西比较烦懒得写 给你个思路
子弹写个类 敌人就用 事件好了 方便写运动
加2个数组 1个保存子弹 1个保存敌人
每生成1个子弹 加入子弹数组 敌人加入敌人数组
scene map 在update里要增加个check 函数
check函数 2层for循环
for i in 子弹数组
for j in 敌人数组
if i 和 j碰撞 (写个函数 用矩形判定)
销毁子弹 和事件 并且从数组里移除
end
end
end
同时还要做的是 子弹超出屏幕 销毁子弹 并从数组里移除
至于子弹的移动 子弹类里组合个 sprite 构造的时候传个角度参数进去 假设要移动10距离 那x坐标就增加 sin角度*10 y坐标增加cos角度*10 在update里按你要的速度做这事情
如果角度是通过 子弹坐标 和 敌人坐标自动决定的 那你要用弧度转角度公式atan((a.y-b.y)/(a.x-b.x))/3.14*180 然后再做上面的事情
至于为何子弹不用事件 因为子弹要做的事情很简单 只是移动而已 连碰撞都是其他东西做的 用事件明显是奢侈的浪费 碰撞检测已经很消耗性能了 |
|