我在 Pygame 的分数系统一遍又一遍地重叠
My score system in Pygame overlaps over and over again
我在网上看了很多 YouTube 视频和信息,但似乎找不到答案。每次我 运行 代码时,文本都显示为零,但是当单击敌人以赚取积分时,数字 1 与零重叠并且不会改变。这个问题一遍又一遍地重复。 do/can 我做什么?我是 python 代码的新手,可能有一些不必要的代码,所以如果您看到菜鸟错误,请记住这一点,谢谢。
import pygame
import time
import random
pygame.init()
from pygame.locals import *
white = (255,255,255)
window = pygame.display.set_mode((800,600))
pygame.display.set_caption("Extended Essay game")
BADGUY = pygame.image.load('enemy.png')
pygame.font.init()
#Enemy char
class Enemy():
def __init__(self, x, y):
self.x = x
self.y = y
def main():
run = True
FPS = 60
x = 0
enemies = 0
clock = pygame.time.Clock()
font = pygame.font.Font('freesansbold.ttf', 32)
window.fill((255,255,255))
window.blit(BADGUY,(0,0))
def update():
text = font.render("Enemies: " + str(enemies), True, (0,0,0))
window.blit(text, (200, 300))
pygame.display.update()
while run:
clock.tick(FPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
if event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 1:
window.blit(BADGUY, (random.randint(0, 700), random.randint(0 , 700)))
enemies += 1
update()
main()
您需要先清空屏幕,然后再放上新东西。将其放在 update()
的开头或在循环中调用它之前:
window.fill((255, 255, 255))
我在网上看了很多 YouTube 视频和信息,但似乎找不到答案。每次我 运行 代码时,文本都显示为零,但是当单击敌人以赚取积分时,数字 1 与零重叠并且不会改变。这个问题一遍又一遍地重复。 do/can 我做什么?我是 python 代码的新手,可能有一些不必要的代码,所以如果您看到菜鸟错误,请记住这一点,谢谢。
import pygame
import time
import random
pygame.init()
from pygame.locals import *
white = (255,255,255)
window = pygame.display.set_mode((800,600))
pygame.display.set_caption("Extended Essay game")
BADGUY = pygame.image.load('enemy.png')
pygame.font.init()
#Enemy char
class Enemy():
def __init__(self, x, y):
self.x = x
self.y = y
def main():
run = True
FPS = 60
x = 0
enemies = 0
clock = pygame.time.Clock()
font = pygame.font.Font('freesansbold.ttf', 32)
window.fill((255,255,255))
window.blit(BADGUY,(0,0))
def update():
text = font.render("Enemies: " + str(enemies), True, (0,0,0))
window.blit(text, (200, 300))
pygame.display.update()
while run:
clock.tick(FPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
if event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 1:
window.blit(BADGUY, (random.randint(0, 700), random.randint(0 , 700)))
enemies += 1
update()
main()
您需要先清空屏幕,然后再放上新东西。将其放在 update()
的开头或在循环中调用它之前:
window.fill((255, 255, 255))