2010-07-19 3 views
2

Что было бы лучшим способом использовать отрицательные координаты в pygame?Отрицательные координаты в pygame

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

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

ответ

0

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

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

+0

То есть в основном то, что у меня есть. Я создал функции adj_up и adj_down. – filinep

+0

Это самый простой способ. –

0

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

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

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

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

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

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

1

Простое решение написать линейное отображение функция от координат мира до координат экрана пигмейка

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

и использовать его, когда drawi все объекты мира. Посмотрите here для получения полного примера.