python pygame入门教程


Posted in Python onJune 01, 2021

一、安装

在 cmd 命令中输入: pip install pygame

即可安装成功了

二、第一个代码实例

代码快里面有注释,想必大家都可以看懂的。

import pygame
import sys
import pygame.locals


pygame.init()
# 初始化

screen = pygame.display.set_mode((500, 600))
# 设置屏幕的大小

pygame.display.set_caption("First Demo")
# 设置屏幕的名称

Seashell = 255, 245, 238
# 设置 RGB 颜色

NavyBlue = 0, 0, 128
# 设置 RGB 颜色

while True:
    for event in pygame.event.get():
        if event.type == pygame.locals.QUIT or event.type == pygame.locals.KEYDOWN:
            # 如果点击关闭按钮,或者按下任意键,那么退出程序
            sys.exit()
        else:
            pass
    screen.fill(Seashell)
    position = (250, 300)
    pygame.draw.circle(screen, color=NavyBlue, center=position, radius=100,  width=50)
    pygame.display.update()

运行结果

python pygame入门教程

这个实例只需要强调一下的是:

1、QUIT表示按下关闭的按钮,KEYDOWN是按下任意一个按键,这两个都是pygame内部自己定义好的常量。

2、颜色可以用RGB进行表示

三、绘制一个矩形框

import pygame
import pygame.locals
import sys

pygame.init()
screen = pygame.display.set_mode((600, 500))
pygame.display.set_caption("Drawing Rectangles")
# 设置名称
Blue = 0, 0, 255
Purple = 160, 32, 240
while True:
    for event in pygame.event.get():
        if event.type == pygame.locals.QUIT or event.type == pygame.locals.KEYDOWN:
            # 还是如果说点击了关闭的按键,或者是按下了任意键,那么就可以关闭程序了
            sys.exit()
    pos = (300, 250, 100, 100)
    # 这里的 pos 不仅设置了位置,而且设置了长度以及宽度
    screen.fill(Purple)
    pygame.draw.rect(screen, Blue, pos, width=10)
    # width 是线条的宽度,screen 表示指定使用哪一个屏幕进行显示
    pygame.display.update()

代码运行的结果;

python pygame入门教程

四、绘制矩形框的进阶版本

import pygame
import pygame.locals
import sys
import time


pygame.init()
screen = pygame.display.set_mode((600, 500))
pygame.display.set_caption("Drawing Moving Rectangle")

color1 = 139, 0, 139
color2 = 104, 131, 139

px = 200
py = 300
# 初始化的位置应该放在外面,否则会一直在一个地方绘制图形了

vx = 10
vy = 20
# 初始化速度也应该放在外面,否则会一直以恒定的速度运动


while True:
    for event in pygame.event.get():
        if event.type in (pygame.locals.QUIT, pygame.locals.KEYDOWN):
            # 如果是按下了任意键或者是点击了关闭按钮,那么退出程序
            sys.exit()

    # vx = 10
    # vy = 20

    # px = 200
    # py = 300

    px += vx
    py += vy
    if px <= 0 or px + 100 >= 600:
        vx = - vx
    # else:
    #     px += vx


    if py <= 0 or py + 100 >= 500:
        vy = - vy
    # else:
    #     py += vy

    screen.fill(color1)

    pygame.draw.rect(screen, color2, (px, py, 100, 100))

    time.sleep(0.2)

    pygame.display.update()

五、绘制一条直线

# 绘制线条

import pygame
import pygame.locals
import sys
import time


color1 = 0, 80, 0

color2 = 100, 255, 200

pygame.init()
# 初始化

screen = pygame.display.set_mode((600, 500))
# 设置显示屏幕

pygame.display.set_caption("Drawing Lines")
# 设置显示框的标题的名称

