Среда, 06 Ноября 2024, 00:19

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Сохранение созданного уровня.
toby3dДата: Четверг, 19 Апреля 2012, 16:19 | Сообщение # 1
One-Aloner
Сейчас нет на сайте
И снова здравствуйте.
Кратко объясню суть проблемы: я делаю простенький редактор, в котором можно создать свой уровень из музыкального файла (mp3, wav, ogg), файла изображения (png, jpg, bmp) и маркеров событий (в INI-файл). Файлы пользователь выбирает через плагин FileDialogue.
Мне необходимо, чтобы файл музыки, файл изображения и файл INI, после клика по кнопке "SAVE", сохранялись в один архив.
После нескольких "крАшовых" попыток, решил обратиться за помощью сюда.




Сообщение отредактировал toby3d - Четверг, 19 Апреля 2012, 16:20
allxumukДата: Четверг, 19 Апреля 2012, 17:54 | Сообщение # 2
старожил
Сейчас нет на сайте
Встроенный плагин для работы с зип-архивами не работает. Можно воспользоваться Питоном, к сожалению у меня не сохранился пример, как это сделать.

Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
toby3dДата: Пятница, 20 Апреля 2012, 11:08 | Сообщение # 3
One-Aloner
Сейчас нет на сайте
Quote (allxumuk)
к сожалению у меня не сохранился пример, как это сделать.

Хм, а если сохранять в новую папку, то как вписать в INI-файл выбранный фон с музыкой так, чтобы он не искал их в системе, а искал только в той папке, где он лежит?


allxumukДата: Пятница, 20 Апреля 2012, 14:47 | Сообщение # 4
старожил
Сейчас нет на сайте
Вот как записать в ini даже не знаю, можешь записывать просто название папки с уровнем, а в Констракте уже загружать файлы из адреса
Code
appPath & путь_к_папке_с_парками-картами & название_выбраной папки-карты & имя_файла_прочитанное_из_ini


Вот как-то так. В общем, чтобы обратиться сразу к папке где лежит сама игра используй appPath, а дальше уже по твоей структуре папок.


Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
toby3dДата: Пятница, 20 Апреля 2012, 16:58 | Сообщение # 5
One-Aloner
Сейчас нет на сайте
Quote (allxumuk)
Вот как-то так.

Благодарю, разобрался немного. Правда с импортом музыки ничего не выходит. В INI прописал одинаковые пути к картинке и к музыке. Картинка встаёт, музыка не играет (вытаскивал в конструкт и через "Load File", и через "Autoplay file").


allxumukДата: Пятница, 20 Апреля 2012, 18:02 | Сообщение # 6
старожил
Сейчас нет на сайте
Quote (toby3d)
Картинка встаёт, музыка не играет

Используй действие Play music from file.


Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
toby3dДата: Пятница, 20 Апреля 2012, 20:22 | Сообщение # 7
One-Aloner
Сейчас нет на сайте
Quote (allxumuk)
Используй действие Play music from file.

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


allxumukДата: Суббота, 21 Апреля 2012, 08:41 | Сообщение # 8
старожил
Сейчас нет на сайте
Quote (toby3d)
Но мне музыка нужна в редакторе уровней, как основа, чтобы пользователь расставлял метки в нужные моменты музыки.

В смысле, что-то вроде меток для нажатия кнопок в Гитар Хиро?


Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
toby3dДата: Воскресенье, 22 Апреля 2012, 14:23 | Сообщение # 9
One-Aloner
Сейчас нет на сайте
Quote (allxumuk)
В смысле, что-то вроде меток для нажатия кнопок в Гитар Хиро?

Да. Только у меня всего два типа меток: основные (событие во время игры) и дополнительные (визуальные эффекты).
Мне нужно чтобы пользователь мог хотя бы нажатием одной клавиши расставлять один тип меток. И чтобы эти метки (точнее - моменты времени в музыке) записывались в INI.
Например, запускается музыка, и пока она идёт, расставлять метки по нажатию клавиши. Музыка закончилась - метки расставлены и когда идёт проигрывание уже готового проекта - геймплей реагирует на эти метки.

Вот пример:


Итак, в редакторе мне нужно уместить трек любой длительности в 700-пиксельную горизонтальную линию, по которой будет "ползти" линия записи.
После нажатия клавиши записи, трек начинает играть с 0 миллисекунды и во время проигрыша, пользователь должен расположить маркеры (ЛКМ/ПКМ).
После записи можно чуть подправить положения маркеров (убрать/добавить).
Положения маркеров на "таймлайне", после нажатия кнопки SAVE, записываются в INI файл, пример на картинке.
Например, точка "R21430" означает "красный маркер на 21430 миллисекунде".
В игре необходимо, чтобы во время проигрывания музыки, игра сверялась со списком маркеров в INI-файле и если она [игра] "встречает" точку, то выполняла действие в соответствии с цветом точки.
Как-то так.




Сообщение отредактировал toby3d - Воскресенье, 22 Апреля 2012, 17:52
allxumukДата: Воскресенье, 22 Апреля 2012, 18:16 | Сообщение # 10
старожил
Сейчас нет на сайте
Стоит внести пару правок в концепт:
1. Не стоит пихать треки любой длины в 700 пиксельный таймлайн. Иначе маркеры будут двигаться с разной скоростью, это нарушит баланс. Лучше немного помаяться со скролингом таймлайна и меток в редакторе.
2. Лучше заменить INI на массив. В массиве данные хранятся удобнее, да и геморроя с ними меньше.

