杀死游戏敌人ActionScript 3.0

时间:2013-04-08 03:57:49

标签: flash actionscript game-development

他们不是真正的敌人,他们只是你射击的气球。然而,当他们添加addChild时,当我点击(拍摄)它们时,它们都没有播放他们的“死亡”动画。这是我的代码。如果它看起来没有组织,请原谅我,我刚开始没有OOP经验的ActionScript。

一切正常,除非点击儿童似乎根本没有注册添加到舞台的对象。我没有外部类,所有实例名称都是正确的。我把这个气球称为“受害者”。

import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.MouseEvent;


Mouse.hide();
cursor_mc.startDrag(true);


stage.addEventListener(MouseEvent.MOUSE_DOWN, onClick);
shotHandler.addEventListener(MouseEvent.MOUSE_DOWN, boxShot);

function boxShot(evt:MouseEvent):void
{
    enemyBox.gotoAndStop(2);
}




    function onClick(event:MouseEvent):void

    {
        cursor_mc.play();
        var myBullet:MovieClip = new black_mc();
        myBullet.x = mouseX; myBullet.y = mouseY;
        stage.addChildAt(myBullet , 0);
    }


    var myTimer:Timer = new Timer(1200, 300);
    myTimer.addEventListener(TimerEvent.TIMER, createEnemies);
    myTimer.start();

    function createEnemies(e:Event):void
    {


        var circle:MovieClip = new victim();
        circle.x = Math.random() * stage.stageWidth;
        circle.y = Math.random() * stage.stageHeight;
        addChildAt(circle , 2);


    }

1 个答案:

答案 0 :(得分:0)

我看了你的代码,但是我没有看到你的#34;受害者"添加了任何MouseListeners。对象。无论如何,如果你需要在点击它时对象做一些事情,你可以这样写:

function createEnemies(e:Event):void //your enemy creation function
{


    var circle:MovieClip = new victim();

    circle.addEventListener(MouseEvent.CLICK, onObjClick); // here is your click listener

    circle.x = Math.random() * stage.stageWidth;
    circle.y = Math.random() * stage.stageHeight;
    addChildAt(circle , 2);


}

private function onObjClick(event:MouseEvent):void {
    var target:MovieClip = event.currentTarget as victim;
    target.gotoAndPlay("destroyAnim");
    //target.goToDeath();  uncomment this and comment previous line if you already have a destroy function into your "victim" class.
}