Question

I have made a program with python and pygame and bundled it into a .app file using py2app. It just doesn't open up properly when i click the icon, it doesn't appear on the screen until i click the icon on the dock, by then some of the code has already ran and it ruins the point of the actual program.

I also can't seem to change the icon from the normal icon to the icon that i made, i have put it into the folder, replacing the default one. The icon doesn't appear on the dock, the pygame snake does.

Finally will the .app file work on any mac?

BTW, this is just a program for some fun Code:

import random, pygame, time, sys

time.sleep(2)
colour_1 = (0,255,255)
colour_2 = (0,255,0)
colour_3 = (255,255,0)
colour_4 = (255,0,0)
colour_5 = (0,0,255)


black = (0,0,0)
white = (255,255,255)
h = 500
w = 500

pygame.init()

FPS = 30
fpsClock = pygame.time.Clock()
screen = pygame.display.set_mode((w,h))

pygame.display.set_caption("You just lost the game")
alpha = 255

shape = screen.convert_alpha()

stimulus = pygame.Rect(0,0,500,500)
def the_game():
    #Makes the text "the game" and the text "you just lost it" fade into the screen
    global alpha
    alpha = alpha - 5
    ##############
    Font = pygame.font.SysFont("monospace",40,True,False)
    Text = Font.render("The Game",1,white)
    screen.blit(Text,(140,125))
    pygame.draw.rect(shape,(0,0,0,alpha),stimulus)
    screen.blit(shape,(0,0))
    pygame.display.update(stimulus)
    fpsClock.tick(FPS)



def lost_it():
    #Writes "the game" and "you just lost it" onto the screen
    Font = pygame.font.SysFont("monospace",40,True,False)
    Text = Font.render("The Game",1,(white))
    text = Font.render("YOU JUST LOST IT",1,(white))
    screen.blit(text,(50,250))
    screen.blit(Text,(140,125))
    pygame.display.update()


def flash():
    #Writes "the game" and "you just lost it" onto the screen
    #Changes the background colour of the screen
    Font = pygame.font.SysFont("monospace",40,True,False)
    Text = Font.render("The Game",1,(black))
    text = Font.render("YOU JUST LOST IT",1,(black))
    rand = random.randint(0,5)
    if rand == 1:
        screen.fill(colour_1)
    if rand == 2:
        screen.fill(colour_2)
    if rand == 3:
        screen.fill(colour_3)
    if rand == 4:
        screen.fill(colour_4)
    if rand == 5:
        screen.fill(colour_5)
    screen.blit(text,(50,250))
    screen.blit(Text,(140,125))
    pygame.display.update()
    for event in pygame.event.get():
                if event.type == pygame.QUIT:
                        pygame.quit(); sys.exit();




while True:
    if alpha == 0:
        break
    else:
        the_game()


time.sleep(1)
lost_it()
while True:
    flash()
    for event in pygame.event.get():
                if event.type == pygame.QUIT:
                        pygame.quit(); sys.exit();

No correct solution

OTHER TIPS

There is a method in pygame.display called set_icon. You can use it to override default snake icon

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top