def __init__(self): pygame.init() self.window = pygame.display.set_mode((WIDTH, HEIGHT)) self.running = True victory_spritesheet = Spritesheet('sudoku_winner_spritesheet.png') border_sprites = Spritesheet('borders.png') VictoryAnimation.images = victory_spritesheet.imgsat( VictoryAnimation.img_rects, -1) self.border_images = border_sprites.imgsat(border_img_locs, -1) self.grid = [[0 for i in range(9)] for j in range(9)] self.grid_finished = [[0 for i in range(9)] for j in range(9)] # self.grid = test_board_2 # self.grid_finished = test_board_2_finished self.selected = None self.mouse_pos = None self.mouse_click = None self.finished = False self.cell_changed = False self.show_victory = False self.status = '' self.incorrect_cells = [] self.locked_cells = [] self.state = "playing" self.playing_buttons = [] self.menu_buttons = [] self.end_buttons = [] self.victory = VictoryAnimation(victory_pos) self.font = pygame.font.SysFont('arial', int(cell_size / 2)) self.load()
def main(): pygame.init() # set the display mode pygame.display.set_caption('Arkanoid') screen = pygame.display.set_mode(SCREENRECT.size) background = pygame.Surface(SCREENRECT.size).convert() # load images, assign to sprite classes spritesheet = Spritesheet('sudoku_spritesheet.png') border_sprites = Spritesheet('borders.png') victory_spritesheet = Spritesheet('sudoku_winner_spritesheet.png') # assign images to sprites Board.images = spritesheet.imgsat([(32, 0, 32, 32), (0, 32, 32, 32)]) Board.border_images = border_sprites.imgsat(Board.border_img_locs) Victory.images = victory_spritesheet.imgsat(Victory.img_rects) # create sprite groups cells = pygame.sprite.Group() all = pygame.sprite.RenderUpdates() # assign sprite groups Cell.containers = cells, all Victory.containers = all Button.containers = all # create the background board = Board(background, CELL_SIDE, BOARD_WIDTH, BORDER_HEIGHT) panel = Panel(board, background) new_game = NewGame(panel, 'New Game', 100, 50, (255, 0, 0), (0, 255, 0), (255, 255, 255)) nums_grid = NumsGrid(panel) # create sprites # victory = Victory(panel) # transfer bg screen.blit(background, (0, 0)) pygame.display.update() # keep track of time clock = pygame.time.Clock() # game loop while True: # get input for event in pygame.event.get(): if event.type == QUIT \ or (event.type == KEYDOWN and event.key == K_ESCAPE): return # clear sprites all.clear(screen, board.background) # update sprites all.update() # redraw sprites dirty = all.draw(screen) pygame.display.update(dirty) # maintain frame rate clock.tick(30)