开发者

Negative coordinates in pygame

What 开发者_如何学Cwould be the best way to use negative coordinates in pygame?

At the moment I have a surface that is 1.5 times the original surface then everything that needs to be drawn is shifted up by a certain amount (to ensure the negative coordinates become positive) and drawn.

Is there an easier/alternate way of doing this?


A simple solution is to write a linear mapping function from world coordinates to pygame screen coordinates

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

and use it when drawing all world objects. Have a look here for a complete example.


There is no way to move the origin of a surface from 0,0.

Implement your own drawing class which transforms all the coordinates passed in into the space of the surface.


If it's similar to an RPG map situation, where you have world coordinates and screen coordinates: use a function that translates world to local, and vice versa.

But I wasn't sure I'd you were looking for Rect's properties?

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

If you want to use center coordinates to blit, vs top left being (0,0)

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

See also: Rect.move_ip()

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