You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Brython移动图片时背景跟随问题的修复咨询

Brython移动图片时背景跟随问题的修复咨询

嘿,我完全懂你现在的困扰——移动小马的时候它居然拖着一块从原位置“抠”下来的背景框一起走,这效果肯定和你预想的不一样!咱们来快速搞定这个问题。

问题出在哪?

你现在的代码里,每次移动小马都先执行remove(pony)再add(pony),但在CodeHS的Brython运行环境里,这种操作会导致小马原来的位置没有被底层的城堡背景及时重绘,看起来就像是小马带着一块背景框在移动。而且其实完全没必要每次移除再重新添加图片,这才是问题的核心所在。

修复后的完整代码

你只需要修改move_pony函数,删掉多余的移除和添加步骤就可以了,完整代码如下:

set_size(500,400)

castle = Image("https://codehs.com/uploads/7870869b7f83173c85a485528fe3f558")
castle.set_size(get_width(),get_height())
castle.set_position(0,0)
add(castle)

pony = Image("https://codehs.com/uploads/531804f0be469050b7b3960871112b83")
pony.set_size(100,100)
pony.set_position(get_width()-150 ,275)
add(pony)

def move_pony(event):
    # 删掉多余的remove和add,直接移动即可
    if event.key == "ArrowRight":
        pony.move(5, 0)
    if event.key == "ArrowLeft":
        pony.move(-5, 0)

add_key_down_handler(move_pony)

为什么这样改就有效?

  • 小马已经被添加到画布上了,直接调用pony.move()方法就会自动更新它的位置,CodeHS的系统会自动用底层的城堡背景覆盖小马原来的位置,不会留下奇怪的背景框。
  • 去掉remove(pony)和add(pony)这两步,就避免了重复操作元素导致的画布刷新异常,小马就能干净利落地左右移动啦。

你直接替换代码试试,保证这次只有小马自己乖乖跑,再也不会拖着背景框啦!

备注:内容来源于stack exchange,提问作者user3321023

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 09:28:05