Отрицательные координаты в пигаме - PullRequest
2 голосов
/ 19 июля 2010

Как лучше всего использовать отрицательные координаты в пигме?

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

Есть ли более простой / альтернативный способ сделать это?

Ответы [ 3 ]

1 голос
/ 12 февраля 2013

Простое решение - написать функцию линейного отображения из мировых координат в координаты экрана Pygame

def coord(x,y):
    "Convert world coordinates to pixel coordinates."
    return 320+170*x, 400-170*y

и используйте его при рисовании всех объектов мира. Посмотрите здесь для полного примера.

0 голосов
/ 21 апреля 2011

Если это похоже на ситуацию на карте RPG, где у вас есть мировые координаты и экранные координаты: используйте функцию, которая переводит мир в локальный, и наоборот.

Но я не был уверен, что выискал свойства Rect?

rect.bottomright = (width, height) # bottom right at window corner

Если вы хотите использовать координаты центра для блита, то есть в верхнем левом углу (0,0)

ship.rect.center = (20, 30) # don't need to translate by adding w/2 to topleft

См. также: Rect.move_ip ()

0 голосов
/ 19 июля 2010

Нет способа переместить начало поверхности от 0,0.

Реализуйте свой собственный класс рисования, который преобразует все координаты, переданные в пространство поверхности.

...