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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2010, 19:35   #431
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
Выбирайте.
Дополню один маленький пунктик, собственного (уже отточенного) изготовления. На форму меню помещается один TImage, который накрывает всю форму, на нем отрисовывается TBitMap фона, На OnMove TImag`а навешена проверка координат типа:
Код:
If (X>5) And (X<45) And (Y>5) And (Y<45) Then Image1.Canvas.Draw(5,5,LightButton) Else ...
на остальные кнопки стоит аналогичная проверка. Если же ни одно условие не сработало, переходим по последнему Else и рисуем фон (который затрет предыдущие кнопки). На OnMouseDown навешены аналогичные проверки с той разницей, что еще выполнится процедура. Проверено - ни малейшего подрагивания или мерцания, даже если очень быстро дергать мышью.

Вот мой пример (на форум не влезло)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 10.02.2010 в 19:51.
Alex Cones вне форума Ответить с цитированием
Старый 10.02.2010, 21:39   #432
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Alex Cones, это пункт 4:
Цитата:
Сообщение от Beermonza
Области срабатывания хранятся в движке интерфейса, который отслеживает положение курсора мыши на главной форме
...но, с отличием, извиняюсь, в худшую сторону, ...почему? ...OnMove - вещь неблагодарная если в ней столько условий, ...движение мышью будет сопровождаться повышением нагрузки на CPU. Разумный вариант для OnMove - это только считывание координат в клиентской части формы:

Код:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  MouseX := X;
  MouseY := Y;
end;
MouseX, MouseY - координаты курсора на форме, их использовать нужно на OnMouseDown и OnMouseUp, там и будут условия на диапазоны.
Кроме того, если есть движок, то проект серьезный, а ему не с руки сходить на Canvas и TBitmap. Ежели хочется именно так, то почему бы и нет, ...но с головой применять методы, иначе складывается ложно представление о силе Delphi в игростроении без библиотек и движков.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 18.02.2010, 17:41   #433
Pyton
Пользователь
 
Аватар для Pyton
 
Регистрация: 18.12.2008
Сообщений: 47
По умолчанию

Вопрос наверняка уже был раньше: как сделать перемещение вражеских существ с течением времени? Для этого необходимо в таймере написать приращение скорости для существа?
Pyton вне форума Ответить с цитированием
Старый 18.02.2010, 17:48   #434
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
написать приращение скорости для существа?
Учите физику - это будет ускорение. Приращение к координатам - будет перемещение.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 18.02.2010, 23:10   #435
Pyton
Пользователь
 
Аватар для Pyton
 
Регистрация: 18.12.2008
Сообщений: 47
По умолчанию

Я имею ввиду, что существо движется от одной точки к другой, например, только по оси абсцисс. Оно движется с определенной скоростью. Для него надо создавать отдельный таймер, писать в главном таймере или еще как-то по-другому?
Pyton вне форума Ответить с цитированием
Старый 18.02.2010, 23:21   #436
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Все игровые события происходят в главном таймере. В частности, вы перебираете всех существ, по каким-то алгоритмам находите, куда каждое из них будет двигаться в этом ходу (скорость) и что будет делать. Потом снова их всех перебираете и, грубо говоря, прибавляете к координатам каждого его вновь вычисленную скорость. Также можно еще проводить всякие проверки на столкновение, взаимодействие с другими объектами и много что еще.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 19.02.2010, 00:14   #437
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Управление, прямо говоря, мобом осуществляется набором условий, по имеющемуся набору параметров в его типе, минимум таких как: текущие координаты, координаты перемещения, скорость движения, состояние.
Как ими пользоваться? ...разбираем. Вот стоит на карте моб. У него есть запись текущих координат, ...с позиционированием все понятно. Теперь его состояние, ...допустим он находится в ожидании на кого напасть, но вокруг никого нет (алгоритм поиска цели вокруг себя на некоторый радиус). Вот в один из тактов алгоритм бота под порядковым номером в списке "нащупал" на карте цель (допустим вас, ...определил по типу объекта), алгоритм поиска цели указывает координаты перемещения, т.е. куда должен топать моб, и задает скорость, в зависимости от типа моба. Проходя через общую для всех структуру перемещения, координатам моба начисляются смещения, равные скорости перемещения, и будут начисляться до той поры, пока эти текущие координаты не станут равны координатам перемещения, заданным в начале перемещения как точку на карте, ...в этот момент в алгоритме перемещения условия на смещения по осям становятся ложными, и начислений смещения больше не будет, ...следствие - моб стоит в заданной точке.
Далее, "алгоритм действия" фиксирует близость цели и запускает процедуру выполнения атаки.
Все просто. У вас будет порядок алгоритмов такой:

1) Алгоритм перемещения;
2) Алгоритм поиска цели;
3) Алгоритм действия;
...и так далее, с гибелью и пр. пр. пр. Все работает в цикле по списку объектов и с учетом типов объектов, ...куча условий, фильтрующих объекты.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 03.03.2010, 21:51   #438
Grenade
Пользователь
 
Аватар для Grenade
 
Регистрация: 03.03.2010
Сообщений: 38
По умолчанию

Вообще спасибо Вам огромное за такую тему!
Grenade вне форума Ответить с цитированием
Старый 07.03.2010, 01:13   #439
korand
Пользователь
 
Регистрация: 07.03.2010
Сообщений: 45
По умолчанию

очень полезная тема, правда длинная...

Последний раз редактировалось korand; 07.03.2010 в 01:19.
korand вне форума Ответить с цитированием
Старый 08.03.2010, 00:21   #440
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Обучение еще длиннее, это всего лишь маленькие уроки, советы.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Ответ


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

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

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


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