图形之让球翻转,,


  让球翻转

  现在来看让球一直移动的第二种选择,不是让它在屏幕边界反弹,而是让它翻转,这表示,球在屏幕右边界消失时,又会在左边界重新出现。

  为了让问题更简单一些,我们先来看只是水平移动球的情况,程序见代码清单16-17.

  与孩子一起学编程-python教程

  第17行(ifx>screen.get_width():)和第18行(X=0)中,我们检查球什么时候达到窗口的右边界,并把它移回(或者翻转)到左边界。

  你可能注意到了,球在右边出现时,它会“突然跳到”【0,50】,可能更自然的做法是从屏幕后面“滑入”,把第18行(X=0)改为X=90,再看看是不是有差别。

  你学到了什么

  哇!这一章内容真多!在这里,你学习了以下内容。

  如何使用Pygame

  如何从SPE运行程序

  如何创建图形窗口并在其中画一些形状

  如何设置计算机图片中的颜色

  如何把图像复制到图形窗口

  如何完成图像动画,包括将图像移动到新位置时还要从原位置“擦掉”

  如何让沙滩球在窗口中“反弹”

  如何让沙滩球在窗口中“翻转”

  测试题

  1、 RGB值【255,255,255】会得到什么颜色

  2、 RGB值【0,255,0】会得到什么颜色

  3、 使用哪个Pygame方法来画矩形?

  4、 使用哪个Pygame方法来画线将多个点连接在一起?

  5、 “像素”是什么意思

  6、 在Pygame窗口中,位置【0,0】在哪里?

  7、 如果Pygame窗口宽为600像素,高为400像素,下图中哪个字母位于位置【50,200】?

  与孩子一起学编程-python教程

  8、 图中哪个字母位于位置【300,50】?

  9、 使用哪个Pygame方法可以将图像复制到表面(如显示表面)?

  10、“移动”一个图像或完成动画时有哪两个主要步骤?

  动手试一试

  我们讨论了画圆和矩形。Pygame还提供了一些方法来画直线、弧、椭圆和多边形,试着在程序中使用这些方法画一些其他形状。可以在Pygame文档中了解这些方法的更多信息。如果你不能上网,在你的硬盘上也可以找到这个文档(已经随Pygame安装),但可能很难找到,可以搜索硬盘寻找一个名为Pygame_draw.html的文件。

  也可以Python的帮助系统(我们在第6章的最后讨论过)。有一点是SPE做不到的,它没有提供一个交互shell,所以要启动IDLE,键入下面的命令。

  与孩子一起学编程-python教程

  你会得到一个列表,其中会列出不同的绘制方法以及每种方法的一些解释,

  试着修改使用沙滩球图像的示例程序,来使用不同的图像,可以在examplesimages文件夹中找到一些示例图像,或者可以下载或自己画图像,还可以使用数码照片。

  试着改变代码清单16-16或代码清单16-17中的X_speed和y_speed值,让球移动得更快或更慢,并在不同方向上移动。

  试着修改清单16-16到代码清单16-10中(现代艺术、正弦曲线和神秘图片程序),试着把pygame.display.flip代码行移到while循环中,为此,只需要加4个空格缩进,在这行代码后面(仍然在while循环内部),用下面这行代码增加一个延迟,看看会发生什么:pygame.time.delay(30)

评论关闭