无论哪一种编程语言,实现图形界面程序的方法都大同小异。本讲介绍用Python开发小游戏的方法,从中学习使用Python编写图形界面的程序,图形图像的基础知识,以及在图形界面程序中与用户交互。最后部分还将学习使用版本管理工具下载他人的代码。
14.1 图形化应用程序
之前学习过的程序都相对简单:程序顺序执行,如图14.1左侧流程图所示,程序用字符显示输出信息。而带窗口界面的程序,无论是工具界面(如记事本),还是图像界面(如游戏),程序都包括三部分:
- 初始化 初始化界面绘制模块,设置窗口属性(如:长、宽)、做装载图片和声音文件等准备工作。
- 主循环 主循环等待接收用户输入的信息(鼠标或键盘输入),并对用户输入做出反馈(在界面上显示)。同时不断执行程序(如推进游戏过程)。
- 退出 退出程序关闭已打开的窗口、释放申请的资源等等。
带界面的程序启动后一直运行,直到用户关闭窗口或者在界面上选择退出时程序结束,如图14.1右侧流程图所示。
14.2 绘图区域
在电脑或者手机设备上显示的图片是由MxN个点组成的,其中的每一个点也叫做像素。每个像素大小一致,颜色不同。描述颜色的方法也有很多,在计算机中最常用红(RED)、绿(GREEN)、蓝(BLUE)描述一个像素点的颜色,它们分别代表每种颜色的亮度,也称为RGB。
Python编程时,颜色常写成含有三个元素的元组,如(0,0,0)的RGB三个值都为0不发光,即黑色,而(255,255,255)三个值都为其最大值255最强光,即白色。255是用8位二进制数所能描述的最大值,也就是说每一位颜色用一个字节(8位)表示,一般3个字节描述一个像素点,有时也用四个值描述,如(255,255,255,255),前三位是颜色,最后一位是透明度,透明度的范围也是0-255,255为不透明,0为完全透明。
Python编程时,一般将窗口作为画布绘图,窗口左上角位置为 (0,0),横坐标在前,纵坐标在后,越向右侧横坐标值越大,越向下纵坐标值越大。横向常用x表示,纵向常用y表示,即(x,y),如图14.2所示。
注意:起始坐标从0开始,而不是1。
图中的颜色区域被描述为 (4,2,3,2),依次是起始横坐标4,起始纵坐标2,宽度3,高度2。
14.3 Pygame
在Python环境下编写游戏比较简单,三方库pygame是常用的P