python 包之 Pygame 游戏开发教程
一、安装
- pygame可以实现python游戏的开发
pip install pygame
二、查看版本号
pip show pygame
三、测试内置游戏
- 运行 pygame 自带的游戏
- 看是否运行正常
python -m pygame.examples.aliens
四、基础使用
- 初始化一个窗口,设置窗口标题
- 检测用户关闭事件,进行关闭操作
import pygame, sys
from pygame.locals import *# 初始化pygame
pygame.init()# 设置窗口的大小,单位为像素
screen = pygame.display.set_mode((500, 400))# 设置窗口标题
pygame.display.set_caption('我的第一个游戏')# 程序主循环
while True:# 获取事件for event in pygame.event.get():# 判断事件是否为退出事件if event.type == QUIT:# 退出pygamepygame.quit()# 退出系统sys.exit()# 绘制屏幕内容pygame.display.update()
五、设置背景色
- 通过 screen.fill 方法可以给背景板填充颜色
- 颜色参数是一个三原色的元组
import pygame, sys
from pygame.locals import *# 初始化pygame
pygame.init()# 设置窗口的大小,单位为像素
screen = pygame.display.set_mode((500, 400))# 定义颜色
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)# 设置背景颜色
screen.fill(WHITE)# 设置窗口标题
pygame.display.set_caption('我的第一个游戏')# 程序主循环
while True:# 获取事件for event in pygame.event.get():# 判断事件是否为退出事件if event.type == QUIT:# 退出pygamepygame.quit()# 退出系统sys.exit()# 绘制屏幕内容pygame.display.update()
六、图形绘制
- 绘制一条线段:pygame.draw.line(Surface, color, start_pos, end_pos, width)
- 绘制一条抗锯齿的线:pygame.draw.aaline(Surface, color, start_pos, end_pos, blend)
- 绘制一条折线:pygame.draw.lines(Surface, color, closed, pointlist, width)
- 绘制一个矩形:pygame.draw.rect(Surface, color, Rect)
- 绘制一个矩形框:pygame.draw.rect(Surface, color, Rect, width)
- 绘制一个多边形:pygame.draw.polygon(Surface, color, pointlist, width)
- 绘制一条弧线:pygame.draw.arc(Surface, color, Rect, start_angle, stop_angle, width)
- 绘制一个圆:pygame.draw.circle(Surface, color, Rect, radius)
- 绘制一个椭圆:pygame.draw.ellipse(Surface, color, Rect)
- 绘制一个椭圆框:pygame.draw.ellipse(Surface, color, Rect, width)
import pygame, sys
from pygame.locals import *
from math import pi# 初始化pygame
pygame.init()# 设置窗口的大小,单位为像素
screen = pygame.display.set_mode((400,300))# 设置窗口标题
pygame.display.set_caption('图形绘制')# 绘制一条线
pygame.draw.line(screen, GREEN, [0, 0], [50,30], 5)# 绘制一条抗锯齿的线
pygame.draw.aaline(screen, GREEN, [0, 50],[50, 80],True)# 绘制一条折线
pygame.draw.lines(screen, BLACK, False, [[0, 80], [50, 90], [200, 80], [220, 30]], 5)# 绘制一个空心矩形
pygame.draw.rect(screen, BLACK, [75, 10, 50, 20], 2)# 绘制一个矩形
pygame.draw.rect(screen, BLACK, [150, 10, 50, 20])# 绘制一个空心椭圆
pygame.draw.ellipse(screen, RED, [225, 10, 50, 20], 2)# 绘制一个椭圆
pygame.draw.ellipse(screen, RED, [300, 10, 50, 20])# 绘制多边形
pygame.draw.polygon(screen, BLACK, [[100, 100], [0, 200], [200, 200]], 5)# 绘制多条弧线
pygame.draw.arc(screen, BLACK,[210, 75, 150, 125], 0, pi/2, 2)
pygame.draw.arc(screen, GREEN,[210, 75, 150, 125], pi/2, pi, 2)
pygame.draw.arc(screen, BLUE, [210, 75, 150, 125], pi,3*pi/2, 2)
pygame.draw.arc(screen, RED, [210, 75, 150, 125], 3*pi/2, 2*pi, 2)# 绘制一个圆
pygame.draw.circle(screen, BLUE, [60, 250], 40)# 程序主循环
while True:# 获取事件for event in pygame.event.get():# 判断事件是否为退出事件if event.type == QUIT:# 退出pygamepygame.quit()# 退出系统sys.exit()# 绘制屏幕内容pygame.display.update()
七、绘制字体
- 获取字体:pygame.font.Font(filename, size)
- 显示字体:pygame.font.Font.render(text, antialias, color, background=None)
- 获取坐标对象:get_rect()
import pygame,sys
from pygame.locals import *pygame.init()surface = pygame.display.set_mode((500, 400), 0, 32)
pygame.display.set_caption("文字绘制")
surface.fill((255, 255, 255))# 获取字体对象,可以获取系统自带的,也可以自定义字体
fonts = pygame.font.get_fonts()
fonts = 'fonts/ARBERKLEY.ttf'
basicFont = pygame.font.SysFont(fonts, 50)# surface对象
text = basicFont.render('这是一串字符', True, (255,255,255), (0,255,0))# 设置文本位置
textRect = text.get_rect()textRectObj.center = (250, 200)# 将渲染的surface对象更新到屏幕上
surface.blit(text,textRect)# 程序主循环
while True:# 获取事件for event in pygame.event.get():# 判断事件是否为退出事件if event.type == QUIT:# 退出pygamepygame.quit()# 退出系统sys.exit()# 绘制屏幕内容pygame.display.update()
八、音频播放
- 播放特效声音:pygame.mixer.Sound(filename)
- 加载背景音乐:pygame.mixer.music.load(filename)
import pygame, sys
from pygame.locals import *# 初始化pygame
pygame.init()# 设置窗口的大小,单位为像素
screen = pygame.display.set_mode((500,400))# 设置窗口的标题
pygame.display.set_caption('音频播放')# 设置背景
screen.fill((255, 255, 255))# 加载并播放一个特效音频文件
sound = pygame.mixer.Sound('./music.mp3')
sound.play()# 加载背景音乐文件
pygame.mixer.music.load('./bgmusic.mp3')# 播放背景音乐,第一个参数为播放的次数(-1表示无限循环),第二个参数是设置播放的起点(单位为秒)
pygame.mixer.music.play(-1, 0.0)# 程序主循环
while True:# 获取事件for event in pygame.event.get():# 判断事件是否为退出事件if event.type == QUIT:# 停止播放背景音乐pygame.mixer.music.stop()# 退出pygamepygame.quit()# 退出系统sys.exit()# 绘制屏幕内容pygame.display.update()
九、用户事件
- 用户按下关闭按钮:QUIT
- Pygame被激活或者隐藏:ACTIVEEVENT
- 键盘被按下:KEYDOWN
- 键盘被放开:KEYUP
- 鼠标移动:MOUSEMOTION
- 鼠标按下:MOUSEBUTTONDOWN
- 鼠标放开:MOUSEBUTTONUP
- Pygame窗口缩放:VIDEORESIZE
import pygame, sys
from pygame.locals import *# 初始化pygame
pygame.init()# 设置窗口的大小,单位为像素
screen = pygame.display.set_mode((500,400), 0, 32)# 设置窗口的标题
pygame.display.set_caption('用户事件监控')# 设置背景
screen.fill((255, 255, 255))# 程序主循环
while True:# 获取事件for event in pygame.event.get():# 判断事件是否为退出事件if event.type == QUIT:# 退出pygamepygame.quit()# 退出系统sys.exit()# 获得键盘按下的事件 if event.type == KEYDOWN:if(event.key==K_UP or event.key==K_w):print("上")if(event.key==K_DOWN or event.key==K_s):print("下")if(event.key==K_LEFT or event.key==K_a):print("左")if(event.key==K_RIGHT or event.key==K_d):print("右")# 按下键盘的Esc键退出if(event.key==K_ESCAPE):# 退出pygamepygame.quit()# 退出系统sys.exit()# 获得鼠标当前的位置 if event.type ==MOUSEMOTION:print(event.pos)# 获得鼠标按下的位置if event.type ==MOUSEBUTTONDOWN:print("鼠标按下:", event.pos)# 获得鼠标抬起的位置if event.type ==MOUSEBUTTONUP:print("鼠标抬起:", event.pos) # 绘制屏幕内容pygame.display.update()
python 包之 Pygame 游戏开发教程相关推荐
- python编程之pygame游戏开发系列——软件简介与安装
视频地址 编程工具选择 IDLE:初级入门 vscode:我们将使用的软件. pycharm:免费 anaconda:科学计算 vscode 的安装 下载 地址 地址2:自动下载符合你系统的安装程序 ...
- python血条游戏代码_手把手Python和pygame游戏开发教程(二)
欢迎,来自IP地址为:114.99.15.226 的朋友 前面教程第一部分已经成了小兔子的正确移动和转向,现在需要给它添加更多的动作以进行游戏的进一步开发. 让小兔子可以射箭 你的小兔子可以正确移动后 ...
- 《Python和Pygame游戏开发指南》——2.16 pygame.display.update()函数
本节书摘来自异步社区<Python和Pygame游戏开发指南>一书中的第2章,第2.16节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区" ...
- 《Python和Pygame游戏开发指南》——1.12 图书中的文本折行
本节书摘来自异步社区<Python和Pygame游戏开发指南>一书中的第1章,第1.12节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区" ...
- python和pygame游戏开发指南_学习记录
<python和pygame游戏开发指南> Making Games With Python and Palme [美]Ai Sweigart 著,李强 译,2015.12第一版 文章目录 ...
- 01-初识 pygame 游戏开发
你好,我是悦创.接下来三十天,我将持续更新 Python pygame 的基础游戏开发教程.文章都会对应视频教程,视频教程将在公众号:AI悦创,发布. 目录 本次,文章目标: Python 的第三方库 ...
- 微信小游戏开发教程-游戏实现1
微信小游戏开发教程-游戏实现1 概述 微信开发者工具官方提供一个飞机大战的游戏Demo,这里我们不再使用这个demo,我们以FlappyBird为例,为了让读者更加容易理解. 源码 https://g ...
- 基于python的植物大战僵尸游戏开发
1 简介 今天向大家介绍一个帮助往届学生完成的毕业设计项目,基于python的植物大战僵尸游戏开发. 计算机毕业生设计,课程设计需要帮助的可以找我 2 设计概要 21世纪是信息化时代,随着信息技术和网 ...
- 仙剑奇侠传 游戏 开发 教程 Xianjian qixia development Game development tutorial
仙剑奇侠传 开发 游戏 开发 教程 Xianjian qixia development Game development tutorial 作者:韩梦飞沙 Author:han_meng_fei_ ...
- Unity 2D游戏开发教程之摄像头追踪功能
Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...
最新文章
- 随机森林算法4种实现方法对比测试:DolphinDB速度最快,XGBoost表现最差
- POJ1195Mobile phones
- 太吾绘卷存档修改2020_太吾绘卷/神级初始存档
- 联想天工 802.1x认证 主程序
- 前端学习(3029):vue+element今日头条管理-顶部导航栏布局
- ios如何获取gps坐标(定位第二节)
- aspx 修改了样式但是在点击按钮后被刷新_产品经理教程-Axure RP 9 基础操作(元件、布局、草图、样式)...
- Python内置函数iter()语法及应用
- linux编译c文件for循环,Linux C 循环队列的实现
- python inspect —— 查看类的继承体系
- Educoder 机器学习 神经网络 第四关:使用pytorch搭建卷积神经网络识别手写数字
- java 药品管理系统_基于Java web的医药药品管理系统
- Android签名校验
- 杂项7 - Kali的截图键PrtSc
- php 将网页转成pdf_利用PHP将HTML页面转换成PDF文件
- 网站开发项目的需求分析
- 浏览器阻挡cookies_如何在任何浏览器中阻止Cookies(除了您使用的网站外) | MOS86...
- excel去掉公式()
- liu系统的混沌特性及其matlab仿真,毕业论文-Liu系统的混沌特性及其Matlab仿真
- java gui容器_中国大学MOOC: (GUI容器)容器类java.awt.container的父类是_______。
热门文章
- Unity 修改asset store下载路径(win10)
- Android 开 发 资 源 分 享
- 软件测试计算机硬件 64,《计算机系统与系统软件》用AIDA64测试上机报告
- 学习rfc 7432 多归场景
- SSM汽车维修中心管理系统
- 泛微oa系统服务器怎么填写,泛微协同办公平台Ecology8安装部署手册(105页)-原创力文档...
- Openwrt安装transmission离线下载
- UG(NX)二次开发 BlockUI 集列表使用方法
- jquery 进度条 滑块
- 尔雅 科学通史(吴国盛) 个人笔记及课后习题 2018 第十章 20世纪的科学技术变革