猫史档案馆


编程猫无解难题

用户:MAX编程MAX编程查看:194 回复:14 评论:45 创建时间:2022-06-05T08:48:31


同一角色克隆出的两个克隆体a和b,同时碰到另一个角色克隆出的一个克隆体c,怎么才能让c知道它碰到了两个克隆体a和b

绝杀·无解


回复

上一页第 1 页 / 共 1 页下一页
熊熊燃起熊熊燃起

同时碰到a和b?

点赞0


评论

1.设阵营()()()

2.用([自己]编号[1]克隆体的[x坐标])判断

()()()

()()()

()()()

如果同时碰到abdefgh克隆体呢,克隆体是爆炸效果呢

设阵营()()()


LightnessLightness

你没说只能给c搭积木啊()

a碰到c就给c发广播让变量增加1(b同理)

当变量等于某个数时就让c创建对话框[我碰到a和b了]()()

点赞0


评论

但是会有点误差)但只要是人看不出来()

c是克隆体,收不了广播

加一个判定变量不行吗()


MAX编程MAX编程

那就更具体一点

c同时碰到爆炸效果克隆体abdefg,怎么才能让c知道它受了六重爆炸伤害?

 

点赞0


评论


MAX编程MAX编程

imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E6%BA%9C%E4%BA%86%E6%BA%9C%E4%BA%86.gif"alt="emotion_编程猫_溜了溜了"

点赞0


评论


鱼丶鱼丶

变量不就行了?

点赞0


评论

怎么搞?

变量也没用啊


我叫王鑫烜我叫王鑫烜

要不试试检测颜色?imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E7%BF%BB%E7%99%BD%E7%9C%BC.gif"alt="emotion_编程猫_翻白眼"

点赞0


评论

爆炸效果都是红色呢,没用啊


MAX编程MAX编程

imgsrc="https://static.cod喵/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E6%90%93%E5%A4%B4.gif"alt="emotion_编程猫_搓头"

点赞0


评论


学习GMS2的星烬有多辣寄学习GMS2的星烬有多辣寄

列表

点赞0


评论

变量也行

列表怎么弄呢

比较简单的就是牺牲碰撞的精确度,用矩形碰撞或者圆形碰撞,这样的话虽然精度不够但是能保证运行速度。想要保证精确度的话, 碰到颜色当然可以解决,但是碰撞颜色的局限性还是有

?矩形圆形碰撞是什么

运用列表,标注导弹ab落点坐标与范围,c检测列表内坐标并计算其距离,判定是否收到伤害,ab再将坐标删除?

子弹同理,只不过距离小点

重复执行检测自己是否碰到ab 和 重复执行一步执行获取列表内ab等克隆体xy坐标并计算距离 哪个资源占用低呢


MAX编程MAX编程

imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E6%BA%9C%E4%BA%86%E6%BA%9C%E4%BA%86.gif"alt="emotion_编程猫_溜了溜了"

点赞0


评论


MAX编程MAX编程

imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E5%86%B7%E6%BC%A0.gif"alt="emotion_编程猫_冷漠"

点赞0


评论


𝙲ℴ𝗌𝔦𝒹ₑ𝑟𝙲ℴ𝗌𝔦𝒹ₑ𝑟

正解:

给角色套上一层颜色层

如果碰到(颜色层的颜色)

代码代码

点赞0


评论

颜色层的颜色一定要是独特的,否则会受到其它角色的干扰

加上每个克隆体的位置列表

就行

确实可以 但是碰到颜色很卡 不过算满足要求了

无论怎么换颜色都会收到背景或其他角色影响不太可取

影响<10%(如果材质不是透明)

神奇的脑洞()


SGSMix梨SGSMix梨

建一个列表用来装伤害信息,克隆体碰到目标后在列表中加入一条信息,包含克隆体角色名称(或代号),克隆体编号,和造成伤害,用间隔符隔开

需要检测攻击并受到伤害的克隆体c检测到自己碰到攻击后,从第一项开始搜索列表,用把...按...分开成列表积木拆分每一项信息,搜索到包含自己碰到的攻击的名称(或代号)且其后没有自己克隆体编号后缀(防止自己之前受到过的·伤害产生第二次判定)的伤害信息,就读取那一条信息携带的伤害数值信息,在自己的血量(角色变量)上扣除这个数值,然后在这条信息后添加一个间隔符和自己的克隆体编号(防止一次伤害二次判定,不直接删除是因为)其他克隆体有可能在攻击消失前也碰到这次攻击,如果自己添加克隆体编号后缀后这条信息的后缀数量等于或大于全场所有会受到攻击的克隆体数量就将这条信息删除(所有单位都收到了攻击,该伤害信息已经失效),造成伤害的克隆体在删除自己前需要搜索整个列表寻找包含自己克隆体编号并且其包含名称(或代号)等于自己的角色的名称(或代号),将这条伤害信息删除(克隆体造成的伤害信息在克隆体消失前删除防止伤害滞留)

源码如下:

造成攻击的角色(只是其中一个)

center_imagecenter_imagecenter_image

受到伤害的角色:

center_image

center_image

(这里这么长一堆只不过是不同的攻击

点赞1


评论

PS:这里bx,by之类都是无关变量不用在意

加一句,判伤函数放在 如果碰到敌方单位(或阵营) 的积木里就行

但这种方法也不完全完美,同时间大量存在且会击中不同的敌方单位的弹幕(如子弹)想要用这种方法的话,还需要在伤害信息伤添加自己的xy坐标,受到伤害的克隆体在判断受伤时还要判断攻击的xy坐标是否在自己触碰箱的范围之内

这种可以(如果你是肝帝()

谢了,我已经想到更好的方法

但是。。。。攻击特效克隆体呢

攻击特效指什么,敌方受击特效?

多个克隆体同时攻击()

克隆碰到定克隆体

我已经想到更好的方法,没有颜色,同时攻击单位限制,还有性能提升和跨单位打击

也就是说,我可以做RTS了,hahahaaaaaa(反派笑声)

我代码里有啊,每个造成攻击的角色源码除了添加进列表的代号(或名称)都一样,敌方单位的函数判伤里一长串就是,不同角色多个克隆体同时触碰不同敌方单位都不会有bug

在较为复杂的作品里想要限制同时存在的攻击单位是不现实的

不是这个意思 是没有同时攻击单位受限的弊端

好吧,虽然我还是不太理解


正义的朋友AAAA正义的朋友AAAA

有点太复杂了,你直接翻代码第一栏,有个克隆体编号看到了吗?

点赞0


评论

要是满足不了就用角色变量

显然一个克隆体没法获取自己碰到的克隆体的编号

啊,也对


MAX编程MAX编程

imgsrc="https://static.cod喵/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E7%82%B9%E8%B5%9E.gif"alt="emotion_编程猫_点赞"问题已解决啦

点赞0


评论