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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2012, 16:31   #1
demigod82
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 35
По умолчанию Делаю Пинг понг.

Я делаю классический Pong на делфи. И у меня возник вопрос: Как разнообразить физику? Я пока что сделал только отражение согласно углу попадания, но получается монотонно, и каждый раз один и тот же расклад.
demigod82 вне форума Ответить с цитированием
Старый 26.02.2012, 18:05   #2
RomiKon
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 143
По умолчанию

Можно при столкновении ракетки шарика определять направление и скорость движния ракетки и взависимости от этого менять угол отражения(или даже закручивать)
RomiKon вне форума Ответить с цитированием
Старый 26.02.2012, 21:21   #3
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

В зависимости от силы удара ракеткой шарик движется с разным ускорением (если не реализовано).
Добавить вращения в шар.
dampirik вне форума Ответить с цитированием
Старый 27.02.2012, 12:14   #4
RomiKon
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 143
По умолчанию

Эм в пинг-понге не понятия силы удара. Ракетка движется только по одной оси
RomiKon вне форума Ответить с цитированием
Старый 27.02.2012, 15:21   #5
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

ну можете добавить силу ветра, меняющуюся со временем
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Старый 27.02.2012, 15:50   #6
demigod82
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 35
По умолчанию

Я попытался сделать функцию, которая сможет создавать вектор любого угла. Но эта функция должна работать с вещественными числами, которые в свою очередь несовместимы с координатами. Приходится округлять, и получается что возможные векторы, это (1,1), (0,1) и т.д. Может у вас есть предположения, по реализации этой функции?
Код:
procedure TForm1.Vector(tx, ty: real);// Функция считающая вектор
var
 Lenth: real;
begin
  PlayerMoveX:= tx;//Обозначение векторов
  PlayerMoveY:= ty;
  Lenth:= sqrt((PlayerMoveX * PlayerMoveX) + (PlayerMoveY * PlayerMoveY));//Вычисляем длину

  PlayerMoveX:= PlayerMoveX / Lenth;// Нормализуем вектор
  PlayerMoveY:= PlayerMoveY / Lenth;
end;

end.

procedure TForm1.PlayerMove;//Передвижение
begin
 cx:= cx + round(playerMoveX*Speed);//Вот тут приходится округлять, что сильно ограничивает движение.
 cy:= cy + round(playerMoveY*Speed);
end;
demigod82 вне форума Ответить с цитированием
Старый 27.02.2012, 17:57   #7
Warn
Форумчанин
 
Аватар для Warn
 
Регистрация: 03.11.2011
Сообщений: 230
По умолчанию

как вариант, считай все (cx, cy) во float'ах, а в процедуре прорисовки приводи все к integer.
Warn вне форума Ответить с цитированием
Старый 28.02.2012, 13:35   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

при движении предмета координаты рассчитываются не от последней точки, а от некой начальной точки (обычно это точка последнего изменения траектории(точка столкновения/удара). В этом случае погрешность расчета (округления) не будет накапливаться.

posX:=round(playstart_X* speed*count);
count:=count+1;
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 02.03.2012, 17:22   #9
demigod82
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 35
По умолчанию

А какую роль здесь играет count? И как применять этот код, можно пожайлуста поподробнее?

Последний раз редактировалось demigod82; 02.03.2012 в 17:27.
demigod82 вне форума Ответить с цитированием
Старый 10.03.2012, 22:43   #10
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
А какую роль здесь играет count?
Цитата:
координаты рассчитываются не от последней точки, а от некой начальной точки
count число шагов (тактов движения) от выбранной точки.
При смене точки отсчета
Цитата:
(обычно это точка последнего изменения траектории(точка столкновения/удара)
не забываем обнулять count.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 10.03.2012 в 22:45.
evg_m на форуме Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пин Понг Wollfs Общие вопросы C/C++ 2 18.04.2011 20:33
Пинг понг (паскаль) Katmai Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 29.10.2010 22:59
Пинг-понг Ckomoroh Gamedev - cоздание игр: Unity, OpenGL, DirectX 9 27.08.2010 18:33
Змейка, тетрис, пинг-понг....и т.д. А где найти исходники? Манжосов Денис :) Gamedev - cоздание игр: Unity, OpenGL, DirectX 9 05.07.2010 14:37