pygame 中的落物游戏
Falling objects game in pygame
我目前正在尝试制作一款游戏,让我的形状在一定时间内反复从屏幕顶部掉落,到目前为止,我已经设法让我的形状能够从屏幕顶部掉落屏幕,但我正在努力解决的问题是再次出现在顶部并重复。
此代码展示了我如何将形状绘制到屏幕上。
def draw_window_one(star, triangle,rectangle,square,hexagon,circle):
WIN.fill(WHITE)
WIN.blit(GOLD_STAR, (star.x, star.y))
WIN.blit(GREEN_TRIANGLE, (triangle.x, triangle.y))
WIN.blit(LIGHT_BLUE_RECTANGLE, (rectangle.x,rectangle.y))
WIN.blit(ORANGE_SQUARE, (square.x,square.y))
WIN.blit(PURPLE_HEXAGON, (hexagon.x,hexagon.y))
WIN.blit(RED_CIRCLE, (circle.x,circle.y))
pygame.display.update()
这就是我让它们掉落在屏幕上的逻辑。
def main():
star = pygame.Rect(75, 0, WIDTH, HEIGHT)
triangle = pygame.Rect(575, 0, WIDTH, HEIGHT)
rectangle = pygame.Rect(175, 0, WIDTH, HEIGHT)
square = pygame.Rect(275, 0, WIDTH, HEIGHT)
hexagon = pygame.Rect(375, 0, WIDTH, HEIGHT)
circle = pygame.Rect(475, 0, WIDTH, HEIGHT)
clock = pygame.time.Clock()
run = True
while run:
clock.tick(FPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
star.y += 1
triangle.y += 1
rectangle.y += 1
square.y += 1
hexagon.y += 1
circle.y += 1
draw_window_one(star, triangle,rectangle,square,hexagon,circle)
pygame.quit()
if __name__ == "__main__":
main()
这就是你能做的。如果对象的 y 值大于屏幕高度,则可以使用 if 语句将 y 值设置为 -1
if object.y > HEIGHT:
object.y = -1
或替代
if object.y > HEIGHT:
del object
object=ObjectClass()
这应该在您的循环中。
我目前正在尝试制作一款游戏,让我的形状在一定时间内反复从屏幕顶部掉落,到目前为止,我已经设法让我的形状能够从屏幕顶部掉落屏幕,但我正在努力解决的问题是再次出现在顶部并重复。
此代码展示了我如何将形状绘制到屏幕上。
def draw_window_one(star, triangle,rectangle,square,hexagon,circle):
WIN.fill(WHITE)
WIN.blit(GOLD_STAR, (star.x, star.y))
WIN.blit(GREEN_TRIANGLE, (triangle.x, triangle.y))
WIN.blit(LIGHT_BLUE_RECTANGLE, (rectangle.x,rectangle.y))
WIN.blit(ORANGE_SQUARE, (square.x,square.y))
WIN.blit(PURPLE_HEXAGON, (hexagon.x,hexagon.y))
WIN.blit(RED_CIRCLE, (circle.x,circle.y))
pygame.display.update()
这就是我让它们掉落在屏幕上的逻辑。
def main():
star = pygame.Rect(75, 0, WIDTH, HEIGHT)
triangle = pygame.Rect(575, 0, WIDTH, HEIGHT)
rectangle = pygame.Rect(175, 0, WIDTH, HEIGHT)
square = pygame.Rect(275, 0, WIDTH, HEIGHT)
hexagon = pygame.Rect(375, 0, WIDTH, HEIGHT)
circle = pygame.Rect(475, 0, WIDTH, HEIGHT)
clock = pygame.time.Clock()
run = True
while run:
clock.tick(FPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
star.y += 1
triangle.y += 1
rectangle.y += 1
square.y += 1
hexagon.y += 1
circle.y += 1
draw_window_one(star, triangle,rectangle,square,hexagon,circle)
pygame.quit()
if __name__ == "__main__":
main()
这就是你能做的。如果对象的 y 值大于屏幕高度,则可以使用 if 语句将 y 值设置为 -1
if object.y > HEIGHT:
object.y = -1
或替代
if object.y > HEIGHT:
del object
object=ObjectClass()
这应该在您的循环中。