【发布时间】:2014-04-16 12:31:34
【问题描述】:
我在这里,因为我目前正在为我的 AS3 应用程序进行碰撞检测。 我正在加载一个位图,它代表一个房间 - 它有边界(墙壁),其余部分是透明的(地板)。然后我创建一个内部有一个圆圈的精灵。
我希望我的精灵在这些边界内移动并停在墙上,我能够实现其背后的逻辑,我要求的是一种检测与墙壁碰撞的方法,我的整个房间都是一个位图,所以我猜我会检查与这个位图的碰撞,但不幸的是它也计算了透明部分。
我已经对此进行了谷歌研究,但我只发现非常复杂的系统无论如何都无法工作。我这样做是出于学习目的,所以我想知道如何自己实现它。
因此,我想问是否有人可以向我提供一段代码,只检查位图的非透明部分是否存在冲突? (或者我应该将此 png 作为矢量加载?怎么做?)。
我也在旋转我的“圈子”,所以我想这也应该考虑在内。我假设我应该对位图进行位图检查,而不是对位图进行精灵检查?
我根本没有冲突的工作代码,所以我不会提供任何代码。
我是否应该提供更多信息,请告诉我。
提前致谢!
@编辑
这是我的功能代码,它属于房间类。
public function detectCollisionWith(obj:Sprite):Boolean
{
var _bitmapData:BitmapData = new BitmapData(obj.width, obj.height, true, 0);
_bitmapData.draw(obj);
var _bitmap:Bitmap = new Bitmap(_bitmapData);
if (_bitmapData.hitTest(new Point(_bitmap.x, _bitmap.y), 255, this.bitmap, new Point(this.x, this.y), 255))
return true;
return false;
}
【问题讨论】:
标签: actionscript-3 flash bitmap collision-detection