动态背景的实现原理还是和以前一样。
前面的文章有介绍
https://blog.youkuaiyun.com/hailler1119/article/details/88911974
为了个整个项目配套搭建,还是一步一步介绍一下。
因为很多地方要用到pygame.math.Vector2D 这个类,它
提供两个数字,对应与坐标x,y刚好,能进行加减乘除运算,能进行角度计算等,十分实用,就直接在setting.py里简化了成了vect
创建一个背景的sprite类,从上往下滚动背景图,要实现第二张图的对接,需要传递一个坐标参数,用了一张上下连在一起可以无缝对接的图,如果要实现多种图的连续,需要把图存在一个images[] list类型里,全局变量,传递图片index和pos俩个参数也能实现。
用spite类,必须实现精灵类的初始化和设置 self.image self.rect 这两个变量。
用到层的概念,在添加两个
self._layer = -1
层的 赋值是int就行,背景图的一般在底层,其他的图基本都覆盖在它上面,所以设置成 -1,其他sprite图只要是正数就肯定不会被它覆盖了。
self.groups = allgroup, backgroundgroup #(顺序随意)
背景的组 属于 allgroup和backgroundgroup,相当于在allgroup和backgroundgroup两个组里添加(add)了这个类,以后只要调用all