#actionscript-3 #flash-cs5
#actionscript-3 #flash-cs5
Вопрос:
Я пытаюсь создать игру, которая будет имитировать продукты, спускающиеся с конвейерной ленты. Игрок выступает в роли упаковщика и должен щелкнуть и перетащить продукты в определенные пакеты (один для холодной еды и один для не холодной еды). При правильном выборе еда исчезнет, а счет увеличится на 1.
Я был ошеломлен, думая о том, как это сделать, и не нашел полезных ответов, которые действительно работают, когда я пытаюсь их скомпилировать, поэтому я решил спросить.
Может кто-нибудь предложить способ или показать мне, как я могу заставить случайные продукты падать с экрана? Я предположил, что могу создать массив видеороликов и вызвать их для случайного падения, но я не уверен, как это будет работать.
Спасибо.
Комментарии:
1. Людям сложно дать точные ответы, поскольку мы не видим, что вы пробовали. Способ, которым я бы это сделал, — создать массив случайных элементов. Каждый элемент в массиве является экземпляром класса, который описывает продуктовый магазин (название, холодный / не холодный и т.д.). Это будет примерно часть данных, представление будет выглядеть так, как описано (конвейерная лента), но функционировать во многом как компонент с циклической каруселью, но для удаления элемента из него используется перетаскивание. Часть контроллера обновит модель / данные другим случайным элементом, вызванным удалением элемента. При выпадении предмета проверьте сумки / обновите список / и т. Д.
2. Да, я прошу прощения за то, что не сказал, что я пробовал. Я избегал этого, потому что я начинающий программист AS3, и то, что я пробовал до сих пор, кажется мне совершенно непонятным, и я понял, что другие. Я пробовал просто помещать разные объекты на экран и заставлять их падать вниз с помощью addChild(bread); bread . y = 1; Я смог заставить startDrag и stopDrag работать так же, как и столкновение с объектом bag. Я просто хотел найти способ заставить больше объектов падать случайным образом через случайные промежутки времени. Я просто не знаю, как заполнить его и заставить его различать холодные / не предметы.
Ответ №1:
Я не могу написать всю игру за вас, но это не так сложно. Я получил небольшой фрагмент кода, который показывает использование 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);
}
}
Комментарии:
1. Спасибо за помощь. Это определенно полезный способ сделать то, что я пытаюсь, и он привел меня в нужном направлении.
2. Очень приветствуется. Box2D тоже классно использовать, но я думаю, что в данном случае это будет немного излишне. Но это мое мнение. Удачи!
Ответ №2:
Чтобы получить реалистичные падающие объекты, используйте Box2D, физический движок AS3. Это хорошо документировано, и существуют буквально тысячи руководств для начинающих.
РЕДАКТИРОВАТЬ: Вот отличный учебник для абсолютных новичков по Box2D в блоге Эмануэле Феронато. Загляните в этот блог, там много руководств по разработке игр, которые могут вам помочь.
Комментарии:
1. Вау … эти уроки великолепны. Спасибо за ответ.
2. Пожалуйста, обратите внимание, что это руководство работает только со старой версией box2d версии 2.02