Actionscript 3 与addChild的问题';sx和Y值
我有一个对付怪物移动和攻击的敌人职业。在这个类中,我有另一个叫做enemyMagic的类,它是一个空白的movieclip,作为我将制作的不同movieclip的主类 所以在enemyMagic类中,我添加了一个名为attack1的movieclipActionscript 3 与addChild的问题';sx和Y值,actionscript-3,flash-cs5,Actionscript 3,Flash Cs5,我有一个对付怪物移动和攻击的敌人职业。在这个类中,我有另一个叫做enemyMagic的类,它是一个空白的movieclip,作为我将制作的不同movieclip的主类 所以在enemyMagic类中,我添加了一个名为attack1的movieclip public var attack1:Attack1 = new Attack1; public function EnemyMagic() { ////////////CREATE THE T
public var attack1:Attack1 = new Attack1;
public function EnemyMagic() {
////////////CREATE THE TIMER//////////
masterEnemyAttackTimer.addEventListener(TimerEvent.TIMER, mastertimer);
////////////ATTACKS/////////
//TIER 1//
addChild(attack1);
}
在敌人类中,当敌人攻击某个位置时,我添加了敌人魔法
for (var k:int = 0; k < Main.tileset.length; k++)
{
if (! Main.tileset[k].tileMiddle.hitTestObject(this.enemyVisionPoint))
{
if (Main.tileset[k].tileHP !== 0)
{
attackoptions.push(Main.tileset[k]);
}
if (Main.tileset[k].tileMiddle.hitTestObject(Main.player.visionPoint))
{
addChild(enemymagic);
Main.tileset[k].outline.gotoAndStop("attack");
this.enemymagic.x = (Main.tileset[k].x);
this.enemymagic.y = (Main.tileset[k].y);
trace(enemymagic.x, enemymagic.y, Main.tileset[k].x, Main.tileset[k].y);
for(变量k:int=0;k
出于某种原因,enemymagic追踪的数字与磁贴的x和y完全相同,但它没有将其添加到磁贴上。它将其添加到屏幕之外。我认为可能是因为它从敌人的x和y开始,然后计算
所以我的问题是,如何才能让enemymagic电影剪辑准确地显示在磁贴的位置上?您可以做两件事。首先,当您执行普通的
addChild()时
子对象的基本坐标系是其父对象的坐标系,它是您的敌人
实例,当然它位于非零的某个位置。然后您将Main.tileset[k]
的坐标分配给它,该坐标系具有不同的父对象(很可能是Main
的实例)。这会创建您所说的距离。因此,为了在确切的磁贴上找到您的魔力,可以使用This.globaltocol(Main.tileset[k].localToGlobal(PZERO))
其中PZERO
是一个new Point()
常量(或writenew Point())
而不是PZERO
,但这将创建另一个空的点
对象并将快速升级),或者执行addChild()<代码>直接到瓦片,你用不变的坐标进行攻击。谢谢你的回答。为了澄清,我必须创建一个新的点。我应该放一个特定的x和y值吗?同样,我得到一个隐含的强制错误,我猜想这意味着魔法的x值与p0不好。我确实考虑添加C。hild对Tile类本身很感兴趣,但我认为理想的做法是将所有与敌人相关的东西都放在敌人身上。谢谢伙计!public static const PZERO:Point=new Point();
这就是声明零点的方式。诀窍是,你的Tile的零点(在设计时等于锚定点)通常是磁贴的左上角或死点。如果是前者,则声明PCENTER
等于磁贴的中心。关于添加到敌人-想象你投掷一个魔法,然后将敌人向左旋转90度。砰,你的魔法不再位于所选磁贴上。一旦有任何东西从敌人身上分离,你的魔法就会消失(子弹、魔法、破碎的部分等),最好不要addChild()
将它们添加到敌人,而是添加到一个包含所有元素的类中。好的。我确实让敌人每10秒移动一次,所以魔法会受到影响。我的最佳选择是将其添加到平铺上,甚至主类上?