我有一个主类,我可以在舞台上添加墙。
以前,我将此声明为
public var wall_cubular_1:Wall_cubular_1 = new Wall_cubular_1();
然后像这样添加
addChild(wall_cubular_1);
然后在角色类(应该测试墙壁)中我有以下
wallHit = this.hitTestObject(_root.wall_cubular_1)
然而,这意味着我只能在主要课程中一次放置一面墙,因为每次我添加一个新墙,旧的一个刚刚消失,新的一个被放置。好像我换了它。
所以我改变了主类,删除了墙的公共变量,而是让它像这样设置
var wall_cubular_1:Wall_cubular_1 = new Wall_cubular_1();
addChild(wall_cubular_1);
在添加墙壁的功能中。
现在角色无法对墙壁进行测试,因为它不公开。所以我尝试将hittest更改为
wallHit = this.hitTestObject(stage.wall_cubular_1)
但它不起作用!
我完全迷失了。我该如何解决这个问题?
由于
答案 0 :(得分:0)
在您的character
课程中,Dispatch Event
可以wallHit
这样说{/ 1}},
dispatchEvent(new Event("wallHit"));
在你的主要课程中,
(我假设您正在character
类中创建实例Main
类。
(另外,您需要在wallHit
类中创建Main
的实例)。
characterClassInstance.addEventListener("wallHit", onWallHit);
private function onWallHit(e:Event):void
{
//Here you can add your collision detection logic
wallHit = this.hitTestObject(_root.wall_cubular_1);
}