Создание игры с падающими случайными объектами с помощью ActionScript 3.0 - PullRequest
1 голос
/ 11 октября 2011

Я пытаюсь создать игру, которая будет имитировать продукты, спускающиеся по конвейерной ленте.Игрок действует как упаковщик и должен щелкнуть и перетащить продукты в специальные пакеты (один для холодной еды и один для не холодной еды).Когда будет сделан правильный выбор, еда исчезнет, ​​и счет увеличится на +1.

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

Может кто-нибудь предложить способ или показать мне, как я могу сделать так, чтобы случайные продукты падали на экран?Я предполагал, что смогу создать массив видеоклипов и заставить их вызываться случайным образом, но я не уверен, как это будет работать.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 11 октября 2011

Чтобы получить реалистичные падающие объекты, используйте Box2D , физический движок AS3 .Это хорошо задокументировано, и есть буквально тысячи учебников для начинающих.

РЕДАКТИРОВАТЬ: Вот отличный урок для абсолютных новичков на Box2D , в блоге Эмануэле Феронато.Загляните в этот блог, так как в нем много учебников по разработке игр, которые могут вам помочь.

0 голосов
/ 11 октября 2011

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

Пожалуйста, дайте мне знать, если это было полезно. Я часто использую это в своих играх. Это простой способ справиться с множеством пуль / врагов и бонусов;)

    var groceries:Array = new Array();

    function grocerieCreate(enemy,shotType):void {

    var grocerieNew:MovieClip;

    grocerieNew = new grocerieMovieClip();
        grocerieNew.x = [Random X];
        grocerieNew.y = 0;

    addChild(grocerieNew);

    grocerieNew.addEventListener(Event.ENTER_FRAME, grocerieMove);

}

function grocerieMove(e:Event):void {

    if (e.target.y < [GROUND Y]) {          
        e.target.y ++;          
    }

}

function grocerieRemove(e:Event):void {

    for (var counter:int = groceries.length - 1; counter >= 0; counter--) {

        var thisGrocerie:MovieClip = groceries[counter];

        groceries.splice(counter,1);
        removeChild(thisGrocerie);
    }

}
...