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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.08.2010, 19:18
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 1  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
По умолчанию hitTestObject в "дырке"

Подскажите как бы сделать так, чтобы рыбки не выплывали за пределы аквариума? Думал, сделать проверку на hitTestObject, но с такой фигурой не прошел этот вариант, ведь превратив красную фигуру в мувиклип, он автоматически заполнит неотрисованые места. И в "дырке", где должны плавать рыбки, все объекты пересекутся. Что делать?
Изображения
 

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

блогер
Регистрация: Jul 2010
Сообщений: 117
Записей в блоге: 4
Если просто - можешь задать внутри окружности прямоугольник из 4-х стенок и проверять столкновение рыбок с ними. При столкновении рыбка меняет направление

Если сложно - то можно представить все объекты в виде BitmapData и вызвать HitTest(), который попиксельно сравнивает битмапы

Старый 19.08.2010, 20:58
t4arty вне форума Посмотреть профиль Отправить личное сообщение для t4arty Найти все сообщения от t4arty
  № 3  
Ответить с цитированием
t4arty

Регистрация: May 2010
Адрес: пространство в положении
Сообщений: 219
лучше просто координаты проверять.

Старый 19.08.2010, 21:03
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 4  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
с координатоми кажется все сложнее

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
с координатоми кажется все сложнее
Наоборот - все гораздо проще.
Т.к. аквариум круглый, то достаточно измерить расстояние от его центра до рыбки, и если расстояние больше радиуса аквариума - значит надо разворачивать рыбку
__________________
...вселенская грусть

Старый 23.08.2010, 15:50
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 6  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
Значит нужно рассчитывать расстояние от центра аквариума до положения рыбки. Центр аквариума у нас x=0 и у=0, делаем событие на ENTER_FRAME отслеживающее положение рыбки по X и Y. Ну и сам радиус равен 170 pix. А по какой формуле можно рассчитать расстояние, которое преодолевает рыбка?

Добавлено через 10 минут
Ну как бы по теореме Пифагора? Помогите записать это с помощью as3.0
h - гипатенуза
x - катет
y - второй катет
h = корень квадратный из суммы x в квадрате и у в квадрате

Старый 23.08.2010, 16:09
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 7  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,724
А зачем здесь теорема Пифагора, которая, как я помню относится вовсе к треугольникам?
Я считаю здесь можно просто измерять расстояние от центра аквариума, до центра рыбки (учитывая ее ширину). Расчитать расстояние между точками можно по формуле
Код AS3:
Math.sqrt((x1-x2)^2+(y1-y2)^2));
Дальше просто проверяете если расстоение больше (170 - ширина рыбки), тогда рыбка ударилась об аквариум

Старый 23.08.2010, 16:29
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 8  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Рыбка:
Xfish
Yfish
Rfish (радиус круга описывающего рыбку, определяется ее размером)

Аквариум:
Raquarium

Расстояние до центра круга, описывающего рыбку не должно быть больше радиуса аквариума за вычетом радиуса вышеуказанного круга:

Код AS3:
function keepItInside( Xfish : Number, Yfish : Number, Rfish : Number, Raquarium : Number ) : void
{
    var R : Number = Raquarium - Rfish;
    if ( Xfish*Xfish + Yfish*Yfish > R*R)
    {
        // разворачиваем рыбку
    }
}
Сравниваем разумеется квадраты значений, что быстрее вычисления корня.
Вот и все. Разворачивайся рыбка большая и маленькая.
__________________
Поймай яблоко 2!

Старый 23.08.2010, 17:00
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 9  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
ничего не получилось, с вот этой формулой всегда вылетают предупреждения
Код AS3:
Math.sqrt((x1-x2)^2+(y1-y2)^2));
Код AS3:
syntaxis error:  expecting semicolonbefore rightparen

Старый 23.08.2010, 17:02
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 10  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Скобку лишнюю убери в конце.
__________________
Поймай яблоко 2!

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

Теги
hittestobject , область , проверка

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

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


 


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


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