A few things first:
- I am using Windows 10 Home edition
- I am using Python 3.7
- I am using pygame 1.9.4
- My IDE is Visual Studio Code, with IDLE as the backup
I am currently designing a GUI using pygame. NOTE: the code is NOT done yet.
When I run a debug session in VS Code, it (mostly) works as expected, but when I try to click on the start button, pygame does not respond and shows not responding.
I've also noticed this with other pygame scripts I've made, where the pygame window freezes when clicked or moved.
Any help would be appreciated.
Here's the code:
# Import modules
import sys, pygame, time, math
from time import sleep
from PIL import Image
# Display background image
image = 'asdf.png'
change = 2
img = Image.open('asdf.png')
width = img.width * change
height = img.height * change
print(width)
print(height)
screen = pygame.display.set_mode((width,height))
background = pygame.image.load(image).convert()
newscreen = pygame.transform.scale(background, (width, height))
screen.blit(newscreen, (0,0))
pygame.display.update()
# start button
pygame.draw.rect(newscreen, (255,120,0), pygame.Rect(width/4,height-height/4, width/2, height/7))
screen.blit(newscreen, (0,0))
pygame.display.update()
pygame.init()
myFont = pygame.font.SysFont("Times New Roman", 100)
text = myFont.render("START", False, (0, 0, 0))
screen.blit(text, (width/4+8,height-height/4-10))
pygame.display.update()
pygame.image.save(newscreen, 'background.png')
pygame.image.save(text, 'starttext.png')
# i button
pygame.draw.rect(newscreen, (255,0,120), pygame.Rect(width - 50, 10, 40,40))
screen.blit(newscreen,(0,0))
pygame.display.update()
myFont = pygame.font.SysFont("Times New Roman", 25)
ibutton = myFont.render("i", False, (0, 0, 0))
screen.blit(ibutton, (width-32,17))
pygame.display.update()
# Mouse click
while True:
left,right,center = pygame.mouse.get_pressed()
if left == True:
if event.type == MOUSEBUTTONUP:
x,y = pygame.mouse.get_pos()
if ((width/4) <= x <= ((width/4) + (width/2))) and ((height-height/4) <= y <= ((height-height/4) + height/76)):
#move to next screen
break
time.sleep(5)
This is NOT similar to the linked problem because my program is for a GUI, and it requires mouse click events.