Анимационный пигментный спрайт по эллиптическому пути - PullRequest
4 голосов
/ 15 мая 2010

Это pygame 1.9 на python 2.6 ..

Вот скриншот того, что в настоящее время рисуется в моей "игре", чтобы дать некоторый контекст. Здесь - код.

Предполагается, что это луна, вращающаяся вокруг Земли (я не пытаюсь создать реальную симуляцию или что-то в этом роде, я просто использую настройку, чтобы поиграть и изучить пигмент). Это 2 круга, а луны эллиптической орбиты вокруг Земли. Моя последняя игра - заставить Луну следовать по своей орбите вокруг Земли, но позже я хочу использовать элементы управления клавиатурой, чтобы настроить форму орбиты Луны.

Мне действительно нужна помощь в выяснении, как заставить луну следовать по пути, я, вероятно, мог бы выяснить все остальное.

1 Ответ

5 голосов
/ 15 мая 2010

Ну вот как вы генерируете точки вдоль эллипса:

for degree in range(360):
    x = cos(degree * 2 * pi / 360) * radius * xToYratio
    y = sin(degree * 2 * pi / 360) * radius

(x,y) будет следовать за эллипсом с центром в (0,0), где радиус у равен radius, а радиус х равен xToYratio. В вашем случае вы, вероятно, хотите, чтобы degree был как-то связан с течением времени.

РЕДАКТИРОВАТЬ: вы также можете сделать это:

for degree in range(360):
    x = cos(degree * 2 * pi / 360) * xRadius
    y = sin(degree * 2 * pi / 360) * yRadius

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...