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()
效果展示:
原文链接:http://programarcadegames.com/index.php?chapter=introduction_to_animation&lang=cn#section_8
上一篇: Linux C语言内联汇编-条件跳转