本章学习如何随着时间的推移在屏幕上的不同位置绘制图像以创建动画。
Pygame 模块使编写游戏或动画更快,因为它拥有数百个函数。
编程挑战:
#1,颜色变化的点
选择自己的颜色用于程序,在屏幕上的不同位置绘制较大一点或较小一点的点。最后,尝试针对3个颜色分量中的每一个使用random.randint(0,255),来创建一个随机的RGB颜色(记住,在程序的开始处使用import random),以便每次在屏幕上绘制的时候,点都会改变颜色。程序的效果是一个颜色变化的点。
效果图:
#2:100个随机点
用 100个随机的颜色、大小和位置的点来替换单个的点。为了做到这一点,我们要设置3个数组,每个数组能存储100个值,分别用于表示每一个点的颜色、位置和大小。然后,用随机值填充RGB颜色、位置对以及大小/半径值,以用于 100个随机的点。最后,添加一个for循环,使用colors\locations和sizes数组来绘制100个随机的点,而不是在while循环中绘制一个点
效果图:
#3:雨点:
编写出落出到屏幕右下方以外然后又不断从屏幕左上方再次出现的“雨点”。我们将每个雨点的位置存储在一个locations数组中,因此,如果修改每个点的x和y坐标,就可以实现点的动画。
根据前一个值来计算每个点的新的x和y坐标:
locations[n] = (new_x,new_y)# 修改圆位置
这些代码会在每次经过游戏循环的时候针对每个点计算新的x和y坐标(new_x和new_y),但是,它允许点落出屏幕的右下方。我们检查每个点的new_x或new_y已经超出了屏幕的右边缘或下边缘,如果是这样的话,在存储新的位置之 前,将点重新移回到上方或左方,来修正这一点
ifnew_x >800:# 如果超出右边
new_x -=800# 显示在左边
ifnew_y >600:# 如果超出底边
new_y -=600# 显示在顶边
这组代码的效果是,随机的雨点总是落向下方和右方,从屏幕的右下方消失,然后再次从左上边出现。
完整代码:
效果图:
领取专属 10元无门槛券
私享最新 技术干货