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实现矩阵乘法的方法
Jun 28 Python
在Django的模板中使用认证数据的方法
Jul 23 Python
浅谈python socket函数中,send与sendall的区别与使用方法
May 09 Python
Python求出0~100以内的所有素数
Jan 23 Python
python+selenium打印当前页面的titl和url方法
Jun 22 Python
python numpy数组的索引和切片的操作方法
Oct 20 Python
python定时任务 sched模块用法实例
Nov 04 Python
Django admin禁用编辑链接和添加删除操作详解
Nov 15 Python
Python读取Excel一列并计算所有对象出现次数的方法
Sep 04 Python
Python unittest装饰器实现原理及代码
Sep 08 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
Nov 30 Python
Django使用echarts进行可视化展示的实践
Jun 10 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
php xfocus防注入资料
2008/04/27 PHP
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
PHP获取当前日期和时间及格式化方法参数
2015/05/11 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
jQuery-ui中自动完成实现方法
2010/06/10 Javascript
解决iframe的frameborder在chrome/ff/ie下的差异
2010/08/12 Javascript
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
解析使用JS 清空File控件的路径值
2013/07/08 Javascript
js AppendChild与insertBefore用法详细对比
2013/12/16 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
JavaScript从0开始构思表情插件
2016/07/26 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
vue+axios实现登录拦截的实例代码
2017/05/22 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
layui禁用侧边导航栏点击事件的解决方法
2019/09/25 Javascript
使用Python神器对付12306变态验证码
2016/01/05 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
2019/01/02 Python
python ChainMap的使用和说明详解
2019/06/11 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
使用Filter过滤python中的日志输出的实现方法
2019/07/17 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
python logging.info在终端没输出的解决
2020/05/12 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
英国Amara家居法国网站:家居装饰,现代装饰和豪华礼品
2016/12/15 全球购物
华为菲律宾官方网站:HUAWEI Philippines
2021/02/23 全球购物
试用期员工工作自我评价
2014/09/10 职场文书
学籍证明模板
2014/11/21 职场文书
社区服务活动报告
2015/02/05 职场文书
2015年七夕爱情寄语
2015/03/24 职场文书
2015年食品安全工作总结
2015/05/15 职场文书