我正在制作我的第一款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()