我正在使用python2.7和pygame为学校开展艺术项目。
我想要实现的效果是将矩形容器分散在屏幕上的随机位置。每个都包含显示,同时迭代字符列表(例如a到z,或其他语言的字母)或图像列表。
我是编程新手,到目前为止我已经想出如何使用pygame的字体和图像来显示图像和文本,但我真的迷失在“更新”部分。
说我正在遍历一个到z,并希望将它显示在同一个容器中,通过a到z闪烁,我应该把它放在主循环中的哪个或者如何?
import pygame
from string import ascii_lowercase
pygame.init()
width=4096
height=2160
testSize = 3
bgR = 0 # background red
bgG = 0 # background green
bgB = 0 # background Blue
screen = pygame.display.set_mode( ( width/testSize, height/testSize) )
imageContainer = pygame.image.load("images/westernEmoji/aaa.jpg").convert()
fpsClock = pygame.time.Clock()
imageX= 200/testSize; # x coordnate of image
imageY= 30/testSize; # y coordinate of image
running = True
# background color
black = ( bgR , bgG , bgB)
# text Container
textX= 100/testSize
textY= 100/testSize
font = pygame.font.SysFont("comicsansms", 72/testSize)
for contentA in ascii_lowercase:
textContainer = font.render(contentA, True, (0, 128, 0))
# main while loop
while (running): # loop listeneint for end of game
# imageContainer
# imageX -= 20 ; #move image
screen.fill(black) # clear screen
screen.blit(imageContainer , (imageX, imageY) ) # paint to screen
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
# Set the x, y postions of the mouse click
x, y = event.pos
# fontContainer
screen.fill(black) # clear screen
screen.blit(textContainer,(textX, textY))
pygame.display.update()
fpsClock.tick(30)
#loop over, quite pygame
pygame.quit()
答案 0 :(得分:0)
这是一个解决方案(对于来自az的字母):将字母存储在列表或其他容器中(我只是在这里使用string.ascii_lowercase),然后经过一段时间间隔或任意数量的帧增加索引,模数通过容器的长度(以保持索引在正确的范围内),然后重新渲染字体,然后只返回返回的表面。
AnchorPane.setBottomAnchor(loginButton, 0.0);