|
昨日阅读3 h,累计 240.5 h
<Python编程:从入门到实践>
=====================
修改程序,允许右箭头键不断移动:
在ship.py中修改Ship类,即增加一个属性moving_right,缺省默认为False,但按下右箭头键时,设置为True
玩家按住右箭头键不放,直到检测到pygame.KEYUP事件,重新赋值moving_right为False
在__init__(self, screen)中添加标志:
self.moving_right = False
在def update(self): 中
根据 self.moving_right 判断为True,则 self.rect.centerx += 1
对应地,修改game_functions.py中的check_events(ship):
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
ship.moving_right = True
elif event.type == pygame.KEYUP:
if event.key == pygame.K_RIGHT:
ship.moving_right = False
对应的,增加左方向键控制(与右方向键类似)
请注意这里有时候用if 和if 来判断左右方向键,有时候,却用elif来做下一个判断,这里有细微的差别
主要在于玩家有可能同时按左右方向键,逻辑上可能需要仔细考虑。
调整飞船速度,限制飞船的移动距离,避免它移动到屏幕外面去
所有的设定,都在Settings类中处理,因此可以在其中添加一个ship_speed_factor,用于控制非常的速度,
即反映到每次循环时最多移动多少距离。
在Settings类的__init__(self)中,添加属性: self.ship_speed_factor = 1.5
设置为小数,有助于增加调整的精度
Ship类中做相应修改(因为最初,Ship类的Update方法,self.centerx是一个整数)
由于在Settings中增加了一个属性来表达飞船的移动距离(小数),因此在__init__中要增加一个设置类
因此主程序中,实例化Ship类时,需要修改其初始化变量
限制飞船的活动范围:飞船当前由于没有做限制,可以移动到屏幕外面去,这显然是不允许的。
修改Ship类的方法update():
"""根据移动标志调整飞船的位置"""
# 更新飞船的center值,而不是rect
if self.moving_right and self.rect.right < self.screen_rect.right:
# self.rect.centerx += 1
self.center += self.ai_settings.ship_speed_factor
if self.moving_left and self.rect.left > 0 :
# self.rect.centerx -= 1
self.center -= self.ai_settings.ship_speed_factor
即只需要增加飞船移动的限制条件,即可达到要求
至此,在底部左右移动飞船已圆满解决。(调试好整个代码,体会整个编写和重构过程,收获良多。。。!)
=========================
Blockchain:
164. 另几个提供验证服务的项目:Virtual Notary,Bitnotar和Chronobit
165. Monegraph:在线图片保护(一个区块链3.0应用项目)
目前免费,这是一个区块链的智能资产应用案例
不同于Shutterstock和GettyImages这样的图片存储和图片库网站,它应该是一个互补的服务
166. 另一个和数字艺术以及版权保护相关的项目是Ascribe,目标是提供一个针对知识产权信息库的底层基础架构。
167. 全自动的数字资产证明:今后,通过区块链信息库形式的数字资产保护,可能会成为数字资产保护自动支持的标准化功能。
批量公证将成为区块链的基础设置(区块链可能会成为互联网的第五次浪潮)
168. 作者个人对区块链的思考
进一步推测较为遥远的未来,区块链技术自动计算账本的概念,量子级追踪设备,能够扩展到另一个记录保存和管理的类别。可能出现个人思想链,作为生活日志记录和备份机制。
区块链技术+人体内连接器:能让一个人的全部思想通过标准化压缩数据格式进行编码(可通过大脑皮层进行记录,脑电图,大脑/计算机接口,认知纳米机器人和其他方式捕获。
即:思想被区块链实例化(所有个人主观经验,尤其是最终意识,都将能被精确定义
他们在区块链上,不同的部分可以被管理和交换(例如,用于中风后的记忆恢复)
(窃以为,这个貌似细思极恐,若思想轨迹,乃至思想本身都被控制,那世界会怎样?)
==========================
昨日阅读3 h
累计 240.5 h
|