while True:
    for event in pygame.event.get():
        if event.type == pygame.locals.QUIT or event.type == pygame.locals.KEYDOWN:
            sys.exit()
            # 与前面一样,如果说按下任意键或者是按下关闭的按钮,那么我们就退出程序

    screen.fill(color1)

    pygame.draw.line(screen, color2, (150, 150), (450, 450), width=10)

    pygame.display.update()

运行代码的结果展示;

python pygame入门教程

在这里,我们再一次详细地介绍一下line里面的各个参数的意义:

pygame.draw.line(screen, color2, (150, 150), (450, 450), width=10)

1、第一个参数 : 设置用于显示的屏幕是谁

2、第二个参数 : 设置直线段的颜色

3、第三个阐述 : 设置起点,也就是开始的位置

4、第四个参数 : 设置终点,也就是停止的位置

5、第五个参数 : 设置线条的宽度或者说是粗细的程度

最后再说一句,别忘记了加上一个

pygame.display.update()

用来更新画面

六、绘制一条弧线

首先,我们绘制一个圆的一部分,也就是真正的圆弧形:

import math
import pygame
import pygame.locals
import sys
import time


color1 = 144, 238, 144
color2 = 0, 0, 139


pygame.init()
pygame.display.set_caption("Drawing Arcs")
screen = pygame.display.set_mode((600, 500))

while True:
    for event in pygame.event.get():
        if event.type in (pygame.locals.QUIT, pygame.locals.KEYDOWN):
            sys.exit()

    screen.fill(color1)

    ang1 = math.radians(45)
    # 设置起始角位置
    ang2 = math.radians(315)
    # 设置结束的角位置

    # 设置矩形框
    """
    元组中;
    第一个参数,矩形框的左上角的横坐标
    第二个参数,矩形框的右上角的纵坐标
    第三个参数,矩形框的长度
    即就是:相对于 x 轴平行的方向的长度
    第四个参数,矩形框的宽度
    即就是:相对于 y 轴平行的方向的长度
    
    另外,如果矩形框的长度和宽度不相等的话,绘制出来的弧线不是圆的一部分,
    而是椭圆的一部分 
    """
    rect1 = 100, 50, 400, 400
    # 第一个矩形框----画园的一部分
    rect2 = 200, 200, 200, 100
    # 第二个矩形框----画椭园的一部分

    pygame.draw.arc(screen, color2, rect1, ang1, ang2, width=10)
    # 参数的含义解释
    """
    第一个参数:屏幕
    第二个参数:颜色
    第三个参数:开始的角度
    第四个参数:结束的角度
    第五个参数:线条的宽度
    """

    pygame.display.update()

python pygame入门教程

接下来,我们绘制一个椭圆形的一部分:

正如前一个实例中的注释所说,如果说:这个矩形框的长度和宽度不是相等的,那么,使用这个方法就是会绘制一个放 缩以后的椭圆形。

此处仅仅是吧上一个实例中的 rect1 换用为了 rect2 ,其他部分没有任何的变化;

import math
import pygame
import pygame.locals
import sys
import time


color1 = 144, 238, 144
color2 = 0, 0, 139


pygame.init()
pygame.display.set_caption("Drawing Arcs")
screen = pygame.display.set_mode((600, 500))

while True:
    for event in pygame.event.get():
        if event.type in (pygame.locals.QUIT, pygame.locals.KEYDOWN):
            sys.exit()

    screen.fill(color1)

    ang1 = math.radians(45)
    # 设置起始角位置
    ang2 = math.radians(315)
    # 设置结束的角位置

    # 设置矩形框
    """
    元组中;
    第一个参数,矩形框的左上角的横坐标
    第二个参数,矩形框的右上角的纵坐标
    第三个参数,矩形框的长度
    即就是:相对于 x 轴平行的方向的长度
    第四个参数,矩形框的宽度
    即就是:相对于 y 轴平行的方向的长度
    
    另外,如果矩形框的长度和宽度不相等的话,绘制出来的弧线不是圆的一部分,
    而是椭圆的一部分 
    """
    rect1 = 100, 50, 400, 400
    # 第一个矩形框----画园的一部分
    rect2 = 200, 200, 200, 100
    # 第二个矩形框----画椭园的一部分

    pygame.draw.arc(screen, color2, rect2, ang1, ang2, width=10)
    # 参数的含义解释
    """
    第一个参数:屏幕
    第二个参数:颜色
    第三个参数:开始的角度
    第四个参数:结束的角度
    第五个参数:线条的宽度
    """

    pygame.display.update()

