Python Pygame 基础程序
我最近在学习pygame,试着写一个简单的程序,想让一个小叶子从屏幕顶部掉下来。可是当我运行这个程序时,什么都没有出现。我觉得我可能在某些地方犯了明显的错误。(我也知道这样做效率很低,所以如果有建议的话,我会很感激!)
这是我的代码:
import pygame
from pygame.locals import *
import random
pygame.init()
class Leaf:
def __init__(self):
self.leafimage = pygame.image.load('fallingleaf.jpg').convert()
self.leafrect = self.leafimage.get_rect()
xpos = random.randint(0, 640)
self.leafrect.midtop = (xpos, 0)
def move(self):
self.leafrect = self.leafrect.move([0, 1])
def main():
width= 640
heigth = 480
dimensions = (width, heigth)
screen = pygame.display.set_mode(dimensions)
pygame.display.set_caption('Some Epic Pygame Stuff')
clock = pygame.time.Clock()
leaves = []
for i in range(5):
leaves.append(Leaf())
running = 1
while running:
clock.tick(60)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = 0
for i in leaves:
i.move()
screen.blit(i.leafimage, i.leafrect)
screen.fill((255, 255, 255))
pygame.display.flip()
if __name__ == '__main__': main()
1 个回答
7
你可能不想要这样的顺序:
for i in leaves:
i.move()
screen.blit(i.leafimage, i.leafrect)
screen.fill((255, 255, 255))
pygame.display.flip()
你先画好树叶,然后把整个屏幕涂成白色,最后再显示屏幕。
应该是先把屏幕涂白,然后再画树叶,最后用flip()
来显示。