一、安装

  • 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 游戏开发教程相关推荐

  1. python编程之pygame游戏开发系列——软件简介与安装

    视频地址 编程工具选择 IDLE:初级入门 vscode:我们将使用的软件. pycharm:免费 anaconda:科学计算 vscode 的安装 下载 地址 地址2:自动下载符合你系统的安装程序 ...

  2. python血条游戏代码_手把手Python和pygame游戏开发教程(二)

    欢迎,来自IP地址为:114.99.15.226 的朋友 前面教程第一部分已经成了小兔子的正确移动和转向,现在需要给它添加更多的动作以进行游戏的进一步开发. 让小兔子可以射箭 你的小兔子可以正确移动后 ...

  3. 《Python和Pygame游戏开发指南》——2.16 pygame.display.update()函数

    本节书摘来自异步社区<Python和Pygame游戏开发指南>一书中的第2章,第2.16节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区" ...

  4. 《Python和Pygame游戏开发指南》——1.12 图书中的文本折行

    本节书摘来自异步社区<Python和Pygame游戏开发指南>一书中的第1章,第1.12节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区" ...

  5. python和pygame游戏开发指南_学习记录

    <python和pygame游戏开发指南> Making Games With Python and Palme [美]Ai Sweigart 著,李强 译,2015.12第一版 文章目录 ...

  6. 01-初识 pygame 游戏开发

    你好,我是悦创.接下来三十天,我将持续更新 Python pygame 的基础游戏开发教程.文章都会对应视频教程,视频教程将在公众号:AI悦创,发布. 目录 本次,文章目标: Python 的第三方库 ...

  7. 微信小游戏开发教程-游戏实现1

    微信小游戏开发教程-游戏实现1 概述 微信开发者工具官方提供一个飞机大战的游戏Demo,这里我们不再使用这个demo,我们以FlappyBird为例,为了让读者更加容易理解. 源码 https://g ...

  8. 基于python的植物大战僵尸游戏开发

    1 简介 今天向大家介绍一个帮助往届学生完成的毕业设计项目,基于python的植物大战僵尸游戏开发. 计算机毕业生设计,课程设计需要帮助的可以找我 2 设计概要 21世纪是信息化时代,随着信息技术和网 ...

  9. 仙剑奇侠传 游戏 开发 教程 Xianjian qixia development Game development tutorial

    仙剑奇侠传 开发  游戏 开发 教程 Xianjian qixia development Game development tutorial 作者:韩梦飞沙 Author:han_meng_fei_ ...

  10. Unity 2D游戏开发教程之摄像头追踪功能

    Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...

最新文章

  1. 随机森林算法4种实现方法对比测试:DolphinDB速度最快,XGBoost表现最差
  2. POJ1195Mobile phones
  3. 太吾绘卷存档修改2020_太吾绘卷/神级初始存档
  4. 联想天工 802.1x认证 主程序
  5. 前端学习(3029):vue+element今日头条管理-顶部导航栏布局
  6. ios如何获取gps坐标(定位第二节)
  7. aspx 修改了样式但是在点击按钮后被刷新_产品经理教程-Axure RP 9 基础操作(元件、布局、草图、样式)...
  8. Python内置函数iter()语法及应用
  9. linux编译c文件for循环,Linux C 循环队列的实现
  10. python inspect —— 查看类的继承体系
  11. Educoder 机器学习 神经网络 第四关:使用pytorch搭建卷积神经网络识别手写数字
  12. java 药品管理系统_基于Java web的医药药品管理系统
  13. Android签名校验
  14. 杂项7 - Kali的截图键PrtSc
  15. php 将网页转成pdf_利用PHP将HTML页面转换成PDF文件
  16. 网站开发项目的需求分析
  17. 浏览器阻挡cookies_如何在任何浏览器中阻止Cookies(除了您使用的网站外) | MOS86...
  18. excel去掉公式()
  19. liu系统的混沌特性及其matlab仿真,毕业论文-Liu系统的混沌特性及其Matlab仿真
  20. java gui容器_中国大学MOOC: (GUI容器)容器类java.awt.container的父类是_______。

热门文章

  1. Unity 修改asset store下载路径(win10)
  2. Android 开 发 资 源 分 享
  3. 软件测试计算机硬件 64,《计算机系统与系统软件》用AIDA64测试上机报告
  4. 学习rfc 7432 多归场景
  5. SSM汽车维修中心管理系统
  6. 泛微oa系统服务器怎么填写,泛微协同办公平台Ecology8安装部署手册(105页)-原创力文档...
  7. Openwrt安装transmission离线下载
  8. UG(NX)二次开发 BlockUI 集列表使用方法
  9. jquery 进度条 滑块
  10. 尔雅 科学通史(吴国盛) 个人笔记及课后习题 2018 第十章 20世纪的科学技术变革