|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите сделать движок квеста (2D, со звуком)
Привет всем.
Я делаю свой юморной квест и уже подошел к моменту написания движка. Сам я программировал пару приложений на делфи, но это было очень давно. Короче уже почти все забыл. Поэтому и нужна помощь практикующего программиста. Игру никто не финансирует, делаю для себя и на удачу - вдруг стрельнет, поэтому много денег дать не могу (2000-4000 руб.). Хотелось бы найти программиста готового в основном делать на энтузиазме. В качестве бонуса, в игре созданной на данном движке будет написано, что программировал такой-то (можно e-mail указать). Также можем договориться о дополнительной выплате, в случае если от игры каким-либо образом в будущем будет получена прибыль. Если у вас есть свои соображения и предложения - напишите. Поправьте меня если что :-) Ниже привожу первую версию ТЗ (писал сам, специфика Delphi скорей всего не соблюдена): Код:
ТРЕБОВАНИЯ К ДВИЖКУ 2D-КВЕСТА (редакция 1.0 от 12 августа 2012) СРЕДА РАЗРАБОТКИ |__ Delphi (желательно Lazarus) |__ Желательно кроссплатформенная (Windows, Mac, и др.) |__ На выходе исполняемое в ОС приложение (типа exe) СИСТЕМНЫЕ ТРЕБОВАНИЯ |__ Мышь |__ Звуковая плата |__ ОС (Windows обязательно, желательно Mac и др.) ТИПЫ ДАННЫХ И ФУНКЦИИ К НИМ | |__ Location - локации (id, name, imagefile, walking_area, fg_start, алгоритм отображения локации) | |__ Location_change() - вызов смены локации | |__ Location_show() - включение отображения локации | |__ Location_hide() - выключение отображения локации | |__ Area - фрагмент локации (id, id_location, name, hint, imagefile, x, y, cursor=default|arrow_left|right|top|bottom) | |__ Area_show() - включение отображения фрагмента локации | |__ Area_hide() - выключение отображения фрагмента локации | |__ Area_click() - обработчик нажатия на фрагмент локации | |__ Area_hint_show() - включение отображения всплывающей при наведении подсказки | |__ Area_hint_hide() | |__ Item - предметы в игре (id, name, hint, imagefile, imagefile_icon, imagefile_face, x, y) | |__ Item_show() - включение отображения предмета | |__ Item_hide() - выключение отображения предмета | |__ Item_take() - взять предмет | |__ Item_talk() - вывод окна с лицом говорящего и текста сообщения (текст появляется буква за буквой, при нажатии текст сразу полностью рисуется) | |__ Item_click() - обработчик нажатия на предмет | |__ Item_hint_show() - включение отображения всплывающей при наведении подсказки | |__ Item_hint_hide() | |__ Character - персонажи в игре (id, name, hint, imagefile, imagefile_face, id_location, x, y, view=left|right|top|bottom|...) | |__ Character_show() - включение отображения персонажа | |__ Character_hide() - выключение отображения персонажа | |__ Character_talk() - вывод окна с лицом говорящего и текста сообщения (текст появляется буква за буквой, при нажатии текст сразу полностью рисуется) | |__ Character_move() - определние конечной точки пути перемещения, расчета траектории движения к ней и запуск анимации движения персонажа | |__ Character_click() - обработчик нажатия на персонажа | |__ Character_hint_show() - включение отображения всплывающей при наведении подсказки | |__ Character_hint_hide() | |__ Pocket - карман для предметов, взятых главным персонажем (id) | |__ Pocket_show() - включение отображения панели кармана | |__ Pocket_hide() - выключение отображения панели кармана | |__ Pocket_item_add() - добавление предмета в конец списка взятых предметов (со скрытием предмета на локации и показом иконки предмета) | |__ Pocket_item_delete() - удаление предмета из списка взятых предемтов (со скрытием иконки) | |__ Pocket_item_click() - обработчик нажатия на предмет из списка (при повторном нажатии выбор снимается) | |__ Pocket_item_select() - выбор предмета (иконка предмета заменяет указатель мыши) | |__ Pocket_item_unselect() - снятие выбора предмета (указатель мыши становится стандартным) | |__ Pocket_button_prev_click() - перемотка предметов в кармане | |__ Pocket_button_next_click() - перемотка предметов в кармане | |__ Pocket_item_hint_show() - включение отображения всплывающей при наведении подсказки | |__ Pocket_item_hint_hide() | |__ Organizer - памятка для текущей игры (id_text, type) | |__ Organizer_button_show() - включение отображения кнопки открытия памятки в модальном окне | |__ Organizer_button_hide() - выключение отображения кнопки открытия памятки в модальном окне | |__ Organizer_add() - добавление текстовой записи в конец списка памятки | |__ Organizer_delete() - удаление текстовой записи из списка памятки | |__ Organizer_type_set() - пометка записи как 1) запись-памятка 2) цель 3) выполненная цель (напротив каждой записи соответствующая иконка) | |__ Text - тексты (id, text) | |__ Text_get() - получение строки текста | |__ Music - музыка (id, musicfile) | |__ Music_change() - вызов смены музыки (секундное снижение громкости текущей композиции и смена на новую композицию) | |__ Music_play() - включение проигрывания музыкальной композиции (одновременно может играть только одна композиция) | |__ Music_stop() - выключение проигрывания музыкальной композиции | |__ Sound - звуки (id, soundfile) | |__ Sound_play() - включение проигрывания звука | |__ Sound_stop() - выключение проигрывания звука | |__ Savegame - сохраненная игра (бинарные или текстовые файлы с уникальными именами) | |__ Savegame_save() - сохранить игру | |__ Savegame_load() - загрузить игру | |__ Savegame_list_get() - получить список всех сохраненных игр | |__ Animation - алгоритмы анимации (id) | |__ Animation_play() - включение проигрывания алгоритма "ролика" анимации (указатель мыши становится в виде значка перемотки >>) | |__ Animation_stop() - выключение проигрывания алгоритма "ролика" анимации | |__ Animation_rewind() - перемотка к концу алгоритма "ролика" анимации | |__ Animation_background_play() - включение проигрывания алгоритма "фоновой" анимации (указатель мыши не меняется) | |__ Animation_background_stop() - выключение проигрывания алгоритма "фоновой" анимации | |__ Image - изображение (id, imagefile, id_location, x, y) | |__ Image_show() - включение отображения изображения | |__ Image_hide() - выключение отображения изображения | |__ Файлы изображений локаций (png, gif, jpg, bmp) |__ Файлы изображений фрагменты локаций (png, gif, jpg, bmp) |__ Файлы изображений предметов (png, gif, jpg, bmp) |__ Файлы изображений персонажей в разных ракурсах и движении (png, gif, jpg, bmp) |__ Файлы иконок и других изображений (png, gif, jpg, bmp) | |__ Иконка success | |__ Иконка denied | |__ Иконка information |__ Файлы музыки (mp3, wav) |__ Файлы звуков (mp3, wav) ГРАФИЧЕСКИЙ ИНТЕРФЕЙС | |__ Стартовое окно | |__ Отображение заставочного изображения на фоне | |__ Отображение графических кнопок (при наведении подсветка): Начать, Загрузить, Выйти | |__ Проигрывание музыкальной композиции (с повторением) | |__ Основное окно | |__ Отображение изображения локации на фоне | |__ Отображение изображений (фрагментов локации, персонажей, предметов) | |__ Проигрывание музыкальной композиции (с повторением) | |__ Отображение главной панели управления | |__ Отображение панели кармана предметов (рамка, контейнеры для предметов, иконки предметов, кнопки перемотки: Предыдущий, Следующий) | |__ Отображение графических кнопок (при наведении подсветка): Сохранить, Загрузить, Настройки, Выйти, О программе, Памятка | |__ Отображение счетчика набранных очков в игре (трехзначный) | |__ Отображение текстового индикатора времени суток (День, Ночь) | |__ Модальные окна | |__ Сохранение игры (список, поле имени, кнопки Сохранить, Отменить) | |__ Загрузка игры (список, кнопки Загрузить, Отменить) | |__ Настройки игры (громкость музыки, громкость звука, скорость анимации, кнопки Сохранить, Отменить) | |__ Памятка (список с иконками, кнопка Закрыть) | |__ О программе (версия программы, копирайты, лицензионное соглашение) | |__ При подведении указателя мыши к областям экрана, имеющим текстовое описание (hint), выводить всплывающую подсказку | |__ По нажатию правой кнопки мыши при выбранном предмете, выбор сбрасывается ПРИМЕЧАНИЕ: - в требованиях пока никак не отражено что графика должна поддерживать слои (задний, передний план) и исходя из этого отображаться - все файлы изображений должны быть недоступны для прямого просмотра из файловой системы (чтобы нельзя было увидеть все ролики не пройдя игру) Последний раз редактировалось smart_man, 13.08.2012 в 17:04. |