В остальном всё просто. В редакторе одновременно с запуском трека, начинай увеличивать переменную и по ней отслеживай текущую временную координату для меток. При нажатии ЛКМ или ПКМ, переписывай значение координаты в соответствующую ячейку массива.


Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
toby3dДата: Воскресенье, 22 Апреля 2012, 18:31 | Сообщение # 11
One-Aloner
Сейчас нет на сайте
Quote (allxumuk)
Лучше заменить INI на массив. В массиве данные хранятся удобнее, да и геморроя с ними меньше.

Можно поподробнее о массивах и способе их хранения?

Quote (allxumuk)
Не стоит пихать треки любой длины в 700 пиксельный таймлайн. Иначе маркеры будут двигаться с разной скоростью, это нарушит баланс. Лучше немного помаяться со скролингом таймлайна и меток в редакторе.

Подскажете как организовать?


allxumukДата: Воскресенье, 22 Апреля 2012, 19:29 | Сообщение # 12
старожил
Сейчас нет на сайте
Quote (toby3d)
Можно поподробнее о массивах и способе их хранения?

Вот пример сохранения/загрузки массива.

Quote (toby3d)
Подскажете как организовать?

Завтра сделаю пример, сегодня уже поздно.


Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
toby3dДата: Воскресенье, 22 Апреля 2012, 20:03 | Сообщение # 13
One-Aloner
Сейчас нет на сайте
Quote (allxumuk)
Завтра сделаю пример, сегодня уже поздно.

Благодарю. smile


allxumukДата: Понедельник, 23 Апреля 2012, 14:12 | Сообщение # 14
старожил
Сейчас нет на сайте
Вот набросок "редактора" со скролящимся таймлайном. Правда работает он только с WAV и OGG, как загрузить mp3 в определённый канал я так и не понял. Метки появляются во время воспроизведения музыки, при нажатии на прямоугольную область под таймлайном. Частоту их появления уже как-нибудь сам ограничишь, чтобы 3 метки не ставились на одну позицию.

Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
toby3dДата: Понедельник, 23 Апреля 2012, 17:00 | Сообщение # 15
One-Aloner
Сейчас нет на сайте
Quote (allxumuk)
Правда работает он только с WAV и OGG, как загрузить mp3 в определённый канал я так и не понял.

Хм, а может воспользоваться объектом Audio Converter? Какой MP3-кодек нужно прописать?

UPD: Не получается записать положение метки в Array. sad
Как правильно записать момент в музыке и загрузить его уже во время игры?
Пробовал записать значение в X1, Y1, а потом сразу сдвигать положение Х.




Сообщение отредактировал toby3d - Вторник, 24 Апреля 2012, 19:59
allxumukДата: Среда, 25 Апреля 2012, 08:42 | Сообщение # 16
старожил
Сейчас нет на сайте
Quote (toby3d)
Хм, а может воспользоваться объектом Audio Converter? Какой MP3-кодек нужно прописать?

Даже не представляю.

Quote (toby3d)
Как правильно записать момент в музыке и загрузить его уже во время игры?

Я же скидывал выше исходник сохранения массива. Вот "редактор" с сохранением, но только красных меток. Синие сохраняются так же, только в массиве устанавливай Y на 2, а не 1. (кнопка "Сохранить" сохраняет расставленные метки, "Загрузить" - загружает сохранённые.)


Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
toby3dДата: Среда, 25 Апреля 2012, 18:21 | Сообщение # 17
One-Aloner
Сейчас нет на сайте
Quote (allxumuk)
Вот "редактор" с сохранением, но только красных меток.

Я имел ввиду как настроить спавн объектов только в те моменты музыки, которые указаны в маркерах. Уже во время игры.


allxumukДата: Среда, 25 Апреля 2012, 21:21 | Сообщение # 18
старожил
Сейчас нет на сайте
Quote (toby3d)
Я имел ввиду как настроить спавн объектов только в те моменты музыки, которые указаны в маркерах. Уже во время игры.

Это тоже легко: Исходники редактора и плэйера. В редакторе расставляешь маркеры, в плеере загружаешь и наблюдаешь за спавном объектов.


Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
toby3dДата: Среда, 25 Апреля 2012, 22:41 | Сообщение # 19
One-Aloner
Сейчас нет на сайте
Quote (allxumuk)
Исходники редактора и плэйера

Не совсем то. Сама игра происходит на другом лаяуте, мне нужно всего лишь выбрать файл INI, где прописан путь к музыке, фону и array-таблице с записанными маркерами.


allxumukДата: Четверг, 26 Апреля 2012, 12:28 | Сообщение # 20
старожил
Сейчас нет на сайте
Quote (toby3d)
Не совсем то. Сама игра происходит на другом лаяуте, мне нужно всего лишь выбрать файл INI, где прописан путь к музыке, фону и array-таблице с записанными маркерами.

Я так скоро всю игру за тебя сделаю.
1. Нет принципиальной разницы между другим исходником и другим лайаутом.
2. Прописать путь к музыке и фону можно в массиве, что я собственно и показал в последних исходниках.
3. Перекинуть музыку и фон в папку-уровень можно с помощью плагина File.


Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг