Кирюха
Участник
  
Репутация: 4
Offline
Пол: 
API: GameMaker Studio Pro
Деятельность: спрайтер, начинающий гейм-дизайнер, программист gml.
Сообщений: 113
Пиксель арт - это искусство
|
 |
« : Июль 22, 2011, 07:42:24 » |
|
всем ещё раз привет!  буду краток: как сделать комнату которая бы не имела конца? всмысле её конец сразу же соединялся с началом?
|
|
|
Записан
|
работаю над: Bloble, Ninja Runner 
|
|
|
DarGen
Участник
  
Репутация: 38
Offline
Пол:  Награды: 
API: GameMaker Studio Standard
Деятельность: Pixel-Art, GML, PHP
Сообщений: 188
|
 |
« Ответ #1 : Июль 22, 2011, 08:19:47 » |
|
Чтобы начиналась занова поставь в Outside Room такой либ (на картинке), и поставь in both directions. И всё.
|
 бесконечная комната
в.JPG (25.37 Кб, 296x363 - просмотрено 1711 раз.)
|
|
Записан
|
|
|
|
Alcatraz
|
 |
« Ответ #2 : Июль 22, 2011, 08:26:37 » |
|
|
|
|
Записан
|
|
|
|
DarGen
Участник
  
Репутация: 38
Offline
Пол:  Награды: 
API: GameMaker Studio Standard
Деятельность: Pixel-Art, GML, PHP
Сообщений: 188
|
 |
« Ответ #3 : Июль 22, 2011, 08:30:48 » |
|
}{otь бы спасибо сказал
|
|
|
Записан
|
|
|
|
Кирюха
Участник
  
Репутация: 4
Offline
Пол: 
API: GameMaker Studio Pro
Деятельность: спрайтер, начинающий гейм-дизайнер, программист gml.
Сообщений: 113
Пиксель арт - это искусство
|
 |
« Ответ #4 : Июль 22, 2011, 10:56:01 » |
|
спасибо! ;D
Добавлено: Июль 24, 2011, 10:14:49 хммм работать то работает, но вот вид мешает всё время когда я приближаюсь к краю комнаты он упираеться туда. надо бы как нибудь это устранить :(
|
|
« Последнее редактирование: Июль 24, 2011, 10:14:49 от Кирюха »
|
Записан
|
работаю над: Bloble, Ninja Runner 
|
|
|
Dmi7ry
Гл. Администратор
Репутация: 1379
Offline
Пол:  Награды:  ![За постоянность! [200 дней на форуме] За постоянность! [200 дней на форуме]](https://forum.hellroom.ru/awards/78e87f17e3713947881315332c8ce619_hellroomforum_time_silver.gif) ![За лояльность! [+1000 репутации] За лояльность! [+1000 репутации]](https://forum.hellroom.ru/awards/49d1e615667c15086498002286ccd3e9_hellroomforum_good_gold.gif)   
API: GameMaker Studio Master
Деятельность: Code, design
Сообщений: 6626
|
 |
« Ответ #5 : Июль 24, 2011, 19:17:03 » |
|
Почитав тему, меня запутал концепт FanTom'а. Провозился пол дня, но когда сделал, то выяснил, что GM безбожно глючит при такой реализации: почему-то человечек всегда оказывался ниже одного из видов, хотя принудительно ставил ему вывод в последнюю очередь. Более того, при включении нового вида было на мгновение пропадание информации там, где должен появиться новый вид (upd: ну да, собственно, ведь спрайт не может одновременно показываться в двух местах... Хотя, в принципе, можно это обойти). Понятно, что это никуда не годилось. Тогда пришла в голову другая идея. Всё оказалось довольно просто... комнату делаем немного больше, чем нужно Например, наша комната: 1234567890 qwertyuiop asdfghjklm zxcvbnmBNMДелаем вокруг неё повторение противоположных краёв: NMzxcvbnmBNMzx 90123456789012 opqwertyuiopqw lmasdfghjklmas NMzxcvbnmBNMzx 90123456789012А дальше просто задаём проверку координат. Например, если ширина комнаты 640, а высота 480 if x<160 x=480-4 if x>480 x=160+4 if y<160 y=320-4 if y>320 y=160+4 +4 или -4 - здесь должен стоять тот же шаг, что и в изменении координат при нажатии на клавиши управления героем. Ну, и, конечно же, делаем вид, который привязываем к игроку. Добавлено: Июль 25, 2011, 07:51:20 Добавил вариант с более понятным фоном (room_loop3)
|
|
|
Записан
|
- А какой, собственно, командой процессора колобок ест черта? - Командой EAT... |  | Справка и FAQ в правом верхнем углу... |  |
|
|
|
TheValeev
Посетитель

Репутация: 4
Offline
Пол: 
API: Game Maker 8.0 Pro
Сообщений: 21
|
 |
« Ответ #6 : Март 26, 2012, 12:32:12 » |
|
Всем привет! Dmi7ry! А возможен твой вариант в игре с деактивацией объектов?
|
|
|
Записан
|
|
|
|
|
TheValeev
Посетитель

Репутация: 4
Offline
Пол: 
API: Game Maker 8.0 Pro
Сообщений: 21
|
 |
« Ответ #8 : Июль 06, 2013, 11:57:28 » |
|
Это индивидуально для каждого конкретного случая. Где-то можно, где-то нет.
Позвольте рассмотреть мой случай. Допустим, 2D гонки. Построен уровень по вашему случаю. При переходе из конца комнаты в начало видно как деактивированные объекты активируются, и бэкграунд скачет. Что делать? Алсо, можно построить бесконечную комнату постоянным пересозданием всех объектов через опр. расстояние (например, ширина комнаты)?
|
|
|
Записан
|
|
|
|
Dmi7ry
Гл. Администратор
Репутация: 1379
Offline
Пол:  Награды:  ![За постоянность! [200 дней на форуме] За постоянность! [200 дней на форуме]](https://forum.hellroom.ru/awards/78e87f17e3713947881315332c8ce619_hellroomforum_time_silver.gif) ![За лояльность! [+1000 репутации] За лояльность! [+1000 репутации]](https://forum.hellroom.ru/awards/49d1e615667c15086498002286ccd3e9_hellroomforum_good_gold.gif)   
API: GameMaker Studio Master
Деятельность: Code, design
Сообщений: 6626
|
 |
« Ответ #9 : Июль 06, 2013, 12:39:51 » |
|
Можно деактивировать не все объекты после перехода. Например, если расстояние от объекта до границы меньше, чем размер вида, то эти объекты также переносятся в начало комнаты, вместе с ГГ, с точно таким же смещением относительно ГГ.
Чтобы "бэкграунд не скакал", его нужно зацикливать особым образом, о чём написано ранее.
Собственно, где-то я делал пример с врагами в такой "бесконечной" комнате, но сейчас не нашел его. Смысл такой, что у объектов заводил виртуальные координаты, которые и изменялись. А вывод на экран производился в зависимости от того, попадают ли виртуальные координаты в виртуальный вид. По сути, это своя реализация видов.
|
|
|
Записан
|
- А какой, собственно, командой процессора колобок ест черта? - Командой EAT... |  | Справка и FAQ в правом верхнем углу... |  |
|
|
|
TheValeev
Посетитель

Репутация: 4
Offline
Пол: 
API: Game Maker 8.0 Pro
Сообщений: 21
|
 |
« Ответ #10 : Июль 06, 2013, 19:59:04 » |
|
Чтобы "бэкграунд не скакал", его нужно зацикливать особым образом, о чём написано ранее.
Если вы имеете в виду пример room_loop3, то, к сожалению, он не подходит для меня. У меня реализирован так называемый параллакс с функциями view_xview и view_yview. Можно ли их подстроить под бесконечную комнату?
|
|
|
Записан
|
|
|
|
|
TheValeev
Посетитель

Репутация: 4
Offline
Пол: 
API: Game Maker 8.0 Pro
Сообщений: 21
|
 |
« Ответ #12 : Июль 07, 2013, 20:45:13 » |
|
Теоретически - можно, но может быть сложно в реализации. Зависит от того, как это у вас реализовано и как это у вас выглядит.
Как реализовано: // ==== FUNCTION ==================================================================== // scrDrawBackgroundTiledHorizontal(Background, x, y) // ==================================================================================
var BackgroundStart, BackgroundEnd, BackgroundStep;
// Retrieve background properties BackgroundStep = background_get_width(argument0); BackgroundStart = view_xview[view_current]+((argument1-view_xview[view_current]) mod BackgroundStep)-BackgroundStep; BackgroundEnd = view_xview[view_current]+view_wview[view_current]+BackgroundStep; repeat((BackgroundEnd-BackgroundStart)/BackgroundStep) { draw_background(argument0, BackgroundStart, argument2); BackgroundStart += BackgroundStep; } Аргументы для x и y - view_xview и view_yview. Как выглядит: Немного порыскал на других иноязычных форумах, нашёл код: view_xview = player.x-view_wview/2; view_yview = player.y-view_hview/2; Правда немного не понял зачем он, но мне интересно, поможет или нет.
|
|
|
Записан
|
|
|
|
Dmi7ry
Гл. Администратор
Репутация: 1379
Offline
Пол:  Награды:  ![За постоянность! [200 дней на форуме] За постоянность! [200 дней на форуме]](https://forum.hellroom.ru/awards/78e87f17e3713947881315332c8ce619_hellroomforum_time_silver.gif) ![За лояльность! [+1000 репутации] За лояльность! [+1000 репутации]](https://forum.hellroom.ru/awards/49d1e615667c15086498002286ccd3e9_hellroomforum_good_gold.gif)   
API: GameMaker Studio Master
Деятельность: Code, design
Сообщений: 6626
|
 |
« Ответ #13 : Июль 07, 2013, 21:02:12 » |
|
Правда немного не понял зачем он, но мне интересно, поможет или нет. выставляет вид, чтобы ГГ был всегда в центре Навскидку - тут не требуется бесконечная комната. Комната может быть размером с вид, нужно просто изменять координаты объектов и задавать смещение фонам.
|
|
|
Записан
|
- А какой, собственно, командой процессора колобок ест черта? - Командой EAT... |  | Справка и FAQ в правом верхнем углу... |  |
|
|
|
TheValeev
Посетитель

Репутация: 4
Offline
Пол: 
API: Game Maker 8.0 Pro
Сообщений: 21
|
 |
« Ответ #14 : Июль 07, 2013, 21:19:00 » |
|
Навскидку - тут не требуется бесконечная комната. Комната может быть размером с вид, нужно просто изменять координаты объектов и задавать смещение фонам.
Пригодится для бесконечной бегалки с боссом. Но у меня другой формат - гоночный платформер, комната уже построена со всеми примочками, и мне хотелось бы чтобы она была зациклена, чтобы в перспективе игроки бегали по ней кругами.
|
|
|
Записан
|
|
|
|
|