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

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

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

Регистрация: Aug 2012
Сообщений: 38
Question Скроллинг в физ. мире

Добрый вечер! Пытаюсь сделать скроллинг в мире box2d 2.1а. Есть физ. герой (машинка), вид с боку, необходим скроллинг. Мир пока без графики. Прилагаю сам проект. Почитал разные темы. В них советовалось оптимальным вариантом - создать камеру. Пробовал её сделать, не получилось. Как мне реализовать камеру? Подскажите поподробнее, с кодом, пожалуйста.

TestGame.rar

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Физ мир не должен двигаться. Двигается только графика, отображающая этот физ мир.

Камера, вообщем-то в итоге имеет dx, dy - коэфиценты смещения для всей графики на экране. Может иметь разные методы для удобства: привязка к объекту, тряска, ограничение области видимости. То-есть, на основе переданных ей данных, она находит dx dy - смещение для всей графики на экране.
__________________
Дети не должны знать о своих родителях

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

Регистрация: Aug 2012
Сообщений: 38
Tails, привязка к объекту интерисует.

Можно кодом, поподробнее? Пытаюсь, всё не выходит.

Понимаю без графики пробовать смысла не имеет, т.к. смещать её и надо, поэтому добавил в проект.

Пытаюсь так, реакции ноль:

Код:
private  function Camera(event:Event):void  { //вместо героя смещаем задний фон
var _testlevel:Sprite = new TestLevel();	
_testlevel.x = -GFX.Hero.x + stage.stageWidth/2;
 _testlevel.y = -GFX.Hero.y + stage.stageHeight/2;
}
Код:
private function updateWorld(e:Event):void { //управление машиной
addEventListener(Event.ENTER_FRAME,Camera);
Контейнер - это у меня, главный класс мира? т.е. TestLevel в виде спрайта?

Так же нашёл пример:

Код:
public function Camera(event:Event):void 
      {
         var pos_x:Number;
         var pos_y:Number;
         
            pos_x = ГЕРОЙ.GetWorldCenter().x * MainGame.physScale;
            pos_y = ГЕРОЙ.GetWorldCenter().y * MainGame.physScale;

         следим за героем держа его всегда в низу сцены в 100 пикселях от края
         pos_y = stage.stageHeight - 100 - pos_y;
         
         ограничиваем выход героя за пределы карты
         if (pos_y < -500000)
         {
            pos_y = -500000;
         }
         if (pos_y > 500000) 
         {
            pos_y = 500000;
         }
         this.y = pos_y;
         
         
      }
Но, что здесь является ГЕРОЕМ и physScale я не соображу. Подскажите? Понял так: моё физ.тело - герой - car ( private var car:b2Body, а MainGame.physScale = 30, т.е. коэф. метров физ. мира. Но результ - не пойми что.

Прикладываю проект со всеми моими этими попытками и графикой, чтобы нагляденее было (а то мало ли глупую ошибку допустил или совсем не туда что-то написал).

TestGame.rar

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

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Не-знаю что там за значение храниться в physScale. Я вам опишу простейшую реализацию камеры:

У вас есть герой - машинка, которая своими x,y всегда привязывается к физ объекту, представляющего её в физ мире. Все остальные нарисованные объекты в игре, так-же привязываются к своим физ моделям. Тут все понятно.

Далее, вы все игровые спрайты представляющие уровень (коробки, машинка, платформы) помещаете в один общий спрайт - контейнер. Теперь вы просто можете изменять координаты этого контейнера x,y, и двигать всю графику на экране, не изменяя физ модель. Всё, у вас - простейшая камера.

Для удобства, вы можете написать отдельный класс Camera, для управления смещением главного контейнера со всей графикой, добавлением таких возможностей как ограничение области отображения, привязка и м.д.
__________________
Дети не должны знать о своих родителях

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

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

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


 


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


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