楞年。 2022-02-08 16:45 采纳率: 66.7%
浏览 55

如何理解 speed[0] = -speed[0] 、 speed[1] = -speed[1]

跳跃小球的全部代码

# -*- coding:utf-8 -*-
import sys  # 导入sys模块
import pygame  # 导入pygame模块

pygame.init()  # 初始化pygame
size = width, height = 640, 480  # 设置窗口
screen = pygame.display.set_mode(size)  # 显示窗口
color = (0, 0, 0)  # 设置颜色

ball = pygame.image.load("ball.png")  # 加载图片
ballrect = ball.get_rect()  # 获取矩形区域

speed = [5, 5]  # 设置移动的X轴、Y轴距离
clock = pygame.time.Clock()  # 设置时钟
# 执行死循环,确保窗口一直显示
while True:
    clock.tick(60)  # 每秒执行60次
    # 检查事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:  # 如果点击关闭窗口,则退出
            pygame.quit()  # 退出pygame
            sys.exit()

    ballrect = ballrect.move(speed)  # 移动小球
    # 碰到左右边缘
    if ballrect.left < 0 or ballrect.right > width:
        speed[0] = -speed[0]
    # 碰到上下边缘
    if ballrect.top < 0 or ballrect.bottom > height:
        speed[1] = -speed[1]

    screen.fill(color)  # 填充颜色
    screen.blit(ball, ballrect)  # 将图片画到窗口上
    pygame.display.flip()  # 更新全部显示

其中有一条设置X、Y轴移动距离的语句

img


但是后面检测边缘碰撞时

img


这个 speed[0] = -speed[0] 、 speed[1] = -speed[1]这两条语句如何理解呢?

  • 写回答

1条回答 默认 最新

  • Hann Yang 全栈领域优质创作者 2022-02-08 16:54
    关注

    超出边界,小球就反向移动。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月8日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境