因此,我随机生成一个“世界”,并使用pygame对其进行绘制。在我决定在已经绘制的内容之上添加一些内容之前,该部分效果很好。
代码如下。每件事都不重要,但是DISPLAY是我正在处理的表面,y.colour是3号元组,y.coord是(x,y)元组
for x in W_Map:
for y in x:
DISPLAY.fill(y.colour, pygame.Rect(y.coord[0]-tile_size,
y.coord[1]-tile_size,
y.coord[0]+tile_size,
y.coord[1]+tile_size))
DISPLAY.fill(lime, pygame.Rect(300,300,310,310))
根据上面的游戏,这应该创建一个以305x305为中心的10x10正方形的石灰。但是,结果如下图所示:
如您所见,代码的第一部分完美地绘制了地形,但是当在已经绘制的内容上创建石灰方块时,它会变得非常疯狂。整个功能是:
pygame.init()
DISPLAY = pygame.display.set_mode(
(shape[0]*2*tile_size, shape[1]*2*tile_size))
DISPLAY.fill((0,0,0))
#Make and draw the Rects
for x in W_Map:
for y in x:
DISPLAY.fill(y.colour, pygame.Rect(y.coord[0]-tile_size,
y.coord[1]-tile_size,
y.coord[0]+tile_size,
y.coord[1]+tile_size))
DISPLAY.fill(lime, pygame.Rect(300,300,310,310))
答案 0 :(得分:2)
Pygame的Rect带有四个参数:x,y,宽度和高度,其中x和y相对于视口的左上角。您的石灰矩形是使用 with cte as (
select
*,
ROW_NUMBER() over (order by CITY) as nr
from SAMPLE2
)
update SAMPLE s
join cte c
on s.ID = c.nr
set s.NAME = c.NAME
,s.AGE = c.AGE
,s.SALARY = c.SALARY
,s.CITY = c.CITY;
创建的,表示宽度和高度为310像素,位置为pygame.Rect(300,300,310,310)
。
要创建以(300, 300)
为中心的10x10矩形,您需要使用(305, 305)
。您还可以创建一个辅助函数,将尺寸和中心点转换为必要的矩形参数:
pygame.Rect(300, 300, 10, 10)
然后,您可以像下面这样使用此辅助功能:
def center_rect(x, y, width, height):
return pygame.Rect(x - width / 2, y - height / 2, width, height)