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

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

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Question Способ избежать тряски объекта

Что-то я видимо вообще расслабился последнее время. Уже полдня сижу, не могу придумать нормальный способ избежать "вибрации дисплей объекта". Суть вот в чем:
Есть движок подобный играм типа тауэр дефенс, который сделан на Nape. Если персонаж утыкается в препятствие (статическое тело), то оно начинает его выталкивать. Тут все нормально. Но если продолжить удерживать геймпад нажатым в сторону препятствия, то персонаж продолжает в него утыкаться, а так как картинка персонажа ставится в те же координаты, что и физическое тело, то получается эффект быстрой вибрации. То есть тело выталкивает персонажа, а он опять в него утыкается. Смотрится это очень убого.
Есть у кого-нибудь мысли как это обойти?

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

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Сделать "дерг детектор" и если он срабатывает, то не обновлять графику.
Попробовать переписать все на бокс2д.
Замылить все как-то моушен фильтром, будет фича.
__________________
Гоночка

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Попробовать переписать все на бокс2д.
С нормального движка на отстойный? Не вижу логики. К тому же бокс2д не лишен этого же недостатка.
Цитата:
Замылить все как-то моушен фильтром, будет фича.
Не вариант. Во-первых смотреться будет еще хуже, а во вторых, игра на мобилы, а там будет производительнее твином графику двигать, вместо применения фильтра. Но оба вариант не айс
Цитата:
Сделать "дерг детектор" и если он срабатывает, то не обновлять графику.
В этом и состоит вопрос темы

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

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
ну так можно cчитать
Код AS1/AS2:
trembx+=Math.abs(dx);
movex+=dx;
//каждые 3-5 кадров;
if (trembx-Math.abs(movex)>2) trace('тело дергается');
__________________
Гоночка

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Вопрос решен. Сталкивался уже с такой задачей года 4 назад в одной из игр, но забыл про это. Сейчас нашел код солдата оттуда, и оказалось все проще пареной репы. Простая формула твина
Код AS3:
this.x += (_physBody.position.x - this.x) / 3;
this.y += (_physBody.position.y - this.y) / 3;
Теперь он плавно двигается к физическому телу, и это сводит тряску на нет, но при этом перемещается достаточно быстро, чтобы не сильно отставать от физ тела.

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Движение физ тела сделано через присваивание velacity? Можно попробовать сделать через приложение импульса.
__________________
Дети не должны знать о своих родителях

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Да, через velocity. Не, импульс не дает нужного результата. У меня там отключена гравитация и вращение тел, и вообще физика не нужна. Нужно только правильно просчитывать столкновения

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

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

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


 


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


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