求助
gamemaker吧
全部回复
仅看楼主
level 1
朵朵多 楼主
我想要在gm8中做一个植物大战僵尸的游戏
我该如何让豌豆射手只检测到前面一定范围内的僵尸后发射子弹
仅限于它前面的范围内,无论种在前面,后面范围都不会变
2025年10月25日 14点10分 1
level 9
我理解你的意思是检测固定一行吧,也就是不管在前在后碰撞体都能覆盖豌豆射手前方所以区域,那么我个人的建议是用射线或者很大的碰撞盒,具体函数查询f1,然后植物大战僵尸类型我认为可能存在换行等因素,单纯的碰撞检测可能不太够,应该有一个变量代表在第x行,豌豆射手发射豌豆时把自己的x赋值给豌豆,发生碰撞时比较豌豆和僵尸的x值
2025年10月25日 15点10分 2

2025年10月26日 01点10分
不行
2025年10月26日 09点10分
吧务
level 13
假设题主使用的是最容易想到的框架,即:
0、豌豆射手是相同的object,每棵豌豆射手是不同的instance;
1、没有一个统一数据来记录所有植物和僵尸;
2、僵尸设置了合理的碰撞判定(即不会与不同行重叠);//考虑到不同行僵尸在视觉上重叠,这里需要手动更改碰撞判定(mask)范围
3、所有僵尸有一个共用的parent用来简化碰撞检测。
如果这个前提正确,那么题注需要的是collision_rectangle这个函数,用于检测在一个矩形是否会与僵尸碰撞,这个矩形的坐标可以自行设定以满足题主提到的前后方范围问题。
2025年10月27日 04点10分 3
level 6
如果和原版一样,那么就是检测Y值和X值的问题。
Y值确定同行僵尸,僵尸X值 必须大于植物自身X值+一个子弹发射位置X,同时小于你想要的最大距离,即植物X+你的最大射程。
2025年10月28日 01点10分 4
1