[英]How to display value on pygame window?
我試圖讓我的游戲打開一個單獨的窗口,顯示退出主游戲后的玩家得分。 我無法弄清楚如何讓文本顯示s + s2的值。 到目前為止,我有:
import pygame, sys
from pygame.locals import *
pygame.init()
import time
red = (255,0,0)
green = (0,255,0)
blue = (0,0,255)
darkBlue = (0,0,128)
white = (255,255,255)
black = (0,0,0)
pink = (255,200,200)
background = pygame.image.load('background.jpg')
screen = pygame.display.set_mode((640,521),0,32)
x,y = 285, 430
m_x, m_y = 0,0
t = 0
u = 0
q = 0
e = 0
pygame.display.set_caption('Game')
s = 0
s2 = 0
while 1:
screen.blit(background, (0,0))
for event in pygame.event.get():
if event.type == QUIT:
pygame.display.set_mode((200,200),0,32)
pygame.display.set_caption('Score')
font = pygame.font.Font(None, 100)
text = font.render('s + s2'), 1, white)
screen.blit(text, (0,0))
pygame.display.update()
time.sleep(5)
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
if event.key == K_a:
m_x = -3
s+=1
print (s)
elif event.key == K_d:
m_x = +3
s2+=1
print (s2)
if event.type == KEYUP:
if event.key == K_a:
m_x = 0
elif event.key == K_d:
m_x = 0
x+= m_x
y+= m_y
ball = pygame.sprite.Sprite()
ball.image = pygame.image.load('red_ball.png').convert()
ball.rect = ball.image.get_rect()
ball.image.set_colorkey((white))
screen.blit(ball.image,(x,y))
if x > 640:
x = 0
if x < 0:
x = 640
g_ball = pygame.sprite.Sprite()
g_ball.image = pygame.image.load('green_ball.png').convert()
g_ball.rect = g_ball.image.get_rect()
g_ball.image.set_colorkey(white)
screen.blit(g_ball.image,(50,t))
t+=5
if t > 521:
t = 0
g_ball2 = pygame.sprite.Sprite()
g_ball2.image = pygame.image.load('green_ball.png').convert()
g_ball.rect = g_ball.image.get_rect()
g_ball2.image.set_colorkey(white)
screen.blit(g_ball2.image,(350,u))
u+=5
if u > 521:
u = -50
g_ball3 = pygame.sprite.Sprite()
g_ball3.image = pygame.image.load('green_ball.png').convert()
g_ball3.rect = g_ball3.image.get_rect()
g_ball3.image.set_colorkey(white)
screen.blit(g_ball3.image,(500,q))
q+=5
if q > 521:
q = -75
g_ball4 = pygame.sprite.Sprite()
g_ball4.image = pygame.image.load('green_ball.png').convert()
g_ball4.rect = g_ball4.image.get_rect()
g_ball4.image.set_colorkey(white)
screen.blit(g_ball4.image,(200,e))
e+=5
if e > 521:
e = -100
pygame.display.update()
Pygame無法同時打開多個窗口。 這是因為底層SDL庫的設計。
您最好的選擇是將主窗口的某個角落作為顯示此信息的“HUD”。
SDL的開發版本支持多個窗口(SDL 1.3),如果多個窗口仍然是您的理想解決方案,您可以查看Pygame的開發版本。
您還有繪制文本代碼的問題。 (除了不匹配的括號外。)
font.render('s + s2'), 1, white)
這將顯示文字“s + s2”,您需要做的是添加這兩個值並將其轉換為字符串。 請改用它。
font.render(str(s + s2), 1, white)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.