Pygame让立方体慢慢地从屏幕的顶部移动到底部



我正在制作我的第一款pygame游戏,这就是为什么自从我了解它以来,我问了很多问题。我试图让立方体慢慢地从天空中落下,当它们到达屏幕底部时,它们会回到屏幕上方,然后再次开始下落。我的代码没有产生任何错误,但也不能正常工作,因为多维数据集根本没有出现。这是我的代码,希望你能帮忙,谢谢!:

import pygame
import sys
from random import randint
x = 250
y = 30
import os
os.environ["SDL_VIDEO_WINDOW_POS"] = "%d,%d" % (x, y)
width = 1024
height = 768
icon1 = pygame.image.load("Firstpygamegame/santa-claus.png")
pygame.display.set_icon(icon1)
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Gift Catcher")
background_image = pygame.image.load("Firstpygamegame/wintervillage.png")
sprite1 = pygame.image.load("Firstpygamegame/santabag2.png")
rect = sprite1.get_rect()
speed = 2.5
# 442 or 467
rect.x = 442
icon2 = pygame.image.load("Firstpygamegame/present1.png")
icon3 = pygame.image.load("Firstpygamegame/present2.png")
icon4 = pygame.image.load("Firstpygamegame/present3.png")
icon5 = pygame.image.load("Firstpygamegame/present4.png")
cubes = [[
randint(1, 1000),  # X coordinate
randint(-300, 100)]  # Y coordinate, -Y is above screen  (top of screen is zero)
for x in range(7)]  # 20 cubes
for cb in cubes:
cb[1] += 10  # cube moves down 2 pixels
screen.blit(icon2, cb)  # draw cube
if cb[1] > 800:  # if cube passed bottom of screen
cb[1] = -100  # move to above screen
cb[0] = randint(1, 1000)  # random X position
for cb in cubes:
cb[1] += 10  # cube moves down 2 pixels
screen.blit(icon3, cb)  # draw cube
if cb[1] > 800:  # if cube passed bottom of screen
cb[1] = -100  # move to above screen
cb[0] = randint(1, 1000)  # random X position
for cb in cubes:
cb[1] += 10  # cube moves down 2 pixels
screen.blit(icon4, cb)  # draw cube
if cb[1] > 800:  # if cube passed bottom of screen
cb[1] = -100  # move to above screen
cb[0] = randint(1, 1000)  # random X position
for cb in cubes:
cb[1] += 10  # cube moves down 2 pixels
screen.blit(icon5, cb)  # draw cube
if cb[1] > 800:  # if cube passed bottom of screen
cb[1] = -100  # move to above screen
cb[0] = randint(1, 1000)  # random X position
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.quit()
sys.exit()
keys = pygame.key.get_pressed()
rect.x += (keys[pygame.K_RIGHT] - keys[pygame.K_LEFT]) * speed
rect.y = 600
screen.blit(background_image, (0, 0))
screen.blit(sprite1, rect)
pygame.display.flip()

必须在screen.blit(background_image, (0, 0))之后但在pygame.display.flip()之前的应用程序循环中绘制多维数据集。例如:

running = True
while running:
# [...]
screen.blit(background_image, (0, 0))
for cb in cubes:
screen.blit(icon5, cb)
screen.blit(sprite1, rect)
pygame.display.flip()

最新更新