Pygame 擦除背景上的图像

2023-12-12

您将图像传输到表面上以用作背景。然后按 X 按钮在同一表面上复制图像,如何删除图像?到目前为止我已经有了这个,但最终我的背景中间有一个白色矩形。

screen = pygame.display.set_mode(1280, 512)

screen.blit(background, (0,0))

while True:   
    pygame.display.flip() #flip is same as update
    for event in pygame.event.get():
        if (event.type == pygame.KEYDOWN):        
            if event.key == pygame.K_SPACE:
                screen.blit(player, (x, y))
            if event.key == pygame.K_BACKSPACE:
                pygame.draw.rect(screen, [255,255,255], (x, y, 62,62))

您在这里基本上可以做两件事。您可以走简单的路线,然后重新绘制背景......

if event.key == pygame.K_BACKSPACE:
   screen.blit(background, (0,0))

或者,如果您希望效率更高一点,可以让 blit 方法仅绘制玩家图像覆盖的背景部分。你可以这样做...

screen.blit(background, (x, y), pygame.Rect(x, y, 62, 62))

第三个参数中的 Rect 将导致 blit 仅绘制位于图像上位置 x,y 的“背景”的 62x62 像素部分。

当然,这假设玩家图像始终位于背景内。如果玩家图像仅部分重叠背景,我不完全确定会发生什么。它可能会抛出异常,或者它会绕到图像的另一侧。

实际上,如果这是一个相当小的项目,第一个选项应该没问题,但如果您出于某种原因担心性能,请尝试第二个选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pygame 擦除背景上的图像 的相关文章

随机推荐

  • 返回 true 或 false 或抛出异常 [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 java version 1 7 0 75 Hello 只是想知道比较以下两个函数的首选最佳实践是什么 第一个抛出 NullPointerException 应在调用函数中捕获该异常 如果
  • 如何在 Android 中的视图上收听双击? [复制]

    这个问题在这里已经有答案了 我想检测一个doubletap在视图上 例如button 然后知道它是哪个视图 我见过这个类似的问题但他们说这是重复的问题似乎并没有回答我的问题 我所能做的一切find是添加一个GestureDetector到活
  • onActivityResult 的intent.getPath() 没有给我正确的文件名

    我正在尝试以这种方式获取文件 final Intent chooseFileIntent new Intent Intent ACTION GET CONTENT String mimetypes application pdf choos
  • 模拟单元测试引发“停止调用未启动的修补程序”错误

    当运行下面的测试时 我得到了stop called on unstarted patcher def test get subvention internal no triggered admission self billing clus
  • 从 SQLite 获取 int 值

    我听说使用sqlite3 prepare v2代替sqlite exec从数据库获取整数 但我找不到任何示例 This页面也没有帮助 现在我从数据库获取字符串 所以我需要用atoi这似乎是缓慢且无效的 SO 上有很多类似的问题 但它们都是关
  • 在java中查找字符串中第n次出现的子字符串?

    我有一个字符串 它是 html 页面的完整内容 我试图找到第二次出现的索引 有人对如何实现这一目标有任何建议吗 这是一个有趣的镜头 public static int findNthIndexOf String str String nee
  • OpenGL ES 2.0 推荐的练习环境?

    我决定学习一些 OpenGL ES 2 0 并尝试为其选择一个练习平台 可能的目标平台可能是 Android iPhone 或 WebGL 但我不想花费太多时间和精力来正确设置环境 您会推荐 WebGL 来快速开始 OpenGL ES 2
  • iOS 7 XCode 5 Storyboard 将方向设置为横向

    我已将项目设置中允许的方向设置为仅横向 现在我想在故事板上进行设计 但故事板是纵向的 我只支持横向 所以我尝试使故事板面向横向 我转到模拟指标 但我没有看到任何说 方向 的东西 只是ViewController 的东西 如布局 扩展边缘 过
  • Numpy 的 FFT 与 Intel MKL

    Running numpy fft fft np eye 9 norm ortho 导致TypeError fft got an unexpected keyword argument norm 我正在使用 Intel MKL 运行 Num
  • 如何按日期对数组中的项目进行分组?

    给定以下对象数组 notes Game was played time 2017 10 04T20 24 30 00 00 sport hockey owner steve players 10 game id 1 notes Game w
  • Python 程序如何确定它正在哪个内核上运行?

    我需要调试一个使用以下命令的 Python 3 程序multiprocessing module 我想跟踪 多核机器的 哪些核心正在使用以及如何使用 Q 我正在寻找一种方法让 Python 代码确定哪个核心正在运行它 我发现的最接近的是使用
  • Bug:无法使用 JDK 8 启动 NetBeans 7.3

    I have NetBeans 7 3我将 JDK 升级为1 8 现在我尝试打开 NetBeans 并得到Loading Cached Objects加载窗口上显示消息 然后 NetBeans 终止 我收到以下异常 可在 var log m
  • 如何检查成员函数是否有 const 重载?

    可以说我有 struct foo void ham void ham const struct bar void ham 假设我有一个模板化函数 我可以判断给定类型是否具有 const 重载ham With define DEFINE HA
  • 使用 homebrew 安装 graphviz 时出现 tclstub 问题

    尝试安装 graphviz 时 Homebrew 退出 CCLD libtcldot builtin la ld library not found for ltclstub8 6 clang error linker command fa
  • 在 SQL Server 中存储季度和年份的最佳方式?

    在数据库中存储季度和年份的最佳方式是什么 我有付款表 我需要指定季度 年度 以便很容易知道付款是在哪个季度进行的 我在想 a 在每次付款中添加两个 int 列b 添加另一张表并添加最多 5 年的可能值 然后使用 ID 将该表与付款表连接起来
  • 返回并调用列表中的对象 (ANGULAR.js)

    在此示例中 我根据文本字段是否是 beast 和 或 color 的值返回一个字符串 但这只是返回一个字符串 我会在有对象的两种情况下返回 http plnkr co edit fSut1gqIKFAEej8UdbmE p preview
  • 从字符串内部引用关联数组?

    CREATE TABLE IF NOT EXISTS tables users 有效但是 CREATE TABLE IF NOT EXISTS tables users 才不是 我不想这样做 usersTable tables users
  • 带有 css 的阿拉伯语 HTML 布局方向

    要将文本方向更改为从右到左 我们需要使用以下 CSS 代码 direction rtl displays text direction as right to left css 有没有办法将整个页面布局方向从右到左反转 包括列表 只要整个文
  • 反应式扩展中的递归/扇出

    我正在尝试拼凑一个 Rx 管道 其工作原理如下 我编写了一个函数 它接受 IObservable 为我提供包含有关公司信息的配置文件 我并行查询各种数据源以查找可能相关的公司简介 我将其合并到单个 IObservable 的公司简介中 当我
  • Pygame 擦除背景上的图像

    您将图像传输到表面上以用作背景 然后按 X 按钮在同一表面上复制图像 如何删除图像 到目前为止我已经有了这个 但最终我的背景中间有一个白色矩形 screen pygame display set mode 1280 512 screen b