Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2009, 21:21   #231
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Все именно так как и описал выше, ...ситуация один в один. Позиция в массиве - это не самый главный показатель присутствия на карте объекта. Это привязка к модели, модель - штука не визуальная, а вот смещение - это основной показатель, где графически расположен объект. Разбираем рисунки. Оба объекта одновременно идут навстречу друг к другу. Как известно, обработка объектов производится в цикле по очереди. Первым ячейку замет тот объект, что в списке объектов записан первее, ...сразу он получит координаты этой ячейки, но отрицательное смещение равное половине размера реальной клетки карты. Визуально он будет на пол пути до центра клетки, но по списку в этот такт обрабатывается следующий объект. В момент, когда смещение позволяет выполнить переход на клетку выше, условие видит, что клетка уже занята. В этот момент нужно останавливать движение нижнего объекта. В результате, верхний объект займет пустую ячейку массива, а нижний в массиве останется на том же месте, но графически по смещениям они встретятся на середине и остановятся.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 11.03.2009, 14:35   #232
Maxadal
 
Регистрация: 08.03.2009
Сообщений: 7
По умолчанию

Beermonza, это теперь понятно... спасибо обьяснил на пальцах))... а если предположить что к примеру верхний обьект идёт слева или справа а нижний двигаеться так же... ведь когда они начнут двигаться в одну и ту же клетку то получиться что они будут "наезжать" друг на друга углами(графически)??? ... если это так то что делать в такой ситуации???
Maxadal вне форума Ответить с цитированием
Старый 11.03.2009, 14:58   #233
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Maxadal, обрати внимание, ...я в предыдущем посте употребил фразу "...условие видит, что клетка уже занята." - это система "радиуса обзора". Т.е. обработка каждого объекта включает в себя проверку соседних клеток и смещений объектов, что в них находятся. Это часть системы поиска пути. Частный случай, когда "верхний объект идёт слева или справа, а нижний двигается так же", как ты предположил, первый должен остановиться, если графическое смещение второго уже не позволяет первому пройти. Если пройти еще можно, то первый будет идти, а второй "наткнувшись" на недопустимое смещение первого, остановится, будет ждать когда путь освободится, или начнет обходить, ...но это уже к полноценной системе "поиска пути" относится. StarCraft припоминаешь? ...как там танк может проехать между двумя строениями людей, наехав гусеницами на спрайт строения ...недочет небольшой, ...да кому это вообще интересно ковырять, игра-то хит!
А что за стратегия, вид сверху, или изометрия?
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 11.03.2009, 15:09   #234
Maxadal
 
Регистрация: 08.03.2009
Сообщений: 7
По умолчанию

Я ещё на "измене"... ))) ... охота конечно изметрию... но с другой с тороны стоит попробовать что полегче... первый раз игру пишу до этого с графикой мало работал... хочу курсовой себе на такую тему попробовать написать ... теперь вот сижу думаю, что использовать DirectX или обойтись стандартными возможностями... спасибо за помощь...
Maxadal вне форума Ответить с цитированием
Старый 14.03.2009, 18:41   #235
Алекс Ялта
Пользователь
 
Аватар для Алекс Ялта
 
Регистрация: 27.01.2009
Сообщений: 97
По умолчанию за что функция отвечает?

Учусь использовать canvas по урокам, которые предоставлены в этой теме. В посте № 105 приведен пример игры, в которой шарик плавно перемещается по карте из клеток, созданной из массива. Разбираю код. Всё ясно кроме назначения этой функции:
Код:
function keypressed(key: byte): boolean;
var
  keys: TKeyboardState;
begin
  result:=false;
  GetKeyboardState(keys);
  if(keys[key]=128)or(keys[key]=129)then result:=true;
end;
что за кнопки под номерами 128 и 129? "if(keys[key]=128)or(keys[key]=129) then result:=true;"
Алекс Ялта вне форума Ответить с цитированием
Старый 14.03.2009, 20:27   #236
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

128 и 129 - это код не клавиши, а что клавиша с кодом key нажата, 128 - клавиша нажата четный раз, 129 - нечетный раз, оба значения - "факт, клавиша нажата". Также для не нажатой клавиши значение 0 и 1.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 15.03.2009, 14:31   #237
Алекс Ялта
Пользователь
 
Аватар для Алекс Ялта
 
Регистрация: 27.01.2009
Сообщений: 97
По умолчанию

Теперь всё стало ясно. Спасибо
Алекс Ялта вне форума Ответить с цитированием
Старый 17.03.2009, 09:30   #238
Maxadal
 
Регистрация: 08.03.2009
Сообщений: 7
По умолчанию

Кто знает как можно вывести часть спрайта в DirectX без использования directdraw ???...
Maxadal вне форума Ответить с цитированием
Старый 17.03.2009, 11:30   #239
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

Maxadal, к сожалению никак. Но если сильно нужно, то можно программно разделить одну большую текстуру на несколько маленьких или заранее раздробить на несколько файлов.(если Direct3D имелся ввиду)
Kostia вне форума Ответить с цитированием
Старый 17.03.2009, 11:40   #240
Maxadal
 
Регистрация: 08.03.2009
Сообщений: 7
По умолчанию

Да я имел ввиду Direct3D... просто я незнаю как мне сделать прокрутку игровай карты если использовать DirectX ... и чтобы можно было невыводить часть спрайта... я просто незнаю как тогда организовать интерфейс меню в игре??? и вывод карты с прокруткой...
Maxadal вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хорошие уроки Render Общие вопросы Delphi 9 15.09.2012 07:13
Акцесс вопросы новичков Yaga Помощь студентам 4 02.06.2008 00:16
Учебники для новичков в програмировании Рар Общие вопросы Delphi 6 08.01.2007 08:07