разработка флеш игры AS3 - PullRequest
0 голосов
/ 10 марта 2011

Я разрабатываю игру во флэш-памяти AS3, в которой несколько предметов падают, и их нужно поймать снизу с помощью мыши.

просто хочу проинформировать вас об игре.

Это ссылка на похожую игру: http://www.playitontheweb.com/games/Catch-Falling-Fruit-game.htm

At frame 1 > Preloader
At frame 2 > Game front page.
At frame 3 > Game introduction.
At frame 4 > user will b playing the game.
At frame 5 > Final Score. 

Это то, что я хочу сделать с точки зрения функциональности.

Вот скрипт-скрипт (AS3), который играет в игру во всех кадрах. От 1 до 5, которые я не хочу: Пожалуйста, помогите ......

package {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.utils.Timer;
import flash.utils.getDefinitionByName;

public class CatchingGame extends MovieClip {
    var catcher:Catcher;
    var nextObject:Timer;
    var objects:Array = new Array();
    var score:int = 0;
    const speed:Number = 7.0;

    public function CatchingGame() {
        catcher = new Catcher();
        catcher.y = 350;
        addChild(catcher);
        setNextObject();
        addEventListener(Event.ENTER_FRAME, moveObjects);
    }

    public function setNextObject() {
        nextObject = new Timer(1000+Math.random()*1000,1);
        nextObject.addEventListener(TimerEvent.TIMER_COMPLETE,newObject);
        nextObject.start();
    }

    public function newObject(e:Event) {
        var goodObjects:Array = ["Circle1","Circle2"];
        var badObjects:Array = ["Square1","Square2"];
        if (Math.random() < .5) {
            var r:int = Math.floor(Math.random()*goodObjects.length);
            var classRef:Class = getDefinitionByName(goodObjects[r]) as Class;
            var newObject:MovieClip = new classRef(); 
            newObject.typestr = "good";
        } else {
            r = Math.floor(Math.random()*badObjects.length);
            classRef = getDefinitionByName(badObjects[r]) as Class;
            newObject = new classRef(); 
            newObject.typestr = "bad";
        }
        newObject.x = Math.random()*500;
        addChild(newObject);
        objects.push(newObject);
        setNextObject();
    }

    public function moveObjects(e:Event) {
        for(var i:int=objects.length-1;i>=0;i--) {
            objects[i].y += speed;
            if (objects[i].y > 400) {
                removeChild(objects[i]);
                objects.splice(i,1);
            }
            if (objects[i].hitTestObject(catcher)) {
                if (objects[i].typestr == "good") {
                    score += 5;
                } else {
                    score -= 1;
                }
                if (score < 0) score = 0;
                scoreDisplay.text = "Score: "+score;
                removeChild(objects[i]);
                objects.splice(i,1);
            }
        }

        catcher.x = mouseX;

    }
}
}

Также хотел бы спросить, можем ли мы добавить таймер на 60 секунд? как только таймер закончится, он перейдет к последнему кадру, чтобы показать окончательный результат.

Ответы [ 2 ]

0 голосов
/ 06 апреля 2011

Используйте gotoAndStop (), чтобы перейти к нужному кадру и остановиться там. Я бы порекомендовал эту команду over stop () просто потому, что она объединяет как смену фрейма, так и поведение остановки в одно; в противном случае это одно и то же.

0 голосов
/ 10 марта 2011
  • вызовите stop(), чтобы остаться в текущем кадре, вызовите nextFrame () для перехода к следующей сцене
  • глобальная функция getTimer() показывает количество миллисекунд, прошедших с запуска SWF, с помощью которых вы можете измерить время.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...