您好,如图代码,为何向右移到边界还会继续移动呢

您好,如图代码,为何向右移到边界还会继续移动呢

您好,如图代码,为何向右移到边界还会继续移动呢,上下左已经有效,向右注释中代码有效。

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好:

http://img1.sycdn.imooc.com//climg/5e8c63200972387005240384.jpg

该代码中是说如果飞机的右边界小于等于0时将飞机的右边界与游戏界面左边距设为0。而前面的move_left()中已经写过当飞机的左边界与游戏界面左边距小于等于0时将飞机的左边界与游戏界面左边距设为0,因此飞机在最左的情况下是飞机的左边界与游戏界面左边界重合,如下图,不可能达到飞机右边界与游戏界面左边距距离小于等于0:

http://img1.sycdn.imooc.com//climg/5e8c648909ff483d04790715.jpg

http://img1.sycdn.imooc.com//climg/5e8c64ec092a49c405860116.jpg

而像上图红框中这样写,是如果飞机的左边界大于等于游戏界面的宽减去飞机自身的宽时,将飞机的左边距设置为游戏界面的宽减去飞机自身的宽。或者我们也可以用飞机右边界来写,如下:

http://img1.sycdn.imooc.com//climg/5e8c660709a11d1e04460116.jpg

http://img1.sycdn.imooc.com//climg/5e8c69cf098ae6b205290589.jpg

如果解决了你的疑惑,请采纳,祝学习愉快~ 


好帮手慕觉浅 2020-04-07 17:41:57

同学你好:可以提供一下截图和代码吗?

  • 提问者 慕容2143661 #1
    不好意思,代码如下,只有move_right有问题 def move_up(self): """向上移动,超出范围之后,拉回来""" super(OurPlane, self).move_up() if self.rect.top <= 0: self.rect.top = 0 def move_down(self): """向下移动,超出范围之后,拉回来""" super(OurPlane, self).move_down() # if self.rect.bottom >= self.height: # self.rect.bottom = self.height if self.rect.top >= self.height - self.plane_height: self.rect.top = self.height - self.plane_height def move_left(self): """向左移动,超出范围之后,拉回来""" super(OurPlane, self).move_left() if self.rect.left <= 0: self.rect.left = 0 def move_right(self): """向右移动,超出范围之后,拉回来""" super(OurPlane, self).move_right() # if self.rect.left >= self.width - self.plane_width: # self.rect.left = self.width - self.plane_width if self.rect.right <= 0: self.rect.right = 0
    2020-04-07 18:41:53
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师