python游戏开发Pygame框架


Posted in Python onApril 22, 2022

1.最小开发框架代码

import sys 
import pygame
pygame.init() 
size=w,h = (800,600)
screen = pygame.display.set_mode(size) 
pygame.display.set_caption("hello world") 
screen.fill((255,255,255))
while True:
    for event in pygame.event.get(): 
        if event.type == pygame.QUIT: 
            sys.exit()
    pygame.display.update() 

2.关键代码介绍

sys和pygame模块

import sys #python的标准库,对内部各功能模块进行初始化创建,系统模块
import pygame #pygame是跨平台Python模块,专门为电子游戏设计,包含图像、声音等。

初始化init()及设置

pygame.init() #电脑调用接口,基础功能的检查(硬件环境)初始化
  • pygame.init() 就是检查电脑上的一些硬件调用接口、基础功能是否有问题,如果有,则会在程序运行之前进行反馈,方便排查。简单来说就是对电脑调用的接口进行初始化。

屏幕大小、标题、颜色设置

size=w,h = (800,600) 
screen = pygame.display.set_mode(size) #pygame.display.set_mode 一个二值元组,分别表示宽度和高度。
pygame.display.set_caption("hello world") #括号内为窗口的标题内容
screen.fill((255,255,255)) #屏幕的颜色,填充背景色,其中的参数为(R,G,B),范围为:0~~255,用整数表示。
  • pygame.display.set_mode(resolution=(0,0), flags=0, depth=0) -> Surface(对象)。
  • resolution 参数是一个二元组,表示宽和高。
  • flags 参数是附件选项的集合。
  • flags 参数指定你想要的显示类型。例如:全屏显示、双缓冲模式、硬件加速等等。
  • depth 参数表示使用的颜色深度。

通常来说,是不需要传递 depth 参数。因为默认 Pygame 会根据当前操作系统选择最好和最快的颜色深度。

python游戏开发Pygame框架

事件循环

while True:
    for event in pygame.event.get(): #遍历事件列表
  • while True 无限循环,直到从键盘或鼠标触动事件在退出循环。
  • pygame.event.get() 从事件队列中取出事件(列表),并从队列中删除该事件,例如:键盘按下是一个事件
  • 在pygame中,所用事件都存放在事件列表中,使用pygame.event.get()可以取出一个事件。

退出游戏

if event.type == pygame.QUIT: #pygame.QUIT == 12 
            sys.exit() # 退出游戏
  • event.type 获取事件类型,并逐个响应
  • pygame.QUIT是pygame中定义的退出事件常量

窗口刷新:

pygame.display.update() #对显示窗口进行更新,默认窗口全部重绘

注意事项:

  • 要用pygame制作游戏代码时,一般用Pycharm进行编写代码,而不用python。
  • 要添加一些事件时,直接在for循环中添加相应的代码。
  • 使用Pycharm进行编程时一定要配置环境变量,否则会运行报错。
  • 在用Pycharm进行编程时,也可以使用类、继承、多态等方法。

到此这篇关于基于python 的Pygame最小开发框架的文章就介绍到这了!


Tags in this post...

Python 相关文章推荐
python中sets模块的用法实例
Sep 30 Python
对于Python中线程问题的简单讲解
Apr 03 Python
详解python中字典的循环遍历的两种方式
Feb 07 Python
Python简单删除列表中相同元素的方法示例
Jun 12 Python
详解Python 序列化Serialize 和 反序列化Deserialize
Aug 20 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
Jun 26 Python
对Python中实现两个数的值交换的集中方法详解
Jan 11 Python
python打开windows应用程序的实例
Jun 28 Python
pytorch ImageFolder的覆写实例
Feb 20 Python
解决Django中checkbox复选框的传值问题
Mar 31 Python
浅析Python的命名空间与作用域
Nov 25 Python
python中PyQuery库用法分享
Jan 15 Python
python中的random模块和相关函数详解
Apr 22 #Python
Python写情书? 10行代码展示如何把情书写在她的照片里
Apr 21 #Python
微信小程序调用python模型
Apr 21 #Python
使用python绘制分组对比柱状图
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
Apr 21 #Python
Python尝试实现蒙特卡罗模拟期权定价
Python matplotlib绘制条形统计图 处理多个实验多组观测值
You might like
操作Oracle的php类
2006/10/09 PHP
PHP伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
PHP设计模式之装饰者模式代码实例
2015/05/11 PHP
php微信支付接口开发程序
2016/08/02 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
2018/04/04 PHP
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
常用的js方法合集
2017/03/10 Javascript
基于vue.js实现侧边菜单栏
2017/03/20 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
vue随机验证码组件的封装实现
2020/02/19 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
[48:05]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VGJ.T vs VP
2018/03/31 DOTA
以一段代码为实例快速入门Python2.7
2015/03/31 Python
Python单例模式实例详解
2017/03/01 Python
python多线程http压力测试脚本
2019/06/25 Python
python绘制汉诺塔
2021/03/01 Python
JBL英国官网:JBL UK
2018/07/04 全球购物
英国领先的鞋类零售商:Shoe Zone
2018/12/13 全球购物
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
什么是索引指示器
2012/08/20 面试题
机电专业毕业生求职信
2013/10/27 职场文书
教师岗位职责
2013/11/17 职场文书
银行存款证明样本
2014/01/17 职场文书
不遵守课堂纪律的检讨书
2014/09/24 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
对PyTorch中inplace字段的全面理解
2021/05/22 Python
Python实现天气查询软件
2021/06/07 Python
Java9新特性对HTTP2协议支持与非阻塞HTTP API
2022/03/16 Java/Android