注:图中标识的1,2,3,4 就是所指向的那一行代码,上面是本人的正确代码

解决办法:书上的代码内容顺序是1代码在2代码的前面,其实只要把1代码放到2代码后面就可以解决靠边的问题

飞船初始靠边原因:1在2前面 那么执行顺序就是 先执行1 将float(self.rect.x)的值赋值给self.x,由于刚开始self.rect.x默认值是0,所以此时self.x = 0,然后再运行2代码(self.rect.midbottom = self.screen_rect.midbottom)执行这行代码就是为了让飞船居中,self.rect.midbottom的值其实本质就是设置self.rect.x和self.rect.y(就像设置self.rect.x为屏幕宽度的一半,然后self.rect.y为整个屏幕的高度,这样就会产生底部居中的效果) 书上这句话是起作用了,此时的self.rect.x 应该大致等于屏幕的宽度的一半,飞船也是居中状态的,但是由于主程序中while True一开始就一直循环,所以一开始运行程序时就会立马走到4代码执行updateShip方法 然后由于3代码是在两个if语句之外的所以不用判断就会立即执行self.rect.x = self.x 此时由于没有触发任何事件,所以self.x没有被重新赋值所以 还是0 ,3代码就把self.x = 0 赋值给了self.rect.x (就是这里覆盖了2代码给他赋予的居中的值,由于代码运行速度很快瞬间就替换了居中的值,所以就会出现一开始靠边的效果), x=0 所以飞船在最左边

而1放在2后面能成功的原因就是刚刚上面说的2中的midbottom代码赋值能改变self.rect.x的值让其变为屏幕宽度的一半,那么此时在执行1代码self.x = float(self.rect.x) 中的self.rect.x就不在是0 而是屏幕宽度的一半,self.x的值就变为了屏幕宽度的一半,所以此时再运行代码就和上面情况一样但是不同的是self.x的值不再是0 而是屏幕宽度的一半所以进行3代码时赋值的不是0 而是屏幕一半k宽度从而居中

加油!

Python 编程从入门到实践 第十二章 飞船开始游戏时靠着边界的问题解决办法相关推荐

  1. 《Python编程从入门到实践》外星人入侵游戏——添加 飞船 图片和外星人 图片,素材

    <Python编程从入门到实践>在本书里学到的.本篇主要介绍该游戏中所需要的两个图片.分别为飞船和外星人图片. 1.首先去到 http://www.ituring.com.cn/book/ ...

  2. python课本第三章答案idle_第三天任务 (【基于Python编程从入门到实践】第三章 列表 书本及动手试一试)...

    3.1列表什么是列表 列表是由 一系列特定顺序排列的元素组成的 用方括号[]来表示列表 并用逗号来分隔其中的元素 访问列表元素 索引指定访问的列表元素 使用列表中的各个值 3--1 动手试一试 3.1 ...

  3. 《Python编程从入门到实践》第10章文件和异常动手试一试答案(附代码)

    目录 10-3 访客 10-4 访客名单 10-6 加法运算 10-7 加法计算器 10-8 猫和狗 10-9 沉默的猫和狗 10-3 访客 #!/usr/bin/env python # -*- c ...

  4. 《Python编程从入门到实践》第9章类动手试一试答案(附代码)

    目录 9-1(9-2) 餐馆 9-3 用户 9-4 就餐人数 9-5 尝试登陆次数 9-6 冰淇淋小店 9-7 管理员 9-8 权限 9-10 导入Restaurant类 9-11 导入Admin类 ...

  5. 《Python编程从入门到实践》_第二章_变量和简单数据类型

    什么是变量 举例: >>> message = "Hello,Python!" >>> print (message) Hello,Python ...

  6. 《Python编程从入门到实践》第五章414

    5-1 条件测试 5-2 更多的条件测试 5-3 外星人颜色 #1 5-4 外星人颜色 #2 5-5 外星人颜色 #3 5-6 人生的不同阶段 5-7 喜欢的水果 5-8 以特殊方式跟管理员打招呼 5 ...

  7. 《Python编程从入门到实践》第六章

    第六章开始把一些需要注意的点写进注释里了. #在2020.10.23至2020.10.25结束之前完成第六章的学习 alien_0 = {'color':'green','points':5} pri ...

  8. Python编程-从入门到实践 Chapter19 第19章 创建用户账户的坑

    这次的坑在登录页面的19.2.2小节 书中代码略 书中代码转换成Django2.0版本如下: """为应用程序users定义URL模式""" ...

  9. python编程从入门到实践,第七章练习题

    7-1 汽车租赁 :编写一个程序,询问用户要租赁什么样的汽车,并打印一条消息,如"LetmeseeifIcan find you a Subaru". cat=input(&quo ...

最新文章

  1. CF525D Arthur and Walls
  2. SQL Server 数据库维护脚本合集[005]-删除数据库所有用户表
  3. 就两本书?还能吊起相扑选手?
  4. 7价 半导体掺杂_天津大学封伟团队:新型半导体二维原子晶体锗硅烷材料的带隙调控...
  5. 在线ajax测试,在线测试 - SosoApi,简单强大的api接口文档管理平台
  6. 用层进表面预测来重建三维物体
  7. caffe学习笔记(2)
  8. Windows平台下sbt的安装设置
  9. 思考、学习新技术的原则和方式
  10. C++局部重载new delete方法剖析
  11. python填充颜色规则_Python填充任意颜色,不同算法时间差异分析说明
  12. S5PV210 Uboot开发与移植03:Uboot启动流程详解
  13. Prism 文档 第三章 管理组件之间的依赖关系
  14. sysbench压测cpu,io,memory,threads,mutex
  15. android 拨号隐藏号码,技巧:手机隐藏代码大集合 知道五个以上是大神
  16. 【Java二十周年】十年,二十年
  17. 北斗垂莽苍 开闭天门路(上)
  18. linux编译mmplay,mplay编译与移植
  19. 七大行星排列图片_太阳系九大行星排列顺序(口诀:水金地,火木土,天海)...
  20. win10重装应用商店

热门文章

  1. 数字图书是计算机技术,计算机技术在数字图书馆的运用
  2. linux修改硬件系统时间,Linux修改日期、时间,系统与硬件时间
  3. 的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  4. SAM Segment Anything
  5. SAM大模型遥感领域测评
  6. Shader Graph18-反射、折射函数
  7. WordPress下拉加载插件Infinite Scroll之手动点击加载实现
  8. [L1 - 5分合集]种钻石
  9. 00后小码农的人生感慨 —— 2021年度总结
  10. 借力大数据开拓中国市场 新加坡国家旅行馆入驻蚂蜂窝