欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

pygame让小方块在屏幕中反弹

程序员文章站 2022-03-16 08:48:07
...
import pygame
from pygame import *
from sys import exit

"""
让一个小方块在屏幕里反弹
"""

WIDTH, HEIGHT = 700, 500
FPS = 60
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)

pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
clock = pygame.time.Clock()

# 矩形的起始位置
rect_x = 50
rect_y = 50

# 矩形的方向和速度
rect_change_x = 5
rect_change_y = 5
while True:
    clock.tick(60)
    for event in pygame.event.get():
        if event.type == QUIT:
            exit()
        if event.type == KEYDOWN:
            if event.key == K_ESCAPE:
                exit()

    screen.fill(BLACK)
    pygame.draw.rect(screen, WHITE, [rect_x, rect_y, 50, 50])
    rect_x += rect_change_x
    rect_y += rect_change_y
    """
    为什么检查rect_y是不是450? 如果屏幕是500像素高,那么检查500才应该是更加看似合理的猜想。
    但请记得矩形是从左上角 开始画的。如果起始位置是500, 那么它会从500画到550, 在反弹之前已经超出屏幕了。
    所以把矩形是50像素高考虑进去的话,正确的反弹的位置是:
    500 -50
    """
    if rect_y > 450 or rect_y < 0:
        rect_change_y = rect_change_y * -1
    if rect_x > 650 or rect_x < 0:
        rect_change_x = rect_change_x * -1
    pygame.display.update()

 

效果展示:

pygame让小方块在屏幕中反弹

 

原文链接:http://programarcadegames.com/index.php?chapter=introduction_to_animation&lang=cn#section_8

相关标签: pygame