Сохранение созданного уровня.
| |
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) Завтра сделаю пример, сегодня уже поздно. Благодарю.
|
|
| |
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. Как правильно записать момент в музыке и загрузить его уже во время игры? Пробовал записать значение в 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.
Любой дурак может написать программу, которую поймёт компилятор. Хорошие программисты пишут программы, которые смогут понять другие программисты.
|
|
| |
|