Game Maker - создание игр | HellRoom Games
Январь 15, 2025, 08:11:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

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

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

Пол: Мужской
API: Game Maker 8.0 Pro
Сообщений: 457


« : Апрель 19, 2011, 13:09:12 »

Ситуация следующая: игра уже почти сделана. Количество спрайтов - более 200. Не все их них сохранились в виде файлов png (т.е. теперь они есть только в проекте gmk). Некоторые из тех, что есть в виде файлов png, менял в самом редакторе. При всё при этом, экспортируя ресурсы, обнаружил, что фоны и спрайты занимают 90% веса exeшника игры. Поэтому решил вынести их вовне.
Вопрос таков:
Возможно ли, учитывая всё изложенное выше, экспортировать ресурсы, а потом использовать этот файл как внешний для загрузки ресурсов из него в самом начале игры? Если нет, то как тогда лучше поступить?
Записан

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

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

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



« Ответ #1 : Апрель 19, 2011, 13:17:59 »

Экспортировать можно: открываешь спрайт, нажимаешь там кнопку "редактировать" и там в меню выбираешь "сохранить как PNG файл..."
А вот загрузку ресурсов и назначение спрайтов для объектов нужно будет вручную делать.
Записан

a7s1h1
Активный участник
*****

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

Пол: Мужской
API: Game Maker 8.0 Pro
Сообщений: 457


« Ответ #2 : Апрель 19, 2011, 14:52:52 »

экспорт пофайльно удался, спасибо)

насчёт второго - печально, но что, если сделать так?:
1. сохраняю спрайты как файлы png
2. удаляю все спрайты, вместо них создаю новые пустые, с теми же именами.
3. в начале игры ставлю объект-контроллер, который загружает все спрайты из файлов png, заменяя ими пустые.
Это первый вопрос.

2.Насколько я понимаю, после того, как все спрайты будут таким образом заменены, менять в отдельных объектах уже ничего не надо, так как в коде я ссылаюсь на название спрайта. Правильно?

3. если всё это провернуть подобным образом, как быть с маской и центром спрайта? Тоже прописывать в коде?(


Записан

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

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

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



« Ответ #3 : Апрель 19, 2011, 15:24:13 »

Почти правильно - просто удаляешь спрайты из проекта и НЕ заменяешь их пустыми. Там просто не будет спрайтов вообще. Но это нужно делать перед созданием ехе файла - так удобнее расставлять объекты в комнате (и перед удалением обязательно сделай резервную копию проекта).

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

Маска назначается при загрузке спрайта (точная или не точная), размер и форму маски можно выбрать сразу после загрузки спрайта функцией sprite_collision_mask()
Записан

a7s1h1
Активный участник
*****

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

Пол: Мужской
API: Game Maker 8.0 Pro
Сообщений: 457


« Ответ #4 : Апрель 19, 2011, 15:52:19 »

ок. буду ждать. только ты напиши, даже если не получится.
я так понимаю, мне пока продолжать делать всё в прежнем режиме. а потом просто сотру спрайти и т.д... Так?
Записан

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

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

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



« Ответ #5 : Апрель 19, 2011, 17:37:09 »

Да, все правильно делаешь как и раньше а потом, в самом конце удалишь спрайты (луче всего в проекте сделать для спрайтов папку и все спрайты хранить в ней, а потом сразу папку удалить - чтобы по одному спрайту не удалять).

Вот написал статью и сделал пример. Код универсальный и совсем не большой:

"Автоматическая загрузка спрайтов из папки"
Записан

a7s1h1
Активный участник
*****

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

Пол: Мужской
API: Game Maker 8.0 Pro
Сообщений: 457


« Ответ #6 : Апрель 20, 2011, 09:30:51 »

подскажи ещё, пожалуйста, как мне лучше загружать фоны из внешнего файла?
(со спрайтами разберусь позже (по твоей статье), а вот фонов всего десяток - с ними хочу расправиться уже сейчас.)
Записан

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

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

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



« Ответ #7 : Апрель 20, 2011, 10:49:26 »

В статье Добавление ресурсов (Спрайтов, звуков, тайлов, бэкграундов) из папок. написано как добавлять бэкграунды (точно так де как и спрайты).

Статью "Автоматическая загрузка спрайтов из папки" я переделаю сегодня, т.к. там спрайты автоматически назначаются только тем объектам, которые находятся в комнате в начале игры.
Записан

a7s1h1
Активный участник
*****

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

Пол: Мужской
API: Game Maker 8.0 Pro
Сообщений: 457


« Ответ #8 : Апрель 20, 2011, 12:57:27 »

В статье Добавление ресурсов (Спрайтов, звуков, тайлов, бэкграундов) из папок. написано как добавлять бэкграунды (точно так де как и спрайты).

Статья хорошая, но не мой случай)
Там написано: "По этому бэкграунд должен назначаться каким-то объектом, который будет для каждой комнаты свой, или одним объектом, который будет назначать бэкграунд в зависимости от комнаты. "
У меня в игре комнат больше 300, я замучаюсь в каждую ставить контроллер или в один - прописывать все комнаты кодом.

Можно ли в данном случае сделать так, как я сначала собирался со спрайтами?:
1. сохранить фоны в png
2. стереть все фоны из проекта
3. создать фоны с теми же именами, но пустые
4. при старте заменяю фоны из файла с помощью background_replace_background
Записан

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

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

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



« Ответ #9 : Апрель 20, 2011, 13:09:53 »

Да, думаю так получится (но нужно проверить). Напиши потом получилось или нет.
Записан

a7s1h1
Активный участник
*****

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

Пол: Мужской
API: Game Maker 8.0 Pro
Сообщений: 457


« Ответ #10 : Апрель 20, 2011, 13:16:38 »

получилось. все фоны сделал пустыми, в game start вставил замену из файла. Правда, попробовал только с 1 фоном. Но, думаю, там всё должно быть нормально, ведь свойств у них никаких нет, как у спрайтов (типа маски и т.д., которые сбрасываются при загрузке нового).
Один недостаток: без конкретных фонов не видно, как тот или иной объект будет смотреться на определённом фоне. Так что вынесу все фоны перед готовностью.
Записан

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

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

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



« Ответ #11 : Апрель 20, 2011, 13:32:31 »

Так что вынесу все фоны перед готовностью.
Ну да, я про это и говорил (как и со спрайтами)
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

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