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

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

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

Регистрация: May 2011
Сообщений: 18
По умолчанию box2d Изменение положения статического тела

Есть необходимость переместить статическое тело. Использую метод SetPosition, нет никакого результата. При этом динамическое тело таким способом нормально перемещается.
Подскажите как решить проблему?

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

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Я удаляю статическое тело и создаю его заново в новых координатах.
__________________
Гоночка

Старый 04.08.2011, 08:46
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 3  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Из оф мануала:
Цитата:
A static body has does not move under simulation and behaves as if it has infinite mass. Internally, Box2D stores zero for the mass and the inverse mass. Static bodies can be moved manually by the user. A static body has zero velocity. Static bodies do not collide with other static or kinematic bodies.
Но относится это к версии 2.1.0. По поводу более старых версий, на их форуме писали, что тоже не получается переместить статическое тело. И исправили это, как раз в релизе 2.1.0
Правда на счет АС3 версии не знаю. Хотя мне тоже в ближайшем будущем прийдется разобраться в этой проблеме.


Последний раз редактировалось goodguy; 04.08.2011 в 08:49.
Старый 04.08.2011, 19:33
Furgon вне форума Посмотреть профиль Отправить личное сообщение для Furgon Найти все сообщения от Furgon
  № 4  
Ответить с цитированием
Furgon

Регистрация: May 2011
Сообщений: 18
Использую версию 2.1а. Оказывается, что в моем случае дело не в том, что тело статическое. Метод SetPosition не работает в моменты коллизий (вызываю либо из BeginContact, либо из EndContact), как со статическими, так и с динамическими телами. Причем у динамического тела получается изменить его скорость, вращение, а вот позицию нет.
Кто-нибудь знает чем обусловлено данное поведение движка?

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

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Движек расчитывает исходя из физических законов и от этого будет зависеть положение тела, так что в этот момент ставить телу позицию бессмысленно, так как она (позиция) всё равно будет пересчитана.
Можно делать вроде такого
Код AS3:
world.Step(timestep, iterations, iterations);
world.ClearForces();
mySetPosition();
те. доставлять позицию.
__________________
Гоночка

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

Теги
box2d setPosition

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

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


 


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


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