Action Script 3 перемещает объекты на x, y - PullRequest
1 голос
/ 28 ноября 2011

У меня есть домашняя работа для моих уроков программирования. Моя задача - создать шутер. Я сделал все по-своему, шары нерестятся, счетчик работает. Но я не могу заставить их двигаться вверх, я знаю, как двигаться = y ++. Это моя проблема, я не могу понять, где и как. Код ниже:

import flash.events.MouseEvent;
import flash.events.Event;
var c = 0;
circle.addEventListener(MouseEvent.MOUSE_DOWN, handlerMouseDown);
circle.addEventListener(MouseEvent.MOUSE_UP, handlerMouseUp);
function handlerMouseDown(event:MouseEvent):void{
    circle.startDrag();
}

function handlerMouseUp(event:MouseEvent):void{
    circle.stopDrag();
    var i:int;
    for (i=numChildren-1;i>=0;i--)
        if (getChildAt(i) is MyRectangle){
            if (circle.hitTestObject(getChildAt(i))){
                removeChildAt(i);
                c++;
                score.text =c;
            }
        }
}

var moveUp:Boolean = true;
var b:Boolean = false;
var t1 = 1000;
var t2 = 1002;
var myTimer:Timer = new Timer(t1); 
myTimer.addEventListener(TimerEvent.TIMER, runMany);
myTimer.start();

function runMany(event:TimerEvent):void {
    b = true;
    t1+=50;
}

var myTimer2:Timer = new Timer(t2); 
myTimer2.addEventListener(TimerEvent.TIMER, runMany2);
myTimer2.start();

function runMany2(event:TimerEvent):void {
    b = false;
    t2 -=50;
}

addEventListener(Event.ENTER_FRAME, handlerEnterFrame);
function handlerEnterFrame(event:Event):void{
var rect:MyRectangle = new MyRectangle();

addChildAt(rect,0);
if(b){
    rect.x = int(Math.random()*width);
    rect.y = int(Math.random()*height)
    }
}

circle.addEventListener(Event.ENTER_FRAME, handlerEnterFrame2);
function handlerEnterFrame2(event:Event):void{
    Mouse.hide();
    circle.startDrag(true);
}

1 Ответ

0 голосов
/ 28 ноября 2011

Одна проблема, которую я вижу из вашего описания, заключается в том, что ваши координаты несколько неверны.Верхний левый угол экрана (0,0), и если вы используете y++, объект будет двигаться вниз, а не вверх.y-- будет перемещать его вверх ... хотя и медленно.

Во-вторых, вам нужно выполнить какой-то цикл обновления.Ваш класс Balloon должен иметь функцию update(), которая вызывается каждый кадр для каждого шарика.В функции обновления всплывающих подсказок вы можете поместить y-- (или что-то еще, чтобы изменить его положение).Возможно, вы также захотите сделать обнаружение столкновений там, как только дойдете до этого.Вы захотите поместить все всплывающие подсказки (и все остальное, что изменяется со временем) в массив, и каждый кадр вызывает update() для каждого элемента в массиве с циклом for.Всякий раз, когда вы добавляете что-то на сцену, оно также должно добавляться в массив объектов, обновляемых каждый кадр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...