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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2010, 16:09   #1
Virus191288
Пользователь
 
Регистрация: 06.06.2009
Сообщений: 59
По умолчанию DelphiX не сталкивание объектов

в общем как узнать программно что объект в данный момент не с чем не столкнулся?
Virus191288 вне форума Ответить с цитированием
Старый 03.02.2010, 16:25   #2
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от Virus191288 Посмотреть сообщение
в общем как узнать программно что объект в данный момент не с чем не столкнулся?
Попросить его написать заявление в трех экземплярах.

Зачем? ...нет событий столкновений - объект ни с чем не сталкивается. Программиста интересует обратное условие сабжу. В любом случае из структуры If..then..else можно вытащить и то и то.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его

Последний раз редактировалось Beermonza; 03.02.2010 в 16:27.
Beermonza вне форума Ответить с цитированием
Старый 03.02.2010, 16:28   #3
Virus191288
Пользователь
 
Регистрация: 06.06.2009
Сообщений: 59
По умолчанию

Beermonza и как это сделать? в DoCollision не получится.... а в DoMove незнаю как это реализовать(
Virus191288 вне форума Ответить с цитированием
Старый 03.02.2010, 16:31   #4
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Кидай часть кода, посмотрим.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 03.02.2010, 16:43   #5
Virus191288
Пользователь
 
Регистрация: 06.06.2009
Сообщений: 59
По умолчанию

Код:
procedure TPlayer.DoCollision(Sprite: Tsprite; var Done: Boolean);
begin
  if Sprite is TEarth then begin
    DY:=0;

  end;
end;

procedure TPlayer.DoMove(MoveCount: integer);
begin
  inherited;
  x:=x+dx;
  y:=y+DY;
  if x<0 then dx:=-dx;
  if x>1000 then dx:=-dx;

Collision;
end;
тут происходит так если вначале объект падает... как только сталкивается с другим объектом он перестает падать..... но как сделать так чтобы он продолжил падать если объект удален???
Virus191288 вне форума Ответить с цитированием
Старый 03.02.2010, 17:23   #6
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Во всех процедурах идет подключение Collision, ...из примера с гибелью можно посмотреть, что после запуска Dead (уничтожение спрайтов в банке), процедура на столкновение уже не должна выполняться для всех спрайтов. Попробуй так:

Код:
procedure TPlayer.DoCollision(Sprite: Tsprite; var Done: Boolean);
begin
  if Sprite is TEarth then DY:=0;
  Collision;
end;
...я не уверен, дело было давно.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 03.02.2010, 17:32   #7
Virus191288
Пользователь
 
Регистрация: 06.06.2009
Сообщений: 59
По умолчанию

Beermonza так все зависло и вылетела ошибка....

Collision; у меня стоит в движении объекта TPlayer тут нужно как-то определить что объекты не соприкоснулись....

Последний раз редактировалось Virus191288; 03.02.2010 в 17:38.
Virus191288 вне форума Ответить с цитированием
Старый 03.02.2010, 17:35   #8
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Значит я неверно направил, ...могу по исходнику посмотреть, ...если ничего секретного в нем нет.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 03.02.2010, 17:53   #9
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

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

Гром, это DelphiX!!! там все скрыто, тормозит себе от посторонних глаз, разрабатывает план ядерной атаки.
Вот пример:
Вложения
Тип файла: rar part1.rar (20.1 Кб, 18 просмотров)
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Учебники DelphiX Novice Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 08.12.2011 20:56
delphiX и куча одинаковых объектов Virus191288 Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 23.01.2010 21:04
DelphiX Nazar1994 Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 27.10.2009 18:05
DelphiX program123 Gamedev - cоздание игр: Unity, OpenGL, DirectX 7 13.03.2009 15:26