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 相关文章推荐
使用grappelli为django admin后台添加模板
Nov 18 Python
使用Python中的线程进行网络编程的入门教程
Apr 15 Python
Python入门教程之if语句的用法
May 14 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
Nov 21 Python
利用python将xml文件解析成html文件的实现方法
Dec 22 Python
关于Tensorflow中的tf.train.batch函数的使用
Apr 24 Python
python flask解析json数据不完整的解决方法
May 26 Python
Python学习笔记之Django创建第一个数据库模型的方法
Aug 07 Python
python如果快速判断数字奇数偶数
Nov 13 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
Mar 25 Python
python实现二分查找算法
Sep 18 Python
OpenCV3.3+Python3.6实现图片高斯模糊
May 18 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.MVC的模板标签系统(四)
2006/09/05 PHP
PHP 上传文件的方法(类)
2009/07/30 PHP
php检索或者复制远程文件的方法
2015/03/13 PHP
总结PHP中数值计算的注意事项
2016/08/14 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
用js实现的仿sohu博客更换页面风格(简单版)
2007/03/22 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
node.js实现端口转发
2016/04/14 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
Node.js和Express简单入门介绍
2017/03/24 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
Angular模板表单校验方法详解
2017/08/11 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
Vue实现简单分页器
2018/12/29 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
2019/05/20 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
[03:23]我的刀塔你不可能这么可爱 第一期金萌萌的故事
2014/06/20 DOTA
[00:34]TI7不朽珍藏III——纯金地穴编织者饰品展示
2017/07/15 DOTA
详解在Python程序中使用Cookie的教程
2015/04/30 Python
python添加模块搜索路径方法
2017/09/11 Python
Linux下远程连接Jupyter+pyspark部署教程
2019/06/21 Python
python之拟合的实现
2019/07/19 Python
使用Django清空数据库并重新生成
2020/04/03 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
iHerb香港:维生素、补充剂和天然保健品
2017/08/01 全球购物
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
2014年语文教研组工作总结
2014/12/06 职场文书
Python利用folium实现地图可视化
2021/05/23 Python
「魔法少女伊莉雅」美游粘土人开订
2022/03/21 日漫