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

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

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

Регистрация: Oct 2011
Сообщений: 18
По умолчанию как определять на какой форме указатель мыши?

Как лучше определять shape, на котором находится указатель мыши в данный момент?

Я пробовал делать через обработчик столкновений, для указателя мыши создавал body и задавал ему позицию так:

Код AS3:
var tv:b2Vec2 = new b2Vec2(CMain.wmx, CMain.wmy);
bodyMouse.SetXForm(tv, 0);

Есть ли какие-нибудь другие способы?

Старый 13.06.2012, 00:51
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 2  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Таким методом можно
Код AS3:
		//http://www.emanueleferonato.com/2008/10/26/platform-game-basics-using-box2d/
		/* Following function gets the body from a cordinate (x, y)*/
		public function GetBodyAtPoint(px:Number, py:Number, includeStatic:Boolean = false):b2Body {
			// Make a small box.
			var px2:Number = px/physScale;
			var py2:Number = py/physScale;
			var PointVec:b2Vec2 = new b2Vec2();
			PointVec.Set(px2, py2);
			var aabb:b2AABB = new b2AABB();
			aabb.lowerBound.Set(px2 - 0.001, py2 - 0.001);
			aabb.upperBound.Set(px2 + 0.001, py2 + 0.001);
 
			// Query the world for overlapping shapes.
			var k_maxCount:int = 10;
			var shapes:Array = new Array();
			var count:int = myWorld.Query(aabb, shapes, k_maxCount);
			var body:b2Body = null;
			for (var i:int = 0; i < count; ++i) {
				if (shapes[i].m_body.IsStatic() == false || includeStatic) {
					var tShape:b2Shape = shapes[i] as b2Shape;
					var inside:Boolean = tShape.TestPoint(tShape.m_body.GetXForm(), PointVec);
					if (inside) {
						body = tShape.m_body;
						break;
					}
				}
			}
			return body;
		}
__________________
Гоночка

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

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

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


 


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


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