[英]Pygame always crashing in python
在我運行我的 pygame 代碼后,它一直運行到 horizontel 框出現在屏幕上,但之后它停止了,當我們嘗試越過它時,它顯示錯誤 Python 沒有響應。 這是我的代碼:
import pygame
import sys
import random
from time import sleep
pygame.init()
pygame.display.init()
root = pygame.display.set_mode((600, 500))
pygame.display.set_caption('Game attempt')
clock = pygame.time.Clock()
body_horizontel = pygame.image.load(r"snake\body_horizontal.png")
# variables
x_coordinate = random.randint(0, 40)
y_coordinate = random.randint(0, 40)
bg = pygame.image.load(r"bg.jpg")
apple = pygame.image.load(r"apple.png")
body_horizontel_location_x = 260
body_horizontel_location_y = 230
root.blit(bg, (0, 0))
root.blit(apple, (x_coordinate * 15, y_coordinate * 12.5))
while True:
pygame.event.pump()
root.blit(body_horizontel, (body_horizontel_location_x, body_horizontel_location_y))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
keys = pygame.key.get_pressed()
if keys[pygame.K_UP]:
run = 0
while run < 4:
if body_horizontel_location_y >= 40:
root.blit(bg, (0, 0))
root.blit(apple, (x_coordinate * 15, y_coordinate * 12.5))
body_horizontel_location_y -= 40
root.blit(body_horizontel, (body_horizontel_location_x, body_horizontel_location_y))
sleep(0.01)
pygame.display.update()
run += 1
root.blit(apple, (x_coordinate * 15, y_coordinate * 12.5))
pygame.display.update()
root.blit(bg, (0, 0))
clock.tick(100)
我有 if 子句,因此如果框不在屏幕上方 go 並且會導致問題,因為當我嘗試通過單擊向上箭頭按鈕使其在屏幕上方 go 屏幕崩潰時。 我什至嘗試用 pygame.time.delay() 或 clock.tick() 改變睡眠,但它們都不起作用。
嗨,在你的 while 循環中,它會繼續運行,直到 run 大於或等於 4。如果你的 if 語句為真,run 變量只會加一個,所以如果它為假,你的程序將永遠停留在 while 循環中,因為 run 永遠不會大於4
改用它作為您的 if 語句
if body_horizontel_location_y >= 40:
root.blit(bg, (0, 0))
root.blit(apple, (x_coordinate * 15, y_coordinate * 12.5))
body_horizontel_location_y -= 40
root.blit(body_horizontel, (body_horizontel_location_x, body_horizontel_location_y))
sleep(0.01)
pygame.display.update()
run += 1
如您所見,我從 if 語句中取出了 run += 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.