每次单击都移动一个动画片段

时间:2013-12-12 10:24:49

标签: actionscript-3 mouseevent

我想在我的游戏中创建一个迷你游戏。迷你游戏的目标是: 用鼠标快速点击,将牛推入卡车。如果你的速度不够快,那么这头母牛就会回归原点。

所以,我认为我必须创建牛动画片段并指示坐标x某事物和某些东西。

然后告诉代码每次玩家点击时,动画片段都会变为+1。

但是,每0.5秒,movielcip会转到y-2(除非它在原始坐标处)。

告诉代码,当牛动画片段位于x.somethingelse和y.somethingelse时,拼图就完成了。

现在......但并非最不重要......我怎么能这样做?

会是这样的吗? :

cow = new cowMovieclip;
addchild(cow);
cow.x = 0;
cow.y = 0;

cow.addEventListener(MouseEvent.CLICK, push, false, 0, true);

public function push(e:MouseEvent):void{
// I don't think it's like that
cow.x = +1;
cow.y = +1;
}

if (cow.y = 30){
allPuzzles.room.cowPushed = true;
}

如果玩家没有点击,那么代码会告诉母牛去-1,但我根本不知道如何把它放到......

所以,这段代码没有任何用处,所以我认为我犯了很多错误。

你能帮帮我吗?

非常感谢你的帮助,

1 个答案:

答案 0 :(得分:0)

import flash.utils.Timer;
import flash.events.TimerEvent;

//class names should be capitalized, fix the symbol name in your library
var cow:MovieClip = new CowMovieClip(); 
addChild(cow);
cow.x = 0;
cow.y = 0;
cow.addEventListener(MouseEvent.CLICK, push, false, 0, true);

var timer:Timer = new Timer(500);
timer.addEventListener(TimerEvent.TIMER, moveCowBack);
timer.start();

function push(e:MouseEvent):void
{
    cow.x += 1;
    cow.y += 1;

    //once the cow's y position has reached or exceeded 30, you no longer want the timer to move it back
    if (cow.y >= 30)
    {
        timer.removeEventListener(TimerEvent.TIMER, moveCowBack);
        allPuzzles.room.cowPushed = true;
    }
}

function moveCowBack(e:TimerEvent):void
{
    // you don't want the cow to leave the screen, so only move it if the y position is >= 2
    if(cow.y >= 2)
    {
        cow.y -= 2;
    }
}