Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   бонусы как в "Змейке" (http://www.flasher.ru/forum/showthread.php?t=156767)

reNiks 26.05.2011 16:10

бонусы как в "Змейке"
 
Все, наверное, играли в "Змейку". Я задался вопросом разработки похожей системы бонусов. Нужно чтоб бонус появлялся потом герой его "съедал" и появлялся новый. Но возникла проблема. Игра использует тайловую систему, то есть есть места где "земля", а есть , где "стены" и бонусы иногда появляются в местах где стены и куда герой, разумеется, не может попасть. Привожу код:
Код AS3:

private function removeBonus(e:Event)
        {
            if (Amath.equal(bonus.x, grid.x,24) && Amath.equal(bonus.y,grid.y,24)) // сравнение координат бонуса и стены с определенной погрешностью
            {
 
 
                addBonus();
            }
            else
            {
                addChild(bonus);
            }
if (inMap(bonus.x, bonus.y)){ // проверка на расположение в пределах карты
    addChild(bonus);
    }else
    addBonus()
 
        }
        public function addBonus()
        {
            bonus = new Bonus_mc  ;
            bonus.x = Math.ceil(Math.random() * 10) * 21 + 10.5  ;
            bonus.y = Math.ceil(Math.random() * 10) * 24 + 10.5  ;
            bonus.gotoAndStop(1);
 
            trace("Bonus initialized...");
        }

Помогите пожалуйста.

Jewelz 26.05.2011 16:40

я бы хранил все данные о стенах например в битмапдате
т.е. создаем пустую (черную) битмапдату, и добавляем туда белые стены,
затем при добавлении бонуса простой проверкой bmpd.getPixel(x,y) == 0, проверяем что там - стена или пустота

GBee 26.05.2011 16:44

Цитата:

я бы хранил все данные о стенах например в битмапдате
т.е. создаем пустую (черную) битмапдату, и добавляем туда белые стены,
затем при добавлении бонуса простой проверкой bmpd.getPixel(x,y) == 0, проверяем что там - стена или пустота
Тайлы же у автора, проблемы вообще не вижу. Правда код меня смущает.


Часовой пояс GMT +4, время: 07:45.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.