I am trying to run my game in Python, with Pygame. However, I am presented with a black screen, but my game shows up for a fraction of a second after I exit the Shell. What's wrong with my code, I think it's an issue with my timer.
# Import library
import pygame, sys, random, math
import os
import time
# Initialise game engine
def draw_miner(screen,x,y):
pygame.draw.ellipse(screen,black,[35+x,35+y,25,25])
def draw_gold(screen,x,y):
pygame.draw.ellipse(screen,black,[40+x,40+y, randint(20,370), randint(20,370)])
pygame.init()
# Examples
black = (0, 0, 0)
white = (255, 255, 255)
green = (0, 255, 0)
red = (255, 0, 0)
blue = (0, 0, 255)
# Screen dimensions
size=[700,500]
screen=pygame.display.set_mode(size)
pygame.display.set_caption("Lewis Tough - Find The Gold")
pi=3.141592653
done=False
clock=pygame.time.Clock()
x_coord=10
y_coord=10
x_speed=0
y_speed=0
font=pygame.font.Font("C:/Windows/Fonts/TCM_____.ttf", 50)
while done==False:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done=True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_speed=-3
if event.key == pygame.K_RIGHT:
x_speed=3
if event.key == pygame.K_UP:
y_speed=-3
if event.key == pygame.K_DOWN:
y_speed=3
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT:
x_speed=0
if event.key == pygame.K_RIGHT:
x_speed=0
if event.key == pygame.K_UP:
y_speed=0
if event.key == pygame.K_DOWN:
y_speed=0
#all evt processing above here
#start of game logic
x_coord += x_speed
y_coord += y_speed
#end of game logic
#start of drawing
screen.fill(white)
draw_miner(screen,x_coord,y_coord)
pygame.draw.rect(screen,green,[20,20,50,50],2)
pygame.draw.rect(screen,green,[70,70,50,50],2)
pygame.draw.rect(screen,green,[20,70,50,50],2)
pygame.draw.rect(screen,green,[70,20,50,50],2)
pygame.draw.rect(screen,green,[120,20,50,50],2)
pygame.draw.rect(screen,green,[170,70,50,50],2)
pygame.draw.rect(screen,green,[120,70,50,50],2)
pygame.draw.rect(screen,green,[170,20,50,50],2)
#breakafter8
pygame.draw.rect(screen,green,[120,120,50,50],2)
pygame.draw.rect(screen,green,[170,170,50,50],2)
pygame.draw.rect(screen,green,[120,170,50,50],2)
pygame.draw.rect(screen,green,[170,120,50,50],2)
pygame.draw.rect(screen,green,[20,120,50,50],2)
pygame.draw.rect(screen,green,[70,170,50,50],2)
pygame.draw.rect(screen,green,[20,170,50,50],2)
pygame.draw.rect(screen,green,[70,120,50,50],2)
#sec3
pygame.draw.rect(screen,green,[220,20,50,50],2)
pygame.draw.rect(screen,green,[270,70,50,50],2)
pygame.draw.rect(screen,green,[220,70,50,50],2)
pygame.draw.rect(screen,green,[270,20,50,50],2)
pygame.draw.rect(screen,green,[320,20,50,50],2)
pygame.draw.rect(screen,green,[370,70,50,50],2)
pygame.draw.rect(screen,green,[320,70,50,50],2)
pygame.draw.rect(screen,green,[370,20,50,50],2)
#sec4
pygame.draw.rect(screen,green,[320,120,50,50],2)
pygame.draw.rect(screen,green,[370,170,50,50],2)
pygame.draw.rect(screen,green,[320,170,50,50],2)
pygame.draw.rect(screen,green,[370,120,50,50],2)
pygame.draw.rect(screen,green,[220,120,50,50],2)
pygame.draw.rect(screen,green,[270,170,50,50],2)
pygame.draw.rect(screen,green,[220,170,50,50],2)
pygame.draw.rect(screen,green,[270,120,50,50],2)
#next half
pygame.draw.rect(screen,green,[20,220,50,50],2)
pygame.draw.rect(screen,green,[70,270,50,50],2)
pygame.draw.rect(screen,green,[20,270,50,50],2)
pygame.draw.rect(screen,green,[70,220,50,50],2)
pygame.draw.rect(screen,green,[120,220,50,50],2)
pygame.draw.rect(screen,green,[170,270,50,50],2)
pygame.draw.rect(screen,green,[120,270,50,50],2)
pygame.draw.rect(screen,green,[170,220,50,50],2)
#breakafter8
pygame.draw.rect(screen,green,[120,320,50,50],2)
pygame.draw.rect(screen,green,[170,370,50,50],2)
pygame.draw.rect(screen,green,[120,370,50,50],2)
pygame.draw.rect(screen,green,[170,320,50,50],2)
pygame.draw.rect(screen,green,[20,320,50,50],2)
pygame.draw.rect(screen,green,[70,370,50,50],2)
pygame.draw.rect(screen,green,[20,370,50,50],2)
pygame.draw.rect(screen,green,[70,320,50,50],2)
#sec3
pygame.draw.rect(screen,green,[220,220,50,50],2)
pygame.draw.rect(screen,green,[270,270,50,50],2)
pygame.draw.rect(screen,green,[220,270,50,50],2)
pygame.draw.rect(screen,green,[270,220,50,50],2)
pygame.draw.rect(screen,green,[320,220,50,50],2)
pygame.draw.rect(screen,green,[370,270,50,50],2)
pygame.draw.rect(screen,green,[320,270,50,50],2)
pygame.draw.rect(screen,green,[370,220,50,50],2)
#sec4
pygame.draw.rect(screen,green,[320,320,50,50],2)
pygame.draw.rect(screen,green,[370,370,50,50],2)
pygame.draw.rect(screen,green,[320,370,50,50],2)
pygame.draw.rect(screen,green,[370,320,50,50],2)
pygame.draw.rect(screen,green,[220,320,50,50],2)
pygame.draw.rect(screen,green,[270,370,50,50],2)
pygame.draw.rect(screen,green,[220,370,50,50],2)
pygame.draw.rect(screen,green,[270,320,50,50],2)
draw_miner(screen,x_coord,y_coord)
#start of text
text=font.render("Welcome to Find the Gold!", True, black)
screen.blit(text, [100,425])
s=0
frame_count = 0
frame_rate = 60
start_time = 0
#def main():
# global lives
# time = "Time=" +str(s)
total_seconds = frame_count//frame_rate
minutes = total_seconds//60
seconds = total_seconds%60
output_string = "Time:{0:02}:{1:02}".format(minutes, seconds)
text=font.render(output_string,True,black)
screen.blit(text,[450, 100])
#while s<=60:
# os.system('cls')
# texta = font.render(time,'Seconds', True, black)
# screen.blit(texta, [500,100])
#time.sleep(1)
#s+=1
#if s==60:
# m+=1
#s=0
#pygame.display.update()
pygame.display.flip()
#end of drawing
clock.tick(20)
pygame.quit()
Apologies for the inefficiency of the rectangle drawing, I'm still new to Python!