首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AS3垂直移动并在任意点上移动

AS3垂直移动并在任意点上移动
EN

Stack Overflow用户
提问于 2013-06-29 23:58:33
回答 1查看 250关注 0票数 1

我在这里的代码,应该有一个链接的电影剪辑是随机生成的舞台顶部。它确实是随机生成的,但不是在顶部。此外,生成的项目应该向下移动并消失,但它没有。

我目前正在制作一款为Android智能手机设计的游戏。

代码语言:javascript
复制
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
//Create an enemies array
var enemies:Array;
enemies = new Array();


makeEnemies();
moveEnemies();




//Call this function for how many enemies you want to make...
function makeEnemies():void
{
    var tempEnemy:MovieClip;
    //Make sure a Library item linkage is set to Enemy...
    tempEnemy = new Enemy();
    tempEnemy.speed = 20;
    tempEnemy.x = Math.random()* 800;
    tempEnemy.cacheAsBitmapMatrix = tempEnemy.transform.concatenatedMatrix;
    tempEnemy.cacheAsBitmap = true;
    trace("enemy");
    addChild(tempEnemy);
    enemies.push(tempEnemy);


    tempEnemy.addEventListener(MouseEvent.CLICK, killEnemies);
}




function killEnemies(event:MouseEvent):void {
trace("tap");
}

//Create an enemies array if you do not already have one...
//Create tempEnemy from Enemy library item if you do not already have one...
function moveEnemies():void
{
    var tempEnemy:MovieClip;
    for (var i:int =enemies.length-1; i>=0; i--)
    {
        tempEnemy = enemies[i];

        //rotate the enemy between 10-5 degrees
        tempEnemy.rotation += (Math.round(Math.random()*50-5));
        //Find the rotation and move the x position that direction
        tempEnemy.x -=  (Math.sin((Math.PI/180)*tempEnemy.rotation))*tempEnemy.speed;
        tempEnemy.y +=  (Math.cos((Math.PI/180)*tempEnemy.rotation))*tempEnemy.speed;
        if (tempEnemy.x < 0)
        {
            tempEnemy.x = 0;
        }
        if (tempEnemy.x > stage.stageWidth)
        {
            tempEnemy.x = stage.stageWidth;
        }

        if (tempEnemy.y > stage.stageHeight)
        {

            //Remove enemy from enemies array
            removeEnemy(i);
            //Subtract a life
            trace("awwwww");
        }
    }
}

function removeEnemy(idx:int)
{
    removeChild(enemies[idx]);
    enemies.splice(idx,1);
}
EN

回答 1

Stack Overflow用户

发布于 2013-07-02 02:14:17

您应该调用moveEnemies();每一帧,如下所示:

代码语言:javascript
复制
import flash.event.Event;
addEventListener(Event.ENTER_FRAME, onEnter_frame);
function onEnter_frame(e:Event):void {
    moveEnemies();
}

此外,将敌人的类型设置为enemy而不是MovieClip也是一个好主意

代码语言:javascript
复制
var enemy:Enemy = new Enemy();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17382013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档