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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.12.2013, 03:24
fd96 вне форума Посмотреть профиль Отправить личное сообщение для fd96 Найти все сообщения от fd96
  № 11  
Ответить с цитированием
fd96
 
Аватар для fd96

Регистрация: Jan 2013
Адрес: If(Sprite.x >0){Sprite.x=(Sprite.x-Sprite.x)}
Сообщений: 51
Отправить сообщение для fd96 с помощью ICQ Отправить сообщение для fd96 с помощью Skype™
спасибо, отличный ресурс... Заинтересовал метод с пикселами, он проще чем пересчёт по векторам плоскости и можно работать не имея массивов вообще,хорошая идея, можно увидеть пример такой проверки, пожалуйста? =)

Добавлено через 4 минуты
Цитата:
Сообщение от Akopalipsis Посмотреть сообщение
Но если Вы знаете математику, то зачем Вам это надо?
Это нужно просто ради того, чтоб не забыть методы геометрического анализа и алгоритмирования,
из того, что у меня вышло я уже понимаю, что руки мои стали кривыми за год без AS3 и я обленился настолько, что не хочу писать даже 2 лишних строки кода, даже если это банальные формулы сложения векторов и определение длинны вектора, думаю это принесёт пользу, вернёт меня к жизни как минимум, а то совсем обленился...
__________________
...Nothing can't be coded...

Старый 19.12.2013, 16:17
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 12  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Заинтересовал метод с пикселами, он проще чем пересчёт по векторам плоскости и можно работать не имея массивов вообще,хорошая идея, можно увидеть пример такой проверки, пожалуйста? =)
/*pt проверяемая точка птички*/
Код AS3:
public function checkCollision(pt:Point):Boolean
{
    var bd:BitmapData = new BitmapData(1, 1);
    var m:Matrix = new Matrix();
    m.tx = -pt.x + _fon.x; //тут у вас свои расчеты будут. 
    m.ty = -pt.y; //тут тоже
    bd.draw(_fon, m);
    var color:uint = bd.getPixel(0, 0);
    bd.dispose();
    return color == 16777215; //проверка на непрозрачность, тут надо поглядеть, какая точка считается "непрозрачной". Я мышкой водил искал. 
}
Код AS3:
if (_tunnel.checkCollision(fwd) || _tunnel.checkCollision(top) ||  _tunnel.checkCollision(bottom))
{
    boom();
}
Есть общий контейнер, он содержит спрайты _tunnel и _bird. В _tunnel генерится лабиринт и анимация его движения, поэтому в матрице тх высчитывается через _fon - спрайт, который циклично двигается и прыгает, а-ля байда сверху в печатной машинке.
fwd, top, bottom это точки сенсоры на птичке.
Мы создаем битмапу 1 на 1 и отрисовываем соответствующую точку тоннеля в нее. Тут вполне можно тоже улучшить алгоритм, рисуя сразу массив точек и проверяя. Но мне хватило с лихвой.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 19.12.2013, 18:28
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 13  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Коллизии желательно проверять в несколько проходов.
1.Если много объектов - проверяем по сетке (или по дереву квадрантов).
2. Если мало объектов - проверяем по баундсу (или по баундсу в пределах одной ячейки сетки)
3. Попиксельно.

вот библиотека работающая только с коллизиями
https://github.com/martinkallman/collision-as3
Хорошая статья для самых маленьких)
http://flashgameblogs.ru/blog/actionscript/381.html
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 19.12.2013 в 18:46.
Старый 20.12.2013, 00:52
fd96 вне форума Посмотреть профиль Отправить личное сообщение для fd96 Найти все сообщения от fd96
  № 14  
Ответить с цитированием
fd96
 
Аватар для fd96

Регистрация: Jan 2013
Адрес: If(Sprite.x >0){Sprite.x=(Sprite.x-Sprite.x)}
Сообщений: 51
Отправить сообщение для fd96 с помощью ICQ Отправить сообщение для fd96 с помощью Skype™
QuadTree хорош, я знаю, хорош, но не для меня =( объекты должны двигаться с очень высокими скоростями...

По баундсу проверять тоже нельзя мне надо коллизию прямо по форме фигуры с точностью до микрона... плохо....

ПОПИКСЕЛЬНО, ДА , СПАСИБО ЗА СОВЕТ, в самом первом сообщении я ведь писал, что сделал попиксельно, но ОНА ОЧЕНЬ ТОРМОЗИТ, много процессорного времени жрёт...

GBee, У вас в примере Tunel это просто картинка,а могу ли я проверить пиксель только для детей определённого контейнера не учитывая нижние контейнеры?
__________________
...Nothing can't be coded...

Старый 20.12.2013, 01:10
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 15  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
За это время вы бы уже изучили и использовали Nape.

Старый 20.12.2013, 01:21
fd96 вне форума Посмотреть профиль Отправить личное сообщение для fd96 Найти все сообщения от fd96
  № 16  
Ответить с цитированием
fd96
 
Аватар для fd96

Регистрация: Jan 2013
Адрес: If(Sprite.x >0){Sprite.x=(Sprite.x-Sprite.x)}
Сообщений: 51
Отправить сообщение для fd96 с помощью ICQ Отправить сообщение для fd96 с помощью Skype™
Я уже изучил, но хочу сделать сам ибо сложно и интересно, меня интересует не столько результат, сколько процесс и его сложности, и по-моему Box2D интереснее как сам движок 2D игры. Но у Nape есть свои плюсы, просто я тот ещё консерватор =)

P.S. Всем спасибо за советы, действительно полезные.
__________________
...Nothing can't be coded...

Старый 20.12.2013, 02:58
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 17  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
GBee, У вас в примере Tunel это просто картинка,а могу ли я проверить пиксель только для детей определённого контейнера не учитывая нижние контейнеры?
Да что угодно, если это можно в битмап отрисовать, главное точное положение найти.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 20.12.2013, 11:18
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 18  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
Nape2D как раз прекрасный физический движок для игры.
Плюс он быстрее и проще, чем Box2D.

Старый 20.12.2013, 12:14
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 19  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
MikroAcse, не надоело?
__________________
hauts.ru

Старый 20.12.2013, 12:19
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 20  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
Цитата:
MikroAcse, не надоело?
Неа Может, и добьюсь своего.

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

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

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


 


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


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