Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 31.01.2013, 21:28
In8Finity вне форума Посмотреть профиль Отправить личное сообщение для In8Finity Найти все сообщения от In8Finity
  № 1  
Ответить с цитированием
In8Finity

Регистрация: Jan 2010
Сообщений: 187
Question Реализация столкновения в Арканоиде.

А подскажите, если когда делал арканоид или что-то похожее - как вы реализовывали столкновения шарика с кирпичиками?
Дело в том, что я сделал (опишу ниже как) но этот способ у меня работает криво.
Часто шарик совсем неправильно отражается от кирпичика или вообще пролетает насквозь.
Сделал я это так:
Шарик у меня движется со скоростями speedX и speedY и в каждом кадре я делаю обновления его координат.
Код AS3:
ball.x += speedX;
ball.y += speedY;
Внутри кирпичика по граням у меня расположены 4 мувиклипа для проверки столкновений.
На прикреплённом рисунке можно видеть как именно. (Цветные области - это как раз эти мувиклипы с именами up, dowd, left, right)
Ну и наконец, в цикле я перебираю кирпичики и в каждом из них я делаю следующее:

Код AS3:
if (br.up.hitTestPoint(ball.x, ball.y, true)) { speedY = - speedY; break; }
else
if (br.down.hitTestPoint(ball.x, ball.y, true)) { speedY = - speedY; break; }
else
if (br.left.hitTestPoint(ball.x, ball.y, true)) { speedX = - speedX; break; }
else
if (br.right.hitTestPoint(ball.x, ball.y, true)) { speedX = - speedX;  break; }
Но, как я уже сказал - это работает, но очень глючно. Может быть есть какое-то хорошее/правильное/всемдавноизвестное решение?
Изображения
 

Создать новую тему   Часовой пояс GMT +4, время: 11:57.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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