为啥我不使用 for 循环时会发生正确的碰撞,但是当我使用 for 循环时只有 1 个对象有碰撞?
Posted
技术标签:
【中文标题】为啥我不使用 for 循环时会发生正确的碰撞,但是当我使用 for 循环时只有 1 个对象有碰撞?【英文标题】:Why do I get correct collisions when I don't use for loop, but when I use for loop only 1 object has collisions?为什么我不使用 for 循环时会发生正确的碰撞,但是当我使用 for 循环时只有 1 个对象有碰撞? 【发布时间】:2021-04-13 18:10:06 【问题描述】:所以,让我明确一点,我是初学者。我试图做一些碰撞,并决定对多个对象使用 for 循环。
switch(quest)
case 1:
Swords = collectables.create(Game.width / 2 - 300, Game.height / 2, 'sword')
Swords.body.immovable = true
break
case 2:
for(let i = 0; i < 2; i++)
Swords = collectables.create(Game.width/ 2 - 20, Game.height / 2, 'sword')
Swords.body.immovable = true
break
第一把剑工作得很好,但是当我切换到第二个“任务”并使用 for 循环时,只有一把剑发生碰撞,有什么可能的解决方法,谢谢!
完整代码的链接 - https://pastebin.com/Nmh6PVkg
【问题讨论】:
请查看如何创建minimal reproducible example。 碰撞是什么意思? @phuziGame.physics.arcade.collide(player, ground) Game.physics.arcade.collide(player, enemy1, NPCint) Game.physics.arcade.collide(player, Swords, swordAdd)
小更新 - 删除了 for 循环,问题仍然存在
我对 Phaser 不熟悉,但你能在 for 循环的每次迭代中覆盖 Swords 变量吗? Swords 是否应该是一个包含将新项目推入其中的代码的数组?
【参考方案1】:
问题已解决!忘记把表达式放在函数的括号里了。
【讨论】:
以上是关于为啥我不使用 for 循环时会发生正确的碰撞,但是当我使用 for 循环时只有 1 个对象有碰撞?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Python for 循环在遍历列表副本并进行删除时会跳过元素? [复制]