2013-12-12 3 views
0

Я хотел бы создать мини-игру в своей игре. Целью мини-игры было бы следующее: Чтобы подтолкнуть корову в грузовик, быстро щелкнув мышью. Если вы недостаточно быстро, корова возвращается к исходной точке.Перемещение мувиклипа при каждом нажатии

Итак, я думаю, что я должен создать коровье мувиклип и указать координату x что-то и что-то.

Затем скажите код, который каждый раз, когда игрок кликает, мувиклип идет y +1.

НО, каждые 0,5 секунды movielcip отправляется y-2 (если только он не находится в исходных координатах).

И сообщает код, что, когда коровье мувиклип находится в x.somethingelse и y.somethingelse, головоломка завершена.

Now..last, но не менее важно ... Как я могу это сделать?

Будет ли это примерно так? :

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

увидеть это [как я могу непрерывно уменьшаться число в as3] (http://stackoverflow.com/questions/20512604/how-can-i- непрерывно-уменьшать-a-number-in-as3). Вам нужен либо таймер, либо прослушиватель событий ENTER_FRAME, который запускается в каждом кадре в вашем фильме. – DodgerThud

+1

И, 'if (cow.y == 30)' и 'cow.y + = 1;' (или 'cow.y ++;'). Кроме того, прочитайте что-то о правильном синтаксисе в AS3, это следует за C-стилем, поэтому следует прочитать основы синтаксиса в C, C++ или C#. – Vesper

ответ

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; 
    } 
} 
Смежные вопросы