#在飞船的属性x中存储小数值
self.x = float (self.rect.x)
#根据self.x更新rect对象
self.rect.x = self.x
如果说这个是因为只能存储整数值 那为什么后面子弹以整数速度去运动的也要这么写
self.settings.bullet_speed = 1.0
self.y -= self.settings.bullet_speed
self.rect.y = self.y
大概是因为,让3行代码变成2行?没有具体代码,也就只能看出来这点了
f = float(self.rect.x)
self.x = f
self.rect.x = f
因为计算要用保留小数,所以要转换为浮点型数据,便改了个名字self.rect.x,至于后面又把名字还回去是因为更新飞船的位置需要用到的是self.rect.x
作为初学者也想了很久。rect.x 只能保留int 整数,而设定的速度是浮点数,所以用另一个变量self.x 来储存浮点数。self.rect.x = self.x 仍旧是以整数返回给self.rect.x。 换句话说船是以2-1-2-1-2-1 的速度行驶的,只是因为帧率够大,肉眼看不出来,肉眼看到的是匀速运动。把帧率调整到1,就能很清楚的看到船是快-慢-快-慢的行动了。