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中实现贪婪排名算法的教程
Apr 17 Python
在Python中操作文件之read()方法的使用教程
May 24 Python
django admin添加数据自动记录user到表中的实现方法
Jan 05 Python
分数霸榜! python助你微信跳一跳拿高分
Jan 08 Python
python3+PyQt5重新实现自定义数据拖放处理
Apr 19 Python
python pexpect ssh 远程登录服务器的方法
Feb 14 Python
python之当你发现QTimer不能用时的解决方法
Jun 21 Python
python启动应用程序和终止应用程序的方法
Jun 28 Python
利用Python进行图像的加法,图像混合(附代码)
Jul 14 Python
Python实现直方图均衡基本原理解析
Aug 08 Python
python实现PCA降维的示例详解
Feb 24 Python
python对文件的操作方法汇总
Feb 28 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中json_encode()和json_decode()
2014/05/25 PHP
详解PHP对象的串行化与反串行化
2016/01/24 PHP
PHP数据库操作二:memcache用法分析
2017/08/16 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
Prototype Date对象 学习
2009/07/12 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
jQuery.extend 函数及用法详细
2015/09/06 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
Angular和百度地图的结合实例代码
2016/10/19 Javascript
EasyUI 结合JS导出Excel文件的实现方法
2016/11/10 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
Python 变量类型及命名规则介绍
2013/06/08 Python
简单的抓取淘宝图片的Python爬虫
2014/12/25 Python
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
python利用socketserver实现并发套接字功能
2018/01/26 Python
Python RabbitMQ消息队列实现rpc
2018/05/30 Python
python 文件查找及内容匹配方法
2018/10/25 Python
Python 发送邮件方法总结
2020/08/10 Python
CSS中越界问题的经典解决方案【推荐】
2016/04/19 HTML / CSS
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
德国综合购物网站:OTTO
2018/11/13 全球购物
自我鉴定范文200字
2013/10/02 职场文书
工程造价与财务管理专业应届生求职信
2013/10/06 职场文书
美术教学感言
2014/02/22 职场文书
租赁协议书范本
2014/04/22 职场文书
初中生期末评语大全
2014/04/24 职场文书
高考励志标语
2014/06/05 职场文书
2014超市双十一活动策划方案
2014/09/29 职场文书
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android
git stash(储藏)的用法总结
2022/06/25 Servers