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

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

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

Регистрация: May 2012
Сообщений: 166
По умолчанию Программный конус (область удара)

Здравствуйте, кто нибудь уже сталкивался с созданием программного конуса? Интересно знать как такое можно сделать? Для чего он нужен, в игре в момент удара оружием ближнего боя непосредственно перед нанесением урона идет проверка на попадание врага в зону удара, чем и будит являться этот конус (вершина конуса исходит из персонажа). В голову приходит альтернативный вариант (только в теории) создание мувиклипа в виде конуса и применение к нему метода "определения четких границ", какой на ваш взгляд вариант лучше?
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение.

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Может быть треугольник? или вы в 3д делаете?
http://help.adobe.com/ru_RU/ActionSc...0204-7d55.html
__________________
Дети не должны знать о своих родителях


Последний раз редактировалось Tails; 26.09.2012 в 00:35.
Старый 26.09.2012, 08:36
Tetraeon вне форума Посмотреть профиль Отправить личное сообщение для Tetraeon Найти все сообщения от Tetraeon
  № 3  
Ответить с цитированием
Tetraeon

Регистрация: May 2012
Сообщений: 166
Да, триугольник. Это вариант "определения четких границ" изображения и его пересечение с другим объектом я так понял (по одной строчке вопрос возник - В то же время, при проверке наложения прозрачных изображений на уровне пикселов прозрачными должны быть оба изображения.) Интересно будит ли идти проверка если одно изображение прозрачное, а другое нет?
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение.

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

Регистрация: Jul 2011
Сообщений: 121
Проверяй через hitPoint для чётких границ.
Код AS3:
stage.addEventListener(MouseEvent.CLICK, goHit);
 
function goHit(e:MouseEvent):void {
if (enemy.hitTestPoint(hitTriangle.x,hitTriangle.y,true)) {die(enemy)}
//если много врагов, организуй массив и дави через цикл.
}
 
function die(enemy):*{
   enemy.gotoAndPlay("DIE");
   //удаление со сцены...
}
Как-то так в общем...
__________________
for (year=0;year<life;year++) {birthday(year)}

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

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Зачем? Математика не помогает? известны координаты персонажа (вершины конуса)? Известны координаты цели? Если да, то ищете направление вектора и проверяете по углу, попадает ли он в заданные пределы или нет.

Старый 26.09.2012, 17:20
Tetraeon вне форума Посмотреть профиль Отправить личное сообщение для Tetraeon Найти все сообщения от Tetraeon
  № 6  
Ответить с цитированием
Tetraeon

Регистрация: May 2012
Сообщений: 166
Silicium вот именно это и нужно, только вопрос в том как это должно выглядить? Можете помочь?

Sweet07 удар происзводится не по нажатию кнопки мышки, вот в чем дело.
Перед нанесением урона запускается таймер (коротких промежуток времени "замах" перед ударом, в этот момент "триугольник" фиксируется в направлении врага, если в этот промежуток времени враг увельнет из области поражения (из триугольника) то засчитается "уворот".
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение.

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

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
итак, дано:
положение игрока {x0, y0}, положение соперника в момент "замаха" {x10, y10}, положение соперника после попытки "уворота" {x11, y11}
Math.atan2(y10-y0, x10-x0) даст нам угол поворота вектора, направленного от игрока к сопернику при замахе, лежащий в диапазоне -pi..pi.
Math.atan2(y11-y0, x11-x0) даст угол поворота вектора, направленного от игрока к сопернику после удара.

если разность этих двух углов меньше некоторого порогового значения (половины градусной меры "конуса"), то игрок попал, если больше - соперник увернулся. Принимая во внимание диапазон значений углов и тот факт, что углы около pi и -pi близки, проверку следует делать так:
Код AS3:
var delta:Number = Math.abs(Math.atan2(y10-y0, x10-x0) - Math.atan2(y11-y0, x11-x0));
if ((delta < treshold) || (delta > 2 * Math.PI - treshold))
{
      ...//игрок попал
} else {
      ...//игрок промахнулся
}


Последний раз редактировалось Silicium; 26.09.2012 в 19:23.
Старый 26.09.2012, 18:29
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 8  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Цитата:
Math.atan2(x10-x0, y10-y0)
atan2 в обратном порядке принимает агрументы, сначала y, потом x.
__________________
hauts.ru

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

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
да, разумеется.

Старый 26.09.2012, 21:00
Tetraeon вне форума Посмотреть профиль Отправить личное сообщение для Tetraeon Найти все сообщения от Tetraeon
  № 10  
Ответить с цитированием
Tetraeon

Регистрация: May 2012
Сообщений: 166
Очень полезная информация, большое спасибо)
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение.

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

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

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


 


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


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