Actionscript 3 使用ActionScript 3.0进行碰撞检测
嘿,我是初学者Flash动作脚本3开发人员 我正在使用hitTestPoint()检测汽车和舞台图纸之间的碰撞。汽车在舞台上移动,所以我使用hitTestPoint() 比如说,有一个问题 汽车是一个正方形,现在它实际上是一个完美的正方形 我正在这样做:Actionscript 3 使用ActionScript 3.0进行碰撞检测,actionscript-3,actionscript,flash,flash-cs4,Actionscript 3,Actionscript,Flash,Flash Cs4,嘿,我是初学者Flash动作脚本3开发人员 我正在使用hitTestPoint()检测汽车和舞台图纸之间的碰撞。汽车在舞台上移动,所以我使用hitTestPoint() 比如说,有一个问题 汽车是一个正方形,现在它实际上是一个完美的正方形 我正在这样做: heightHalf = car.height / 2; widthHalf = car.width / 2; if(level.hitTestPoint(car.x + widthHalf, car.y + heightHalf,true)
heightHalf = car.height / 2;
widthHalf = car.width / 2;
if(level.hitTestPoint(car.x + widthHalf, car.y + heightHalf,true)){
trace( "Right Collision" );
}
它的工作原理应该是,car.x+其with的一半应该返回x轴上与y轴碰撞的点。但它不起作用
当我的车和右边的墙相撞时,它不会产生错误或痕迹,但如果我在车完全移出舞台之前将车进一步移出舞台(因为车可以穿过墙壁),它会在左边和墙相撞时产生痕迹错误
这些图片应该有助于:
无错误的右碰撞:
错误但有错误的一面:
反转+-标志也没有帮助。注意锚定点在汽车对象上的位置。由于您使用的是Flash IDE,锚点可以在中间、右、或左角。 此外,您还需要对这种类型的HIT测试进行多点测试。汽车每侧至少有一个 如果您的登记点位于左上角,则您正在测试车辆的中间点。因此,只有当一半的汽车翻墙时,它才会记录碰撞
检查您的注册点。创建新的movieClip或Sprite时,可以通过单击对象名称下出现的正方形上的9框之一来选择注册点 你的汽车电影的登记点在哪里?你真的想测试一个点(基本上是一个像素)而不是整辆车吗?你能帮我修一下吗?我做了很多尝试,我把它写在笔记本上以便理解,但我的方法仍然不起作用。档案:我不会为你做的。这是一个学习的地方,不是免费工作的地方。编辑您的问题,包括您试图解决的问题以及您遇到的问题。我很乐意帮忙,但我不会帮你的。也可以在编辑过的问题或其他我不需要下载的地方发布相关代码。我不是在问其他像乞丐一样的人。我试过了,但没能解决。这仅仅是几行代码……stackoverflow上还发布了许多其他类似的问题。