|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.06.2011, 23:08 | #41 | ||
Пользователь
Регистрация: 08.03.2011
Сообщений: 91
|
Цитата:
Цитата:
PS Огромное спасибо за ответы в теме
Всё будет так, как должно было быть, даже, если будет наоборот.
|
||
08.06.2011, 21:51 | #42 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Читай в теме "Как Вы относитесь к созданию игр на Delphi?" с сообщения #442 и далее.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
13.01.2012, 12:32 | #43 |
Пользователь
Регистрация: 08.03.2011
Сообщений: 91
|
Решил продолжить делать свою игру. Посмотрел на код и ужаснулся, от того что там где можно было использовать функцию или процедуру, использовался разбор каждого возможно варианта. Ну посидел подумал, переделать все, что смог, но с одним участком кода не могу разобраться, есть 4 процедуры, по сути делающие одни и те же вещи, только для разных переменных, и возник вопрос, как сделать так, что бы эти 4 функции превратить в одну. Посоветуйте что-нибудь.
Код:
Суть кода в том, персонаж двигается в направлении, которое ему задали или выравнивается,что бы была возможность пробежать дальше, наверное, надо переделать эту функцию совсемь, но вопрос как сделать процедуры, которая, будет менять разные глобальные переменные
Всё будет так, как должно было быть, даже, если будет наоборот.
Последний раз редактировалось Odinok; 13.01.2012 в 12:38. |
13.01.2012, 18:06 | #44 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Цитата:
Код:
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|
13.01.2012, 18:25 | #45 | |
Пользователь
Регистрация: 08.03.2011
Сообщений: 91
|
Цитата:
Код:
А и вы говорили, про более быстрый таймер, это как?
Всё будет так, как должно было быть, даже, если будет наоборот.
|
|
13.01.2012, 20:43 | #46 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Да, будет четыре условия. Процедура PlayerMove будет находиться в теле таймера. Она только размещает объекты в буфере. Обработка движения отправляется под контроль формы в событие OnKeyDown. В ней, в зависимости от нажатой клавиши и положения объекта, в Cell[].Move отслеживаются свободные клетки. Если при нажатой клавише "вниз" Cell[Player.X, Player.Y + 1].Move окажется проходной, то SpeedY станет положительной единицей заданной скорости. То же самое по всем кнопкам, со своими сдвигами.
В таймере, после процедуры PlayerMove, переменные скорости SpeedX и SpeedY обнуляются. В следующий такт, если клавиши по прежнему зажаты, PlayerMove снова подвинет объекты. Если к началу выполнения процедуры PlayerMove клавиши так и не были нажаты, то объекты будут стоять на местах, поскольку SpeedX и SpeedY по прежнему хранят нулевую скорость для осей координат. Это конечный цикл в теле которого выполняется сложный код и подсчитывается процессорное время выполнения кода в последней строке. Все проходы сохраняются в массив. Затем, после окончания цикла, данные выводятся списком, так, что можно просмотреть время выполнения кода в каждом такте. Таким образом выбирается интервал для стандартного таймера. У меня код выполняется за 11-14 мс, вывод в форму за 16 мс, итого: 30 мс, ...интервал таймера TTimer я поставил 31 мс. Интервал 32 мс уже не котируется в TTimer, он выходит за замки двух оттяжек времени по 15-16 мс, и равен тем же 46 мс. Т.е. ты уже наверное понимаешь, что TTimer считает оттяжками по 15-16 мс, и нет смысла ставить разнообразные числа интервала, все равно таймер реагировать на них не будет. Учить создавать быстрый код и тебе 30 кадров в секунду хватить на всю жизнь, пока ты работаешь с 2D.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
На Delphi 7 сделать игру кто хочет стать миллионером в delphi 7 | 666dart666 | Помощь студентам | 11 | 04.11.2010 17:57 |
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism | savva-paladin | Софт | 18 | 02.10.2010 20:24 |
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? | redred | Общие вопросы Delphi | 10 | 11.12.2007 10:43 |
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? | dagarik | БД в Delphi | 7 | 22.10.2007 17:54 |
не StringGrid1.Cells[1,1]:='Delphi'; а вот так SG1.C[1,1]:='Delphi' | Nemesisking | Компоненты Delphi | 7 | 08.09.2007 03:27 |