![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#591 | |
Пользователь
Регистрация: 08.03.2011
Сообщений: 91
|
![]() Цитата:
мне надо нарисовать буфер большого размера чем экран и передвигать его, с право и снизу картинка нормально двигается, а вот сверху и слева их будто там и нет,ммм как объяснить то Бермоа мне как то предлагал для оптимизации не отрисовывать всю карту а отрисовывать одну линию которая крайняя, если он помнит, а вот у меня так не получилось
Всё будет так, как должно было быть, даже, если будет наоборот.
|
|
![]() |
![]() |
![]() |
#592 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Скрин работы покажи.
"Бермоа" - такого пользователя не существует.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#594 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Проект освещается в соседней теме "Как Вы относитесь к созданию игр на Delphi?".
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#596 |
Новичок
Джуниор
Регистрация: 10.10.2011
Сообщений: 1
|
![]()
execom, можешь помочь с игрой Lines? А то есть вопросы. Как можно реализовать эту игру не через волновик, а с помощью алгоритма а*?
|
![]() |
![]() |
![]() |
#597 |
Пользователь
Регистрация: 15.08.2010
Сообщений: 24
|
![]()
Решил поднять эту тему новым вопросом.
Допустим, мы пишем аркаду, RPG или квест. Как правильно реализовать общение с NPC? Как лучше хранить тонны диалогов? Разумеется, диалоги в exe хранить не будем, по моему мнению, это просто глумление над игрой. Да и кто знает? Может, в игре будет предусмотрен редактор карт и будет дана возможность игроку самостоятельно редактировать и добавлять новые диалоги. Вот мои идеи: Условно разделить всех NPC на "торговцев" и "собеседников" (я рассматриваю случай написания RPG). 1) Если игрок подходит и начинает общение с "торговцем", то тут все предельно ясно: выводим окно его товаров, окно инвентаря игрока. Обрабатываем процедуры покупки/продажи. 2) Игрок начинает разговор с "собеседником". Предварительно для каждого NPC данного типа заведена папка с его условным номером, в которой содержится некоторое количество текстовых файлов. В момент обращения героя к боту проверяем: если встретились впервые - вывести реплики приветствия; если можно взять квест - дать условия задания; если уже квест сдается - дать награду и т.д. То есть состояние NPC делится на фазы: -приветствие (Приветствую, путник!) -предложение квеста (Не желаешь ль убить местного некроманта?) --реплика на согласие (Отлично! Вот и иди.) --реплика на отказ (Не хочешь - как хочешь.) -напоминание о квесте (Как? Ты еще не убил некроманта?) -выдача награды (Спасибо, теперь в этих землях будет мир и покой! Вот тебе этот ржавый меч и монетка.) -пустое сообщение (Еще раз спасибо за помощь) Во время выполнения квеста меняем фазы, берем соответствующие реплики, даем соответствующие награды. Имеет ли такой способ право на существование или очень уж получается много лишнего кода? Буду рад выслушать любую критику, предлагайте свои идеи. |
![]() |
![]() |
![]() |
#598 |
Пользователь
Регистрация: 21.09.2011
Сообщений: 35
|
![]()
Если делать более-менее нормальный проект то думаю что хранить данные в текстовых файлах как-то не очень. Я щас занимаюсь разработкой игры и попутно редактора этой игры (как например в Морровинде/Обливионе). Буквально только что доделал систему диалогов. Создал 2 структуры: структура с темами и структура с ответами. Каждой теме присвоены номера по которым к ним обращаются ответы. Данные храню в битовом формате. Как такой способ?
|
![]() |
![]() |
![]() |
#599 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]() Цитата:
Сперва нужно забыть про тонны текста и про конкретные объекты, поскольку в основе любого движка лежит логическая универсальная структура, обрабатывающая некий простейший триггер. Триггер - это логический набор последовательных команд, которые выполняются в строгом соответствии с логическими условиями, составляющими этот триггер. Триггером какого-либо объекта игры может быть обычный текстовый файл, содержащий в себе команды, условия и результаты выполнения условий в определенной структуре, которую вы должны продумать и создать самостоятельно. Допустим, некоторый объект игры - кузнец, имеет квест для пользователя, чтобы он принес определенное количества редкого сырья для нужд изготовления первоклассного оружия. В триггере первым делом в шапке закодирован тип взаимодействия: 1 - квест, 2 - диалог. Далее идет тип объекта при взаимодействии с которым триггер запускается: 1 - пользователь (могут быть триггеры действия, направленные к другим объектам). Далее идет временной индекс: 1 - безвременной, 2 - временной, т.е. может быть так, что если квест не выполнен по прошествии некоторого времени, то он "сбрасывается". Следом идет код времени квеста (если 1 - безвременной, то этот пункт пропускается). Далее идут статусы для объектов взаимодействия, ...это может быть фильтр параметров, какие именно характеристики должны быть у объекта, например, уровень 25, и так далее по всем возможным характеристикам. Т.е. если я - пользователь с уровнем 12, то квест сбросится сразу же, при чтении шапки триггера, ...если мой уровень 25 и более, то пройдет далее на выполнение. Это минимум, что должно быть в шапке любого триггера, далее по своему усмотрению вы должны дополнять ее всеми необходимыми статусами и индексами, создавая все более и более универсальную структуру. Далее после шапки в триггере идет последовательность команд/условий. Вы должны создать кодировку и метод определения и считывания их по частям. Например: 1 3 1 234 5 6 11 30 4 "Спасибо." 7 3 1 Расшифровка: 1 - команда 3 - условие 1 - разовое 234 - код предмета "Железной руда" 5 - количество 6 - предмет в инвентарь персонажу 11 - код монет 30 - количество 4 - дополнительное действие "Сказать" "Спасибо." - текст сообщения 7 - код прибавки опыта 3 - количество 1 - набор кнопок "только Закрыть" Теперь все это литературным языком: если персонаж вручит обладателю триггера 5 кусков железной руды, то обладатель триггера вручит объекту взаимодействия 30 монет, скажет "Спасибо.", объект взаимодействия получит +3 опыта, ...в форме диалога будет одна кнопка "Закрыть". Это очень примитивный вариант (одно из направлений - "Условие"), который должен быть в реале в 100 рез сложнее. Нужна так же структура загрузки и выгрузки триггеров в процессе работы программы. Это массив записей, он проверяется каждый такт для каждого объекта (если у объекта стоит флаг "выполнять триггеры") и через структуру Case, очень ветвистую и сложную в понимании происходит обработка команд триггера. Теперь учтите еще момент, когда у одного объекта несколько триггеров. Сложно? ![]()
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|
![]() |
![]() |
![]() |
#600 | |
Регистрация: 12.01.2012
Сообщений: 7
|
![]()
Вот разбираюсь со второй страницей:
Цитата:
A journey of a thousand miles begins with a single step
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хорошие уроки | Render | Общие вопросы Delphi | 9 | 15.09.2012 07:13 |
Акцесс вопросы новичков | Yaga | Помощь студентам | 4 | 02.06.2008 00:16 |
Учебники для новичков в програмировании | Рар | Общие вопросы Delphi | 6 | 08.01.2007 08:07 |