我一直在 AS3 中开发视频游戏。我有一个数组来绘制一个包含道路、火灾、终点门等的游戏场。然后,我添加了一个由玩家通过鼠标控制的 MovieClip,并尝试检查与道路 MovieClip 的碰撞。
但是,我不工作......它从不追踪“IN”。我在我的代码中找不到任何错误 - 但你永远不能确定......你能帮我解决这个问题吗?
谢谢大家!
这是代码:
Declarations:
public class Player extends MovieClip
{
public var player:MovieClip;
public var road:MovieClip;
public var finish:MovieClip;
public var fire:MovieClip;
public var sting:MovieClip;
public var map:Array = new Array();
数组初始化:
/* 1 ROAD
* 2 FINISH
* 3 FIRE
* 4 STRING
*/
public function Player():void
{
map = [ [ 1, 1, 3, 3, 3, 3, 3, 3, 1, 1 ],
[ 1, 1, 3, 4, 4, 4, 4, 3, 1, 1 ],
[ 1, 1, 3, 4, 4, 4, 4, 3, 1, 1 ],
[ 1, 1, 3, 3, 3, 3, 3, 3, 1, 1 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2 ],
[ 1, 1, 3, 3, 3, 3, 3, 3, 1, 1 ],
[ 1, 1, 3, 4, 4, 4, 4, 3, 1, 1 ],
[ 1, 1, 3, 4, 4, 4, 4, 3, 1, 1 ],
[ 1, 1, 3, 3, 3, 3, 3, 3, 1, 1 ]
];
// 10 x 10 array
添加 hitTest 函数:
addEventListener( Event.ENTER_FRAME, playerHitTest );
和 hitTest 函数:
public function playerHitTest( e:Event ):void
{
if ( player.hitTestObject( road ) )
{
trace("IN");
}
}
PS:如果我提出条件!player.hitTestObject( road )
,它总是跟踪“IN”。
再次感谢!