Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.
Внимание! Некоторое время письма не доходят до аккаунтов MAIL RU GROUP, не доходят на все почтовые ящики mail.ru, inbox.ru, bk.ru. Пишите им жалобы, чтобы быстрее восстановили получение писем, регистрируйтесь через яндекс почту и gmail, туда письма с активизацией доходят.

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

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

Ответ
 
Опции темы
Старый 08.12.2011, 21:14   #1
wolf_den
Пользователь
 
Регистрация: 28.10.2011
Сообщений: 14
Репутация: 10
По умолчанию DelphiX траектория полета мяча в волейболе

В общем делаю волейбол на DelphiX и никак не могу заставить летать мячик по нормальному, по кривой, по физическим законам... сейчас он двигается по прямым, вот код, который сейчас отвечает за движение
Код:

procedure TBall.Hit;    //движение мячика
begin
 x:=X+velx;
 y:=y+vely;

 if X>800 - Image.Width  then
 begin
   X:=800-image.Width;
   velx:=-velx;
 end
 else if X<0 then
 begin
  X:=0;
  Velx:=-velX;
 end;

  if y>600-Image.Height  then
 begin
   y:=600 -image.Height;
   vely:=-vely;
 end
 else if y<0 then
 begin
  y:=0;
  Vely:=-vely;
 end;
end;

единственное что нашел так это формулы из учебника физики:
x=x0+v0*cos(a)*t - изменение х, где а-угол столкновения
y=y0+v0*sin(a)*t-((g*t^2)/2) - изменение у
s=(v0^2)*sin^2(a/g) - максимальная дальность полета

помогите кто чем может...
Вложения
Тип файла: rar ИГРА.rar (1.14 Мб, 10 просмотров)
wolf_den вне форума   Ответить с цитированием
Старый 08.12.2011, 22:53   #2
Kostia
Профессионал
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Адрес: Томск
Сообщений: 1,693
Репутация: 615

icq: 426824418
По умолчанию

У мяча есть 3 параметра позиция, радиус и скорость. Новая позиция = Текущая + скорость * изменение времени. Новая скорость = Текущая - Ускорение свободного падения * изменение времени.
Мяч ударяется о круглую голову игрока, которая имеет позицию, радиус и скорость.
При ударении мяча о голову игрока, сначала нужно вытолкнуть мяч из головы(т.е. из-за дискретности времени мяч пересечет голову, а не коснется ее), выталкивание делается в направлении от позиции головы к позиции мяча, затем в этом же направлении отразить вектор скорости Новая скорость = нормализированный вектор направления * длину вектора скорости * коэффициент потери скорости + проекция вектора скорости игрока на вектор направления.
Уф, вроде ничего не напутал )

Последний раз редактировалось Kostia; 08.12.2011 в 23:00. Причина: проекция, а не отображение )))
Kostia вне форума   Ответить с цитированием
Старый 08.12.2011, 23:18   #3
wolf_den
Пользователь
 
Регистрация: 28.10.2011
Сообщений: 14
Репутация: 10
По умолчанию

Kostia, жестко))) а что ты за игру делал и на чем? не поделишься исходником, а то ну очень надо((
wolf_den вне форума   Ответить с цитированием
Старый 08.12.2011, 23:28   #4
Kostia
Профессионал
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Адрес: Томск
Сообщений: 1,693
Репутация: 615

icq: 426824418
По умолчанию

Delphi уже год не открывал, впрочем его у меня и нет )), а старые поделки остались.
Вложения
Тип файла: rar Примитив 2 - окружности.rar (180.0 Кб, 24 просмотров)
Kostia вне форума   Ответить с цитированием
Старый 08.12.2011, 23:47   #5
wolf_den
Пользователь
 
Регистрация: 28.10.2011
Сообщений: 14
Репутация: 10
По умолчанию

адская вещь)) а VectMath - это я так понимаю типа движок? как вообще движки подключаются и как с ними работать? а то для DelphiX вроде есть пара аркадных движков в сети, но что с ними делать не совсем понятно
wolf_den вне форума   Ответить с цитированием
Старый 09.12.2011, 06:56   #6
Kostia
Профессионал
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Адрес: Томск
Сообщений: 1,693
Репутация: 615

icq: 426824418
По умолчанию

VectMath это всего лишь библиотека для работы с векторами. Векторное, скалярное произведения, вычитание, сложение векторов, умножение на скаляр, нормализация, длинна вектора...
Kostia вне форума   Ответить с цитированием
Старый 21.05.2018, 17:56   #7
doneto
 
Регистрация: 30.08.2009
Сообщений: 7
Репутация: 10
По умолчанию

спасибо. будем пробовать...
doneto вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Траектория Leshiy1 Паскаль 0 15.05.2011 21:32
Траектория полета Medik07 C# (си шарп) 1 17.02.2011 23:53
Траектория полета снаряда... iMax` Общие вопросы C/C++ 7 29.12.2010 08:12
Траектория полёта deel Помощь студентам 15 01.12.2010 11:11
Расчет полета ракеты reydor Помощь студентам 0 05.10.2010 15:46


20:34.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru