Python Pygame Basic程序

2024-04-26 17:44:06 发布

您现在位置:Python中文网/ 问答频道 /正文

大约在最后一天,我一直在努力学习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() 

Tags: inimportselfeventformovemaindef
1条回答
网友
1楼 · 发布于 2024-04-26 17:44:06

你可能不想要这个序列:

for i in leaves:
    i.move()
    screen.blit(i.leafimage, i.leafrect)


screen.fill((255, 255, 255))


pygame.display.flip()

你画出叶子,然后用白色填充整个屏幕,然后显示屏幕。在

填充屏幕,然后画树叶,然后flip()

相关问题 更多 >