python pygame入门教程
作者:安也oi 发布时间:2023-10-08 11:32:15
标签:python,pygame
一、安装
在 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()
运行结果
这个实例只需要强调一下的是:
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()
代码运行的结果;
四、绘制矩形框的进阶版本
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()
运行代码的结果展示;
在这里,我们再一次详细地介绍一下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()
接下来,我们绘制一个椭圆形的一部分:
正如前一个实例中的注释所说,如果说:这个矩形框的长度和宽度不是相等的,那么,使用这个方法就是会绘制一个放 缩以后的椭圆形。
此处仅仅是吧上一个实例中的 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()
运行代码的结果如下图所示;
我们可以看到,这里确实是把竖直方向的宽度进行了压缩,使得原本的那个圆形变为了一个椭圆,同时,我们也把圆弧形,变为了一个椭圆弧形。
综上,以上就是我的第一份笔记,后续会进行更新的啦,这是第一份,后续有多少还没想好,但总之会持续更新,直到我把pygame学习完毕。后续还会去看看有没有机会学习页游,手游等游戏得制作,加油!
来源:https://juejin.cn/post/6966426725030821902
0
投稿
猜你喜欢
- 神经网络模型一般用来做分类,回归预测模型不常见,本文基于一个用来分类的BP神经网络,对它进行修改,实现了一个回归模型,用来做室内定位。模型主
- 前言今天小编带领大家用Python自制一个自动生成探索性数据分析报告这样的一个工具,大家只需要在浏览器中输入url便可以轻松的访问,如下所示
- gRPC 是可以在任何环境中运行的现代开源高性能 RPC 框架。它可以通过可插拔的支持来有效地连接数据中心内和跨数据中心的服务,以实现负载平
- 本文实例讲述了Python面向对象之多态原理与用法。分享给大家供大家参考,具体如下:目标多态面向对象三大特性封装 根据 职责 将 属性 和
- 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。
- 彩 * 像转换为灰度图像第一种方式通过 imread 读取图像的时候直接设置参数为 0 ,自动转换彩 * 像为灰度图像第二种方式,可以通过 sp
- Boundary MatchersJava regex API还支持边界匹配。如果我们关心在输入文本中匹配的确切位置,那么这就是我们要寻找的
- 通信信息包是发送至MySQL服务器的单个SQL语句,或发送至客户端的单一行。在MySQL 5.1服务器和客户端之间最大能发送的可能信息包为1
- 前言提示:在管理服务器的过程中,发现有很多服务器在启动的过程中默认以PXE方式启动,这就导致我们无法将PXE装机程序放开到所有的交换机端口中
- 看代码~from django.contrib import messages messages.info(request, '要显
- 什么是python的装饰器?网络上的定义:装饰器就是一函数,用来包装函数的函数,用来修饰原函数,将其重新赋值给原来的标识符,并永久的丧失原函
- 1.1.1 摘要 Join是关系型数据库系统的重要操作之一,SQL Server中包含的常用Join:内联接、外联接和交叉联接等。如果我们想
- python中可以使用下标索引来访问列表中的值,对列表进行切片即截取,也可以对列表的数据项进行修改或更新。使用下标索引来访问列表中的值,例如
- ASP的强大不仅仅局限于接受和显示的交互,更多的是运用ActiveX 组件进行更强大的Web应用。那究竟ActiveX组件为何物?
- 列表是什么列表是元素的集合,存储在一个变量中。列表中存储的元素类型没有限制,根据需要动态分配和回收内存列表中的每个元素都会分配一个数字用来表
- 实际开发中,有时候系统提供的异常类型不能满足开发的需求。这时候你可以通过创建一个新的异常类来拥有自己的异常。异常类继承自 Exception
- 项目环境:python3.6,django2.1接口功能: 将传入参数a和b字符串相加,返回结果1.新建一个django项目# 新建一个名为
- 本文实例讲述了python使用正则表达式匹配字符串开头并打印的方法。分享给大家供大家参考,具体如下:import res="nam
- __getitem__ 来看个简单的例子就明白:def __getitem__(self, key): return self.data[k
- 本文将介绍如何基于Python Django实现验证码登录功能。验证码登录是一种常见的身份验证方式,它可以有效防止恶意攻击和机器人登录。本文