Estoy tratando de hacer una diagonal fila de hexágonos, pero cuando intento dibujar sólo el primero funciona. Aquí está una captura de pantalla de la pygame ventana. No debe ser hexágonos en cada caja negra.
Aquí está el código:
import pygame
from pygame.locals import *
from sys import exit
pygame.init()
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height), 0, 32)
class Hex(pygame.sprite.Sprite):
def __init__(self, s_len, op):
super().__init__()
x, y = op
root3 = 1.73205080
self.color = (125,200,24)
self.op = op
self.s_len = s_len
self.points = [(x + (.5 * s_len), y),
(x + (1.5 * s_len), y),
(x + (2 * s_len), y + ((root3 / 2) * s_len)),
(x + (1.5 * s_len), y + (root3 * s_len)),
(x + (.5 * s_len), y + (root3 * s_len)),
(x, y + (root3 / 2) * s_len)]
self.image = pygame.Surface([2 * s_len, root3 * s_len])
self.image.fill((0,0,0))
pygame.draw.polygon(self.image, self.color, self.points)
self.rect = self.image.get_rect()
self.rect.topleft = (x, y)
hex_group = pygame.sprite.Group()
for i in range(7):
hex_group.add(Hex(50, (i * 75, i * 86)))
while True:
for event in pygame.event.get():
if event.type == QUIT:
exit()
screen.fill((255,255,255))
hex_group.draw(screen)
pygame.display.update()
Creo que el problema debe tener algo que ver con el auto.creación de la imagen en mi Hexagonal constructor de la clase, pero no tienen ni idea de cómo solucionarlo.