Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > 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,699
Репутация: 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,699
Репутация: 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,699
Репутация: 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


01:14.


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

RusProfile.ru


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