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合并文本文件示例
Feb 07 Python
Python Web框架Flask中使用七牛云存储实例
Feb 08 Python
在Python的web框架中中编写日志列表的教程
Apr 30 Python
利用ctypes提高Python的执行速度
Sep 09 Python
python中Switch/Case实现的示例代码
Nov 09 Python
python科学计算之numpy——ufunc函数用法
Nov 25 Python
python创建子类的方法分析
Nov 28 Python
python paramiko远程服务器终端操作过程解析
Dec 14 Python
python numpy 矩阵堆叠实例
Jan 17 Python
对Matlab中共轭、转置和共轭装置的区别说明
May 11 Python
Python 制作查询商品历史价格的小工具
Oct 20 Python
Python Web项目Cherrypy使用方法镜像
Nov 05 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中simplexml_load_file函数用法实例
2014/11/12 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
js 创建书签小工具之理论
2011/02/25 Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
JS+CSS实现的经典tab选项卡效果代码
2015/09/16 Javascript
全面解析Bootstrap排版使用方法(标题)
2015/11/30 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
基于Bootstrap实现tab标签切换效果
2020/04/15 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
为Python程序添加图形化界面的教程
2015/04/29 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
Python自定义线程类简单示例
2018/03/23 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
python实现词法分析器
2019/01/31 Python
用Python配平化学方程式的方法
2019/07/20 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
HTML5标签大全
2016/11/23 HTML / CSS
物业管理计划书
2014/01/10 职场文书
出国导师推荐信
2014/01/16 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
县级领导干部开展党的群众路线教育实践活动工作汇报
2014/10/25 职场文书
长城的导游词
2015/01/30 职场文书
主持稿开场白
2015/06/01 职场文书
网络舆情信息简报
2015/07/21 职场文书
机械原理课程设计心得体会
2016/01/15 职场文书
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android
html5+实现plus.io进行拍照和图片等获取
2022/06/01 HTML / CSS