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 相关文章推荐
在SAE上部署Python的Django框架的一些问题汇总
May 30 Python
Python 实现简单的电话本功能
Aug 09 Python
说一说Python logging
Apr 15 Python
Python随机生成数据后插入到PostgreSQL
Jul 28 Python
python实现多线程网页下载器
Apr 15 Python
Python之用户输入的实例
Jun 22 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
Jan 22 Python
解决Django加载静态资源失败的问题
Jul 28 Python
python rsync服务器之间文件夹同步脚本
Aug 29 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
Jan 02 Python
Python爬虫爬取糗事百科段子实例分享
Jul 31 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
Nov 30 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
一个程序下载的管理程序(三)
2006/10/09 PHP
PHP的FTP学习(一)
2006/10/09 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
2015/04/15 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
2017/02/07 PHP
javascript实现的动态添加表单元素input,button等(appendChild)
2007/11/24 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
2011/01/17 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
js跑马灯代码(自写)
2013/04/17 Javascript
jquery可见性过滤选择器使用示例
2013/06/24 Javascript
js网页实时倒计时精确到秒级
2014/02/10 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
javascript闭包的理解
2015/04/01 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
jQuery实现分隔条左右拖动功能
2015/11/21 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
谈谈JS中的!!
2017/12/07 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
python实现ID3决策树算法
2018/08/29 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
使用WingPro 7 设置Python路径的方法
2019/07/24 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
python实现猜拳游戏
2020/03/04 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
一些Unix笔试题和面试题
2013/01/22 面试题
工程项目经理岗位职责
2013/12/15 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
赢在中国观后感
2015/06/02 职场文书
Oracle表空间与权限的深入讲解
2021/11/17 Oracle