Можно ли преобразовать массивы сетки в координаты (x, y) в Pygame?

Не используя numpy.

Если я знаю размер своих элементов и размер сетки, можно ли узнать, какая координата находится в верхнем левом углу моей сетки?

Размер прямоугольника: 62x50 ШxВ (g_height, g_width)

Сетка: 12x12

"""self.row/column is triggered by mouse position at a click coordinate"""
def draw_grid(self):
    for self.row in range(12):
        for self.column in range(12):
            color = Game.BLUE
            if self.grid[self.row][self.column] == 1:
                color = Game.RED
                pygame.draw.rect(self.screen,color,\
                    [(self.margin+self.g_width)*self.column+self.margin,\
                        (self.margin+self.g_height)*self.row+self.margin, \
                            self.g_width,self.g_height])

Могу ли я вычислить точные координаты прямоугольников, которые я сделал и поместил на экран?

В конечном счете, я хочу заменить эти нарисованные прямоугольники изображением поверхности.


person lzc    schedule 12.11.2013    source источник


Ответы (1)


да грубо...

[(self.margin+self.g_width)*self.column+self.margin,\
                        (self.margin+self.g_height)*self.row+self.margin, \
                            self.g_width,self.g_height]

твой прямоугольник....

его можно переписать как [x,y,width,height]... просто сохраните их на потом в массиве 2d...

def draw_grid(self):
    my_rects = []
    for self.row in range(12):
        my_rects.append([])
        for self.column in range(12):
            color = Game.BLUE
            if self.grid[self.row][self.column] == 1:
                color = Game.RED
                x,y = (self.margin+self.g_width)*self.column+self.margin,\
                        (self.margin+self.g_height)*self.row+self.margin
                width,height = self.g_width,self.g_height
                my_rect = Rect(x,y,w,h)
                my_rects[-1].append(my_rect)
                pygame.draw.rect(self.screen,color,\
                    my_rect)
     print my_rects[0][0]
person Joran Beasley    schedule 12.11.2013
comment
Да, координаты x, y - это именно то, что мне нужно - person lzc; 13.11.2013