[英](Pygame) .blit won't display While function
因此,我試圖創建一個計時器,在該計時器中運行游戲時,我的pygame窗口中將顯示運行游戲的秒數。 但是由於某種原因,它似乎沒有用。 我不太清楚到底是什么問題。
第35-44行是計時器功能所在的位置...第71行是希望顯示時間的位置...
import pygame
pygame.init()
pygame.font.init()
FPS = 60
fpsClock = pygame.time.Clock()
time = 10
WHITE = (255,255,255)
dimension = [936, 520]
SCREEN = pygame.display.set_mode(dimension)
font = pygame.font.Font("8-BIT WONDER.TTF",16)
gameEnd= False
#Images
blacksmith = pygame.image.load("blacksmith.png")
blacksmith = pygame.transform.scale(blacksmith,(144,144))
background = pygame.image.load("background_img.png")
#Positions
blacksmith_position = [400,275]
anvil_position = [0,0]
song = pygame.mixer.music.load("Pixelland.mp3")
pygame.mixer.music.play(0, 0.0)
#Time
get_time = True
#Clock
while get_time == True:
time = pygame.time.get_ticks() / 1000
pygame.time.delay(1000)
display_time = font.render(time, True, WHITE)
#Game Loop
while not gameEnd:
for event in pygame.event.get():
if event.type == pygame.QUIT:
gameEnd = True
#Player Controls
keys = pygame.key.get_pressed()
if keys[pygame.K_F11]:
pygame.display.toggle_fullscreen()
if keys[pygame.K_LEFT]:
blacksmith_position[0] = max(95, blacksmith_position[0] - 12)
if keys[pygame.K_RIGHT]:
blacksmith_position[0] = min(685, blacksmith_position[0] + 12)
SCREEN.blit(background, (0, 0))
SCREEN.blit(blacksmith,(blacksmith_position))
SCREEN.blit(display_time, (70,10))
pygame.display.update()
fpsClock.tick(FPS)
pygame.quit()
quit()
您while get_time == True:
運行while get_time == True:
這將停止所有操作。 它一直運行。
您只能有一個始終運行的while
循環(無限循環) mainloop
。
工作示例(無位圖和字體文件)
import pygame
# --- constants ---
FPS = 60
WHITE = (255, 255, 255)
BLACK = ( 0, 0, 0)
DIMENSION = (936, 520)
# --- classes ---
# empty
# --- functions ---
# empty
# --- main ---
# - init -
pygame.init()
#pygame.font.init() # pygame.init() should run `pygame.font.init()` automatically
screen = pygame.display.set_mode(DIMENSION)
# - resources -
font = pygame.font.Font(None, 16)
# - mainloop -
fps_clock = pygame.time.Clock()
game_end = False
while not game_end:
# - events -
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_end = True
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_F11
pygame.display.toggle_fullscreen()
#keys = pygame.key.get_pressed()
#if keys[pygame.K_F11]:
# pygame.display.toggle_fullscreen()
# - updates (without draws) -
# render current time
cur_time = pygame.time.get_ticks() / 1000
display_time = font.render(str(cur_time), True, WHITE)
# - draws (without updates) -
screen.fill(BLACK)
screen.blit(display_time, (70,10))
pygame.display.update()
# - FPS -
fps_clock.tick(FPS)
# - end -
pygame.quit()
#quit() # doesn't need it
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.