テキストを表示するプログラムを作成しました。「0 $」とクリックすると、お金が増えて新しいイメージが表示されます。Pygame:テキストサーフェスを別のサーフェスに連続的に埋め込む
あなたは写真を見て理解していない場合は、次の
あなたが最初の画像「0 $」が正しく表示されていることがわかり、私はマウスをクリックすると、最初のテキストが解消されないと新しいテキストがその上に描画されます。ここで
は私のコードです:
import pygame
from pygame.locals import *
#Initialisation de pygame
pygame.init()
taille_fenetre = (960,480)
fenetre = pygame.display.set_mode(taille_fenetre,RESIZABLE)
pygame.display.set_caption("Space Shooter")
#COULEUR
BLANC = (255,255,255)
NOIR = ( 0, 0, 0)
#Variables
argent = 0
#Font
calibri_font = pygame.font.SysFont("Calibri",50)
#Chargement image,surface
lumiere = pygame.image.load("lumiere_tournante.png")
fond = pygame.image.load("espace.jpg").convert()
avion = pygame.image.load("avion_anim.png").convert_alpha()
#Transfo sprite
lumiere = pygame.transform.scale(lumiere,(500,550))
avion = pygame.transform.scale(avion,(1000,550))
#Texte
argent_text_surface = calibri_font.render(str(argent) +" $",True,BLANC)
#Rect
argent_text_rect = argent_text_surface.get_rect()
position_lumiere= rotate_lumiere = lumiere.get_rect()
position_avion = avion.get_rect()
#Position
argent_text_rect.centerx =750 #en bas à droite
argent_text_rect.centery =425
#autre
avion_vitesse = (0,0)
#fonction
def move(vitesse, acceleration):
vx, vy = vitesse
ax, ay = acceleration
vitesse = (vx + ax, vy + ay)
return vitesse
#Boucle événementielle
continuer = True
while continuer:
#Limitations des fps
pygame.time.Clock().tick(90)
for event in pygame.event.get(): #On parcours la liste de tous les événements reçus
if event.type == QUIT:
continuer = False
elif event.type == KEYDOWN:
if event.key == K_RIGHT:
avion_vitesse = move(avion_vitesse, (10,0))
elif event.key == K_LEFT:
avion_vitesse = move(avion_vitesse, (-10,0))
if event.key == K_UP:
avion_vitesse = move(avion_vitesse, (0,-10))
elif event.key == K_DOWN:
avion_vitesse = move(avion_vitesse, (0,10))
elif event.type == KEYUP:
if event.key == K_RIGHT:
avion_vitesse = move(avion_vitesse, (-10,0))
elif event.key == K_UP:
avion_vitesse = move(avion_vitesse, (0,10))
elif event.key == K_DOWN:
avion_vitesse = move(avion_vitesse, (0,-10))
elif event.key == K_LEFT:
avion_vitesse = move(avion_vitesse, (10,0))
elif event.type == MOUSEBUTTONDOWN:
if event.button == 1:
argent +=10
argent_text_surface = calibri_font.render(str(argent) +" $",True,BLANC)
i=0
for loop in range(1):
rotate_lumiere = pygame.transform.rotate(lumiere, 1+i)
i+= 1
#Logique de jeu
vx, vy = avion_vitesse
position_avion.left += vx
position_avion.top += vy
#L'affichage du jeu
fond.blit(argent_text_surface, argent_text_rect)
fenetre.blit(fond, (0,0))
fenetre.blit(rotate_lumiere, position_lumiere)
fenetre.blit(avion, position_avion)
#Rafraichissement
pygame.display.flip()
画像を実際の投稿に追加してください。内部ネットワークの制限により、画像のリンクをたどることができません。 – Paul
こんにちはポール、私は申し訳ありません:(私はサイトxで10の評判が必要です) –
誰ですか? plz :::: –