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编程中包的概念与管理
Oct 16 Python
Python实现简单文本字符串处理的方法
Jan 22 Python
对pandas通过索引提取dataframe的行方法详解
Feb 01 Python
python 控制Asterisk AMI接口外呼电话的例子
Aug 08 Python
Django rstful登陆认证并检查session是否过期代码实例
Aug 13 Python
在python shell中运行python文件的实现
Dec 21 Python
django ajax发送post请求的两种方法
Jan 05 Python
python十进制转二进制的详解
Feb 07 Python
python实现在线翻译功能
Mar 03 Python
使用Python+selenium实现第一个自动化测试脚本
Mar 17 Python
python 最简单的实现适配器设计模式的示例
Jun 30 Python
Python3如何使用tabulate打印数据
Sep 25 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增删改查示例自己写的demo
2013/09/04 PHP
利用404错误页面实现UrlRewrite的实现代码
2008/08/20 Javascript
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
Prototype Array对象 学习
2009/07/19 Javascript
jQuery 表格工具集
2010/04/25 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
jQuery中ajax和post处理json的不同示例对比
2014/11/02 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
2015/11/16 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
微信小程序 生命周期详解
2016/10/12 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
彪马英国官网:PUMA英国
2019/02/11 全球购物
French Connection官网:女装、男装及家居用品
2019/03/18 全球购物
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
如何利用find命令查找文件
2015/02/07 面试题
幼师专业毕业生自荐信
2013/09/29 职场文书
房地产开盘策划方案
2014/02/10 职场文书
2014年社区植树节活动方案
2014/02/28 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
军事博物馆观后感
2015/06/05 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis
ant design vue的form表单取值方法
2022/06/01 Vue.js