我正在AS3中制作一个Flash赛车游戏,玩家可以通过标有锥体的球场进行导航。视锥和汽车包含在电影剪辑'gamesprite'中。我为锥体创建了一个数组,以检查汽车和每个锥体之间的碰撞。
public var cones:Array;
public function findCones()
{
cones = new Array();
for(var i=0;i<gamesprite.numChildren;i++)
{
var mc = gamesprite.getChildAt(i);
if (mc is Cone)
{
cones.push(Cone);
trace(cones);
}
}
}
稍后在我的游戏循环函数中,我要检查gamesprite.car影片剪辑与数组中每个圆锥体之间的碰撞。
for(var j:Number=0;j<cones.length;j++)
{
if (gamesprite.car.hitTestObject (cones[j]))
{
trace("cones and car colliding");
}
}
我在测试游戏时收到此错误。
TypeError:错误#1034:类型强制失败:无法将Cone $转换为flash.display.DisplayObject。 在Racing / gameLoop()
我可能错过了一些简单但却无法解决的问题。
答案 0 :(得分:0)
你正在向你的数组推送一个错误的东西。你有cones.push(Cone);
,但你应该cones.push(mc);