pygame学习笔记(1):矩形、圆型画图实例


Posted in Python onApril 15, 2015

pygame是一个设计用来开发游戏的python模块,其实说白了和time、os、sys都是一样的东东。今天开始正式学习pygame,下载地址:www.pygame.org。下载后安装完成即可,在pygame的学习中,我使用了spe编辑器,感觉还不错。

1、pygame窗口

pygame绘制图形前,首先需要建立一个窗口,说来很简单,请看下面的代码,怎么样,是不是很简单。

import pygame  #这句不用注释了吧,呵呵

pygame.init()  #模块初始化,任何pygame程序均需要执行此句
screencaption=pygame.display.set_caption('hello world')#定义窗口的标题为'hello world'

screen=pygame.display.set_mode([640,480]) #定义窗口大小为640*480

screen.fill([255,255,255])#用白色填充窗口

2、窗口退出

pygame有一个事件循环,不断检查用户在做什么。事件循环中,如何让循环中断下来(pygame形成的窗口中右边的插号在未定义前是不起作用的),常用的代码如下:

while True:

    for event in pygame.event.get():

        if event.type==pygame.QUIT:

            sys.exit()
           
3、pygame中的颜色

在screen.fill([255,255,255])这一语句中,已经看出,pygame使用的是RGB系统。纯绿色用[0,255,0],纯蓝色用[0,0,255],纯红色用[255,0,0]。如果不使用RGB记法,pygame还提供了一个命名颜色列表,也可以直接使用这些命名颜色。定义好的颜色句有600多个,可以在colordict.py文件中查看具体名称。使用命名列表时,首先要在程序最前面导入THECOLORS。

from pygame.color import THECOLORS
然后使用某个命名颜色:

pygame.draw.circle(screen,THECOLORS["red"],[100,100],30,0)

4、圆形

pygame.draw.circle()用来画圆形,具体包括五个参数:(1)画圆的表面,在本例中用screen创建了一个窗口,所以是画在screen表面上。(2)用什么颜色来画,如用红色[255,0,0]。(3)在什么位置画,[top,left]。(4)直径。(5)线宽,其中0表示完成填充。

pygame.draw.circle(screen,[255,0,0],[100,100],30,0)

5、矩形
pygame.draw.rect()用来创建一个矩形。Rect(left,top,width,height)用来定义位置和宽高,具体代码如下:
pygame.draw.rect(screen,[255,0,0],[250,150,300,200],0)

也可以用下面的定义方法
rect_list=[250,150,300,200]

pygame.draw.rect(screen,[255,0,0],rect_list,0)

或者
my_rect=pygame.Rect(250,150,300,200)

pygame.draw.rect(screen,[255,0,0],my_rect,0)

6、实例

利用random模块随机生成大小和位置在表面上绘画,具体代码如下:

import pygame,sys

import time

import random
pygame.init()

screencaption=pygame.display.set_caption('hello world')

screen=pygame.display.set_mode([640,480])

screen.fill([255,255,255])

for i in range(10):

    zhijing=random.randint(0,100)

    width=random.randint(0,255)

    height=random.randint(0,100)

    top=random.randint(0,400)

    left=random.randint(0,500)

    pygame.draw.circle(screen,[0,0,0],[top,left],zhijing,1)

    pygame.draw.rect(screen,[255,0,0],[left,top,width,height],3)
pygame.display.flip()

while True:

    for event in pygame.event.get():

        if event.type==pygame.QUIT:

            sys.exit()

           

效果图:

pygame学习笔记(1):矩形、圆型画图实例

Python 相关文章推荐
Python科学计算之Pandas详解
Jan 15 Python
Python标准模块--ContextManager上下文管理器的具体用法
Nov 27 Python
python 对key为时间的dict排序方法
Oct 17 Python
Python读取csv文件分隔符设置方法
Jan 14 Python
解决python中画图时x,y轴名称出现中文乱码的问题
Jan 29 Python
Python求均值,方差,标准差的实例
Jun 29 Python
pygame实现烟雨蒙蒙下彩虹雨
Nov 11 Python
Python 实现递归法解决迷宫问题的示例代码
Jan 12 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
Mar 24 Python
基于Python实现天天酷跑功能
Jan 06 Python
python 列表推导和生成器表达式的使用
Feb 01 Python
python实现过滤敏感词
May 08 Python
Python远程桌面协议RDPY安装使用介绍
Apr 15 #Python
在Gnumeric下使用Python脚本操作表格的教程
Apr 14 #Python
使用Python构建Hopfield网络的教程
Apr 14 #Python
使用C语言扩展Python程序的简单入门指引
Apr 14 #Python
在Python中封装GObject模块进行图形化程序编程的教程
Apr 14 #Python
用PyQt进行Python图形界面的程序的开发的入门指引
Apr 14 #Python
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 #Python
You might like
php设计模式 Facade(外观模式)
2011/06/26 PHP
php从完整文件路径中分离文件目录和文件名的方法
2015/03/13 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
总结一些js自定义的函数
2006/08/05 Javascript
新浪的图片新闻效果
2007/01/13 Javascript
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
JQuery循环滚动图片代码
2011/12/08 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
jquery 表格排序、实时搜索表格内容(附图)
2014/05/19 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
在Vue中获取组件声明时的name属性方法
2018/09/12 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
在centos7中分布式部署pyspider
2017/05/03 Python
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
Python如何读取、写入CSV数据
2020/07/28 Python
python UDF 实现对csv批量md5加密操作
2021/01/01 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
教师作风整顿个人剖析材料
2014/10/10 职场文书
师范生见习报告
2014/10/31 职场文书
英文感谢信范文
2015/01/21 职场文书
催款函范文
2015/06/24 职场文书
纪委立案决定书
2015/06/24 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
环境卫生标语
2015/08/03 职场文书
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS
centos8安装MongoDB的详细过程
2021/10/24 MongoDB