我使用python 2.7.3创建一个简单的Pygame游戏,其中一个球必须避免障碍物向球落下。但我无法弄清楚如何使障碍物反复下降,同时每个障碍物也随机下降。这是我的代码:
import pygame
from math import pi
import random
pygame.init()
BLACK = ( 0, 0, 0)
WHITE = (255, 255, 255)
BLUE = ( 0, 0, 255)
GREEN = ( 0, 255, 0)
RED = (255, 0, 0)
TAN = (252,231,182)
background = (38,37,37)
size = [400, 400]
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Game")
siz = 20
x = 200
xminus = x - 140
xadd = x + 140
y = 350
fallingy = 0
rectx = 0
rectl = 60
rectw = 30
done = False
clock = pygame.time.Clock()
while not done:
clock.tick(10)
for event in pygame.event.get():
if event.type == pygame.QUIT:
done=True
screen.fill(background)
pressed = pygame.key.get_pressed()
circle = pygame.draw.circle(screen, BLUE, [x,y],siz)
if pressed[pygame.K_LEFT]:
screen.fill(background)
x = 60
circle2 = pygame.draw.circle(screen, BLUE,[x,y],siz)
if pressed[pygame.K_RIGHT]:
screen.fill(background)
x = 340
circle = pygame.draw.circle(screen, BLUE,[x,y],siz)
if pressed[pygame.K_LEFT] and pressed[pygame.K_RIGHT]:
screen.fill(background)
circle = pygame.draw.circle(screen, BLUE,[xminus,y],siz)
circle = pygame.draw.circle(screen, BLUE,[xadd,y],siz)
else:
circle = pygame.draw.circle(screen, BLUE, [x,y],siz)
x = 200
"""THIS IS THE CODE I WANT TO BE REPEATED RANDOMLY"""
def middle1():
pygame.draw.rect(screen, RED, [rectx, fallingy, 170, rectw])
pygame.draw.rect(screen, RED, [rectx + 400, fallingy, -170, rectw])
def lnr():
pygame.draw.rect(screen, RED, [rectx, fallingy, 20, rectw])
pygame.draw.rect(screen, RED, [rectx +400, fallingy, -20, rectw])
pygame.draw.rect(screen, RED, [rectx + 100, fallingy, 200, rectw])
def l():
pygame.draw.rect(screen, RED, [rectx, fallingy, 20, rectw])
pygame.draw.rect(screen, RED, [rectx + 400, fallingy, -300, rectw])
def r():
pygame.draw.rect(screen, RED, [rectx + 400, fallingy, -20, rectw])
pygame.draw.rect(screen, RED, [rectx, fallingy, 300, rectw])
"""THIS IS THE CODE I WANT TO BE REPEATED RANDOMLY"""
fallingy += 5
pygame.display.flip()
pygame.quit()
非常感谢任何帮助。
答案 0 :(得分:1)
处理每个需要附加数据的代码的最佳方法通常是为它编写一个类。你可以从头开始自己的类,但是从pygame.sprite.Sprite
这样的东西继承可能更容易,它已经完成了你想要的大部分工作(也可以做更多的东西,比如使用更复杂的图像而不是只是一个坚实的颜色框。)