Game Maker - создание игр | HellRoom Games
Декабрь 06, 2025, 14:46:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Движение фона по дуге окружности  (Прочитано 6115 раз)
0 Пользователей и 1 Гость смотрят эту тему.
NinjaCat
GM Pro user
*

Репутация: 60
Offline Offline

Пол: Мужской
Награды:
За постоянность! [10 дней на форуме]2 место: Звание отличного дизайнера (Февраль 2011)
API: GameMaker Studio 2
Деятельность: Всего понемногу
Сообщений: 262


Котоутка


« : Февраль 16, 2011, 11:37:05 »

Для создания эффектного главного экрана мне жизненно необходимо сделать так:
Посмотрим на картинку:
Есть три фона (поляна по которой идет герой, лес вдалеке и небо)
Фон поляны скорее всего будет недвижимый, вдалеке концы ее плавно уходят вниз, И по границе ее идет фон леса
Лес должен  как раз по этой границе (скроллингом, т.е. идет бесконечно) двигаться влево, создавая эффект движения героя.
Небо тоже должно двигаться как и лес, только медленнее

Вот меня и интересует, как же сделать движение по дуге?

Image2.png
Движение фона по дуге окружности
* Image2.png (22.59 Кб, 350x210 - просмотрено 1466 раз.)
Записан

Dva_Kota
Гл. Администратор
*

Репутация: 636
Offline Offline

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [500 дней на форуме]За лояльность! [+500 репутации]Настоящий игродел!Тру Админ :D1 место за игру: Energy Wars (Конкурс Золотые Руки)...
API: GameMaker Studio Standard
Сообщений: 3245



« Ответ #1 : Февраль 16, 2011, 11:51:41 »

Возьми формулу для движения фона отсюда:
http://forum.hellroom.ru/index.php/topic,1666.0.html
Записан

NinjaCat
GM Pro user
*

Репутация: 60
Offline Offline

Пол: Мужской
Награды:
За постоянность! [10 дней на форуме]2 место: Звание отличного дизайнера (Февраль 2011)
API: GameMaker Studio 2
Деятельность: Всего понемногу
Сообщений: 262


Котоутка


« Ответ #2 : Февраль 16, 2011, 12:11:45 »

Спасибо, думаю это мне поможет)
Записан

Fantom
I am... All of me
Гл. Администратор
*

Репутация: 1325
Offline Offline

Пол: Мужской
Награды:
5000 сообщений!За постоянность! [500 дней на форуме]За лояльность! [+1000 репутации]За отличные статьи по Game Maker!Тру Админ :DЗнаток Game Maker...
API: GameMaker Studio Master
Сообщений: 5026



« Ответ #3 : Февраль 16, 2011, 12:16:01 »

Получается, что по-любому придется загружать "замкнутый" по кругу фон (намного больше, чем размер комнаты).
Если предыдущее решение покажется сложным, то можно будет решить это с помощью функции:
draw_background_ext(back,x,y,xscale,yscale,rot,color,alpha)
Координаты использовать намного ниже за границей самой комнаты (где будет центр вращения фона).
Для поворота менять аргумент rot - угол, на который повернут фон.
Так, менять его на большую величину для ближайшего фона,
на чуть меньшую величину - средний фон,
и на малую величину - дальний фон.
Записан

Dva_Kota
Гл. Администратор
*

Репутация: 636
Offline Offline

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [500 дней на форуме]За лояльность! [+500 репутации]Настоящий игродел!Тру Админ :D1 место за игру: Energy Wars (Конкурс Золотые Руки)...
API: GameMaker Studio Standard
Сообщений: 3245



« Ответ #4 : Февраль 16, 2011, 12:23:52 »

FanTom, я думаю твой способ будет проще.
Записан

Fantom
I am... All of me
Гл. Администратор
*

Репутация: 1325
Offline Offline

Пол: Мужской
Награды:
5000 сообщений!За постоянность! [500 дней на форуме]За лояльность! [+1000 репутации]За отличные статьи по Game Maker!Тру Админ :DЗнаток Game Maker...
API: GameMaker Studio Master
Сообщений: 5026



« Ответ #5 : Февраль 16, 2011, 13:23:42 »

FanTom, я думаю твой способ будет проще.
Который, к сожалению, не работает whistling так как невозможно установить центр для фона.
Но можно с помощью спрайта ;)
draw_sprite_ext(sprite,subimg,x,y,xscale,yscale,rot,color,alpha)
Принцип будет тот же.
Записан

DeatHSoul
GM Pro user
*

Репутация: 236
Offline Offline

Пол: Мужской
Награды:
За постоянность! [50 дней на форуме]FAQ для начинающих & Сленг и ТерминологияЗа лояльность! [+150 репутации]За помощь новичкам!Знаток Game Maker
API: GameMaker Studio Standard
Сообщений: 478


« Ответ #6 : Февраль 22, 2011, 02:51:10 »

Для профи, кому интересно, могу рассказать про ещё один интересный способ поворота фонов.
Пример, создаём фон 64х64, и какому-то объекту пишем такой код:
Код:
var xoffset, yoffset, angle;
xoffset = 32;
yoffset = 84;
angle = point_direction(x, y, mouse_x, mouse_y);
d3d_transform_add_translation(-xoffset, -yoffset, 0); // Смещаем фон так, что бы его центр находился в (0,0)
d3d_transform_add_rotation_z(angle); // Поворачиваем фон. Эта функция повернёт наш фон относительно точки (0,0)
d3d_transform_add_translation(x, y, 0); // Смещаем фон к позиции, центр фона теперь будет в точке (x,y)
draw_background(background0, 0, 0); // Рисуем фон
d3d_transform_set_identity(); // Сбрасываем все преобразования
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.059 секунд. Запросов: 30.