Python 编程从入门到实践 第十二章 飞船开始游戏时靠着边界的问题解决办法
注:图中标识的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 编程从入门到实践 第十二章 飞船开始游戏时靠着边界的问题解决办法相关推荐
- 《Python编程从入门到实践》外星人入侵游戏——添加 飞船 图片和外星人 图片,素材
<Python编程从入门到实践>在本书里学到的.本篇主要介绍该游戏中所需要的两个图片.分别为飞船和外星人图片. 1.首先去到 http://www.ituring.com.cn/book/ ...
- python课本第三章答案idle_第三天任务 (【基于Python编程从入门到实践】第三章 列表 书本及动手试一试)...
3.1列表什么是列表 列表是由 一系列特定顺序排列的元素组成的 用方括号[]来表示列表 并用逗号来分隔其中的元素 访问列表元素 索引指定访问的列表元素 使用列表中的各个值 3--1 动手试一试 3.1 ...
- 《Python编程从入门到实践》第10章文件和异常动手试一试答案(附代码)
目录 10-3 访客 10-4 访客名单 10-6 加法运算 10-7 加法计算器 10-8 猫和狗 10-9 沉默的猫和狗 10-3 访客 #!/usr/bin/env python # -*- c ...
- 《Python编程从入门到实践》第9章类动手试一试答案(附代码)
目录 9-1(9-2) 餐馆 9-3 用户 9-4 就餐人数 9-5 尝试登陆次数 9-6 冰淇淋小店 9-7 管理员 9-8 权限 9-10 导入Restaurant类 9-11 导入Admin类 ...
- 《Python编程从入门到实践》_第二章_变量和简单数据类型
什么是变量 举例: >>> message = "Hello,Python!" >>> print (message) Hello,Python ...
- 《Python编程从入门到实践》第五章414
5-1 条件测试 5-2 更多的条件测试 5-3 外星人颜色 #1 5-4 外星人颜色 #2 5-5 外星人颜色 #3 5-6 人生的不同阶段 5-7 喜欢的水果 5-8 以特殊方式跟管理员打招呼 5 ...
- 《Python编程从入门到实践》第六章
第六章开始把一些需要注意的点写进注释里了. #在2020.10.23至2020.10.25结束之前完成第六章的学习 alien_0 = {'color':'green','points':5} pri ...
- Python编程-从入门到实践 Chapter19 第19章 创建用户账户的坑
这次的坑在登录页面的19.2.2小节 书中代码略 书中代码转换成Django2.0版本如下: """为应用程序users定义URL模式""" ...
- python编程从入门到实践,第七章练习题
7-1 汽车租赁 :编写一个程序,询问用户要租赁什么样的汽车,并打印一条消息,如"LetmeseeifIcan find you a Subaru". cat=input(&quo ...
最新文章
- CF525D Arthur and Walls
- SQL Server 数据库维护脚本合集[005]-删除数据库所有用户表
- 就两本书?还能吊起相扑选手?
- 7价 半导体掺杂_天津大学封伟团队:新型半导体二维原子晶体锗硅烷材料的带隙调控...
- 在线ajax测试,在线测试 - SosoApi,简单强大的api接口文档管理平台
- 用层进表面预测来重建三维物体
- caffe学习笔记(2)
- Windows平台下sbt的安装设置
- 思考、学习新技术的原则和方式
- C++局部重载new delete方法剖析
- python填充颜色规则_Python填充任意颜色,不同算法时间差异分析说明
- S5PV210 Uboot开发与移植03:Uboot启动流程详解
- Prism 文档 第三章 管理组件之间的依赖关系
- sysbench压测cpu,io,memory,threads,mutex
- android 拨号隐藏号码,技巧:手机隐藏代码大集合 知道五个以上是大神
- 【Java二十周年】十年,二十年
- 北斗垂莽苍 开闭天门路(上)
- linux编译mmplay,mplay编译与移植
- 七大行星排列图片_太阳系九大行星排列顺序(口诀:水金地,火木土,天海)...
- win10重装应用商店