运行代码的结果如下图所示;

python pygame入门教程

我们可以看到,这里确实是把竖直方向的宽度进行了压缩,使得原本的那个圆形变为了一个椭圆,同时,我们也把圆弧形,变为了一个椭圆弧形。

综上,以上就是我的第一份笔记,后续会进行更新的啦,这是第一份,后续有多少还没想好,但总之会持续更新,直到我把pygame学习完毕。后续还会去看看有没有机会学习页游,手游等游戏得制作,加油!

以上就是python pygame入门教程的详细内容,更多关于python pygame入门的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python实现的石头剪子布代码分享
Aug 22 Python
python实现读取命令行参数的方法
May 22 Python
使用Python对IP进行转换的一些操作技巧小结
Nov 09 Python
Python里字典的基本用法(包括嵌套字典)
Feb 27 Python
python代理工具mitmproxy使用指南
Jul 04 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
Aug 26 Python
python打包成so文件过程解析
Sep 28 Python
Python对Tornado请求与响应的数据处理
Feb 12 Python
python梯度下降算法的实现
Feb 24 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
Jun 02 Python
python 生成正态分布数据,并绘图和解析
Dec 21 Python
python如何实现递归转非递归
Feb 25 Python
python plt.plot bar 如何设置绘图尺寸大小
python用tkinter开发的扫雷游戏
Pytorch GPU内存占用很高,但是利用率很低如何解决
Python爬取英雄联盟MSI直播间弹幕并生成词云图
如何判断pytorch是否支持GPU加速
Jun 01 #Python
pytorch 两个GPU同时训练的解决方案
Jun 01 #Python
使用Django实现商城验证码模块的方法
Jun 01 #Python
You might like
Windows下的PHP5.0详解
2006/11/18 PHP
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
2008/05/26 PHP
Linux下php5.4启动脚本
2014/08/03 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
php生成二维码
2015/08/10 PHP
开启PHP Static 关键字之旅模式
2015/11/13 PHP
PHP实现查询两个数组中不同元素的方法
2016/02/23 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
2016/05/13 PHP
PHP重置数组为连续数字索引的几种方式总结
2018/03/12 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
11款基于Javascript的文件管理器
2009/10/25 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
2016/10/31 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
使用jquery给新生的th绑定hover事件的实例
2017/02/10 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
基于Vue+element-ui 的Table二次封装的实现
2018/07/20 Javascript
NodeJS模块与ES6模块系统语法及注意点详解
2019/01/04 NodeJs
解决vue中axios设置超时(超过5分钟)没反应的问题
2020/09/04 Javascript
Antd的table组件表格的序号自增操作
2020/10/27 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
Python爬虫之xlml解析库(全面了解)
2017/08/08 Python
在django中实现页面倒数几秒后自动跳转的例子
2019/08/16 Python
在vscode中配置python环境过程解析
2019/09/28 Python
PyCharm MySQL可视化Database配置过程图解
2020/06/09 Python
异常和异常类的概念
2014/09/12 面试题
英语专业学生个人求职信
2014/01/28 职场文书
《挑山工》的教学反思
2014/02/16 职场文书
关于责任的演讲稿
2014/05/20 职场文书
公共场所禁烟标语
2014/06/25 职场文书
农村文化建设标语
2014/10/07 职场文书
关于html选择框创建占位符的问题
2021/06/09 HTML / CSS