iPhone Pong Расширенный Угол отклонения - PullRequest
0 голосов
/ 24 апреля 2010

Сейчас я занимаюсь разработкой простой игры в понг для iPhone. В настоящее время используя CGRectIntersectsRect для обнаружения столкновений, а также для отклонения мяча при его падении, я просто умножаю скорость мяча на -1 (следовательно, меняя направление мяча).

То, что я пытаюсь сделать, это сделать так, чтобы при попадании мяча в лопатку он проверял, насколько далеко находится шар от центра лопатки, и увеличивает угол отклонения, чем дальше шарик от центр весла. (Например, в этом случае мяч будет отклоняться назад на 90 градусов независимо от того, откуда он взялся, до тех пор, пока он не достигнет центра весла)

Как мне это сделать?

Любая помощь будет принята с благодарностью.

Спасибо.

1 Ответ

0 голосов
/ 24 апреля 2010

То, что вы нам дали, это контрольные точки (центр и край). Нам нужна контрольная линия для измерения нового угла. Кроме того, то, что вы говорите, не соответствует и, следовательно, не имеет смысла.

Я предполагаю, что то, что вы спрашиваете, - это способ рассчитать исходящий угол так, чтобы он зависел только от того, где он коснулся лопасти. Если он попадет в центр лопасти, то независимо от угла наклона он отскочит под углом 90 градусов к лопасти. Если он достигнет края лопасти, то независимо от угла падения он отскочит под углом 45 градусов к лопасти.

Если это так, то следующее должно сделать это (это не единственный способ).

Предположение: форма весла представляет собой прямоугольник.

  • Пусть L - длина весла.
  • Пусть K постоянная такая, что L / (2 * K) = 1 / sqrt (2).
  • Пусть D - расстояние от центра весла (может быть + или -).

тета = пи / 2 - асин (Д / К);

Это должно дать вам угол относительно весла.

Надеюсь, это поможет.

...