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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.01.2011, 10:37
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 1  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Attention "Вибрирование" детей, при смещении родителя. Кто-нибудь сталкивался?

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

Кто-нибудь сталкивался с такой проблемой? Как решали?
Я уже всю голову сломал, пытаясь найти решение..

Старый 30.01.2011, 10:45
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Я конечно с т.зр. AS3 не знаю, но в проектах на AS2 такое наблюдал, когда дети слишком перегружены разнообразным графическим контентом. Решал так - отрисовывал содержимое контейнера в битмапу и аттачил на то же место, а у исходного содержимого скрывал видимость до момента, когда вдруг понадобится использовать какие-то активные элементы и перерисовать заново.
__________________
Идите первым!

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Можно попробовать поставить детям cashAsBitmap=true и круглые координаты.

Старый 30.01.2011, 11:42
f.g.programmer вне форума Посмотреть профиль Отправить личное сообщение для f.g.programmer Найти все сообщения от f.g.programmer
  № 4  
Ответить с цитированием
f.g.programmer
 
Аватар для f.g.programmer

блогер
Регистрация: Sep 2010
Адрес: Россия
Сообщений: 137
Записей в блоге: 3
Похоже, что внутри контейнера лежат битмапы и они выравниваются до ближайшего пикселя.
Можно или задавать только целые координаты и детям и контейнеру. Или битмапам задавать параметр pixelSnapping = PixelSnapping.NEVER, и присваивать скалирование отличное от 1 (это вроде баг плеера, что при скалировании 1 параметр не действует)

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Автор вроде пишет, что это у него на любой скорости проявляется. По своему опыту, выравнивание битмапы по целым координатам делается неприятно заметным только на небольших скоростях движения.
Либо перегруз контента, либо автору нужно проверить скорость побыстрее. Если рывков контента не будет, значит дело в выравнивании битмапы по целым координатам, незаметному при больших скоростях.
__________________
Идите первым!


Последний раз редактировалось mooncar; 30.01.2011 в 11:48.
Старый 30.01.2011, 12:13
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 6  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Либо перегруз контента, либо автору нужно проверить скорость побыстрее. Если рывков контента не будет, значит дело в выравнивании битмапы по целым координатам, незаметному при больших скоростях.
На таких скоростях, на которых вообще можно наблюдать движение объекта, он всегда вибрирует.

Цитата:
Можно попробовать поставить детям cashAsBitmap=true и круглые координаты.
cacheAsBitmap стоит, но круглые координаты, никак не поставить. В данном случае, контейнер содержит игровую карту, и персонажей. При движении персонажей с разной скоростью, контейнер движется в противоположную. При этом скорость может быть любой, так как там есть и плавный разгон и плавное торможение.

Цитата:
Я конечно с т.зр. AS3 не знаю, но в проектах на AS2 такое наблюдал, когда дети слишком перегружены разнообразным графическим контентом. Решал так - отрисовывал содержимое контейнера в битмапу и аттачил на то же место
Слишком сложно, да и в данном случае не вариант, так как эти объекты реагируют на мышь, а битмап, на сколько я знаю, этого не позволяет.
Цитата:
Похоже, что внутри контейнера лежат битмапы и они выравниваются до ближайшего пикселя.
Можно или задавать только целые координаты и детям и контейнеру. Или битмапам задавать параметр pixelSnapping = PixelSnapping.NEVER, и присваивать скалирование отличное от 1 (это вроде баг плеера, что при скалировании 1 параметр не действует)
Так и есть. Сейчас попробую

Добавлено через 44 минуты
не помогло ((
Собираю объект в рантайме, назначаю
Код AS3:
pixelSnapping = "never";
И все равно он дрожит при движении.

Кстати, объект собран таким образом: сам он представляет из себя мувиклип, а уже внутрь добавляется битмапка.

При этом если добавить битмапку в тот же общий контейнер без мувиклиповой обертки, она вибрировать не будет. Похоже мувиклип как-то примагничивается к пикселям


Последний раз редактировалось goodguy; 30.01.2011 в 13:07.
Старый 30.01.2011, 13:08
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 7  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
А как реализованы персы и карта?
Дергается, вероятно, поскольку не хватает вычислительной мощности.

1. Надо упростить карту. Какие там размеры, кстати, и как она собирается? Даже если из мувиков - ее можно катнуть в растр, а вытаскивать по частям.

2. Надо упростить персов. Тут тоже катать в растр (или изначально выполнять как секвенцию). Перс с растровым контентом на мышь реагирует нормально, это беспокоить не должно.

Добавлено через 4 минуты
Меня, кстати, сомнения посетили.

Вы часом не пишете бродилку, в которой перс висит посреди экрана, а мир под ним движется в зависимости от его направления движения? Просто в этом случае перс не должен быть потомком мира.

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

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
2. Надо упростить персов. Тут тоже катать в растр (или изначально выполнять как секвенцию). Перс с растровым контентом на мышь реагирует нормально, это беспокоить не должно.
Не, об этом не может быть и речи. Конструкция персонажей довольно сложная, в растр их не закатаешь.

Цитата:
Вы часом не пишете бродилку, в которой перс висит посреди экрана, а мир под ним движется в зависимости от его направления движения?
Нет. Игра намного сложнее. Это военная стратегия, с кучей танков, джипов, вертолетов, солдат (которые могут перемещаться отрядами и по-одиночке), домов, которые можно взорвать и т.д.

Цитата:
А как реализованы персы и карта?
Дергается, вероятно, поскольку не хватает вычислительной мощности.
Вычислительной мощности более чем достаточно. Причину дерганья я нашел http://darqwan.proibito.ro/2009/07/2...ters-the-hack/

Все именно так, как описано в этой статье. Так что остается единственный вариант, пойти по сложному пути и отрисовывать не активных персонажей в битмапку

Добавлено через 2 часа 39 минут
Не помогает и отрисовка в битмап.

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Была у меня такая же проблема. Попробовал сейчас на старом проекте - тоже отрисовка не помогла. Если есть желающие могу выложить несколько классов быдлокода для тестов. Пишите если нужно.
Сам проблему так и не решил (не было должного стимула наверное)
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Блин. В целом проект получился неплохой, самому нравится Но какая-то ложка дегтя все-таки нашлась
Самое интересное, что сама карта, тоже представляет из себя битмап, добавленный в тот же контейнер, и двигается так же, но она не вибирирует, а мелкие объекты вибирируют
Уже весь гугл перелопатил вдоль и поперек, все предлагают отрисосвать в битмап...

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

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

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


 


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


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