I'm trying to make it where i display my main starting screen with a while loop and it doesn't seem to be working. If i blit the pictures normally outside of the loop it works, but just simply having the loop stops the program from even going. This is my while loop:
[source lang="python"]#Menu screenstart_screen = Truewhile start_screen: DISPLAY.blit(sbg, (0, 0)) DISPLAY.blit(stitle, (188, 10)) DISPLAY.blit(textObj1, RectObj1) for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_RETURN: start_screen == False game == True[/source]
"game" being another loop that simply fills the screen white(for testing, later this will initiate the game).
Here's the whole code:
[source lang="python"]import pygame, randomimport randintimport pplrtyimport sysfrom pygame.locals import *pygame.init()FPS = 30fpsClock = pygame.time.Clock()#variablesx = randint.xyear = 2011p = pplrty.p#get colorsWHITE = (255, 255, 255)RED = (255, 0, 0)#get display stuffDISPLAY = pygame.display.set_mode((640,480))pygame.display.set_caption('Program')#create fontsfontObj1 = pygame.font.Font('freesansbold.ttf', 16)#make wordstextObj1 = fontObj1.render('Hit Enter', True, RED)RectObj1 = textObj1.get_rect()RectObj1.center = (315, 240)#get imagestitle = pygame.image.load('title.png')stitle = pygame.transform.scale(title, (264, 64))bg = pygame.image.load('bg.png')sbg = pygame.transform.scale(bg, (640, 480))#Menu screenstart_screen = Truewhile start_screen: DISPLAY.blit(sbg, (0, 0)) DISPLAY.blit(stitle, (188, 10)) DISPLAY.blit(textObj1, RectObj1) for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_RETURN: start_screen == False game == Truewhile game: DISPLAY.fill(WHITE)#Main Loopwhile True: for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() pygame.display.update()[/source]
The game is going to be a simple game with a simple gui and is in its first stages so certain things are not there, but it was working until i put the blit images in the loop.
I need help on why this isn't working
Started by K1NNY, Oct 01 2012 11:23 AM
5 replies to this topic
Ad:
#4 Members - Reputation: 163
Posted 02 October 2012 - 08:45 AM
That actually didn't work either. Am i using the while loop wrong? when i replaced the "=" with "==" it errored and said "start_screen is not defined"
EDIT:
I fixed it, i was forgetting to call pygame.display.update
EDIT:
I fixed it, i was forgetting to call pygame.display.update
Edited by K1NNY, 02 October 2012 - 09:22 AM.
#5 Members - Reputation: 1836
Posted 02 October 2012 - 08:59 AM
You mistake his meaning. Your initialization of start_screen needs to remain start_screen=True, but in your conditionals if event.key==pygame.K_RETURN you need to change start_screen==False and game==True to start_screen=False and game=True. Because as it stands, you are not assigning to those values you are just comparing them to True or False.
#6 Members - Reputation: 1670
Posted 02 October 2012 - 09:13 AM
That actually didn't work either. Am i using the while loop wrong? when i replaced the "=" with "==" it errored and said "start_screen is not defined"
That's partially because you corrected in the wrong direction. Line 42 in your post above (the "entire code" section) is fine. It declares and defines the start_screen variable. The problem is lines 53 and 54. Those should be assignments and not boolean checks, so replace their =='s with a single =.
Edit: slightly too slow. Ah well.
Edited by BCullis, 02 October 2012 - 09:14 AM.






