Processing 如何在两个类之间创建冲突?

Processing 如何在两个类之间创建冲突?,processing,collision,Processing,Collision,我需要帮助并尽快一般来说,最好缩小问题范围,并使用较小的程序测试假设,重点放在该问题上。目前,您已经发布了许多带有许多语法错误的代码。您需要一次修复一个语法错误 关于你的家庭作业目标: 当脸类接触敌人类时,游戏停止 这应该是直截了当的,因为: 您知道面实例(非类)和敌人实例的位置 你知道每个的直径 如果两者之间的距离小于半径之和,则一定是碰撞 半径仅为直径的一半,关于距离,处理使函数变得微不足道。只需给它两个实例(脸和敌人)的x,y坐标对,它就会返回距离。 (无需手动计算毕达哥拉斯定理,di

我需要帮助并尽快一般来说,最好缩小问题范围,并使用较小的程序测试假设,重点放在该问题上。目前,您已经发布了许多带有许多语法错误的代码。您需要一次修复一个语法错误

关于你的家庭作业目标:

当脸类接触敌人类时,游戏停止

这应该是直截了当的,因为:

  • 您知道面实例(非类)和敌人实例的位置
  • 你知道每个的直径
  • 如果两者之间的距离小于半径之和,则一定是碰撞
半径仅为直径的一半,关于距离,处理使函数变得微不足道。只需给它两个实例(脸和敌人)的x,y坐标对,它就会返回距离。 (无需手动计算毕达哥拉斯定理,dist()为您完成)

检查此项并特别注意
过圆
功能。在您的场景中:

if(dist(f1.x, f1.y, e1.x, e1.y) < ( (f1.diameter + e1.diameter) / 2) ){
  noLoop();
}
if(距离(f1.x,f1.y,e1.x,e1.y)<((f1.diameter+e1.diameter)/2)){
noLoop();
}

目前还不清楚您是否已经介绍了阵列和for循环。这将有助于避免手动复制粘贴和修改其余敌人的条件。

当我将这部分放入代码中时,一切都停止了。我不明白。当然它会停止一切:)我想这就是你所说的“我希望游戏停止”的意思。这就是所做的:暂停调用
draw()
的连续循环。如果您需要其他功能,只需使用该功能替换
noLoop()
。非常抱歉,说这个实在是太遗憾了!!!你是救命恩人!!多谢各位
if(dist(f1.x, f1.y, e1.x, e1.y) < ( (f1.diameter + e1.diameter) / 2) ){
  noLoop();
}