没有合适的资源?快使用搜索试试~ 我知道了~
pygame教程 跨平台 Python模块
需积分: 5 58 下载量 66 浏览量
2018-10-27
21:36:51
上传
评论 3
收藏 4.99MB PDF 举报
温馨提示
试读
112页
Pygame是 跨平台 Python模块,专为电子游戏设计。 包含图像、声音。 建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚。基于这样一个设想,所有需要的游戏功能和理念都(主要是图像方面)都完全简化为游戏逻辑本身,所有的资源结构都可以由 高级语言提供,如Python。
资源推荐
资源详情
资源评论
来自 http://simple-is-better.com/news/361
博客刚开 , 打算做一个 Pygame 的系列 , 翻译自 Will McGugan 的 《 Beginning Game Development
with Python and Pygame – From Novice to Professional 》 ,有兴趣的朋友可以搜一下,有英文版
的 PDF 可以下载。其实也不是翻译,把精华摘出来,共同学习。
看这个系列需要有 Python 的基础知识 , 虽然一开始想写一篇 Python 概要的 , 实在是很庞杂 , 而且
有那么多好的 Python 基础教程,自己就不多插一脚了吧。入门的话,有 Python 入门 ,详尽的话
,
可以看 看 Pytho n 核心编程或 者 Pytho n 编程金典 , 然 后 IB M 上的 “ 可爱 的 Python ” 系列也很不错
,
可以扩展一下思维。
OK ,让我们开始吧 ~
Pygame
Pygame
Pygame
Pygame 的历史
的历史
的历史
的历史
Pygame 是一个利用 SDL 库的写就的游戏库 , SDL 呢 , 全名
Simple
DirectMedia Layer , 是一位叫
做 Sam Lantinga 的大牛写的 , 据说他为了让 Loki ( 致力于向 Linux 上移植 Windows 的游戏的一家
大好人公司,可惜已经倒闭,唉好人不长命啊 …… )更有效的工作,创造了这个东东。
SD L 是 用 C 写的 , 不过它也可以使 用 C++ 进行开发 , 当然还有很多其它的语言 , Pygam
e
就 是 Pytho n
中使用它的一个库。 Pygame 已经存在很多时间了,许多优秀的程序员加入其中,把 Pygame 做得
越来越好。
安装
安装
安装
安装 Pygame
Pygame
Pygame
Pygame
你可以从 www.pygame.org 下载 Pygame , 选择合适你的操作系统和合适的版本 , 然后安装就可以
了(什么,你连 Python 都没有?您可能是不适合看这个系列了,不过如果执意要学,很好!快 去
www.python.org 下载吧 ! ) 。 一旦你安装好,你可以用下面的方法确认下有没有安装成功:
1
2
3
>>>importpygame
>>>printpygame.ver
1.9.1release
你的版本可能和我不同 , 这没关系 。 我所翻译的这本书上的版本还是 1.7.1 的 …… 所以如果有些过时的
不合时宜的东西,千万不要客气请指出来!
若说为什么要介绍这么一个 “ 过时 ” 的东西 , 真正的知识是不会过时的 , 只有技术才会 。 这里主要是
依靠 Pygame 来介绍的游戏开发的方方面面,并不是说咱就可以靠这个做出什么伟大的游戏了(当
然也不是说不可以 ) !
另外说一下 , 就产品而言 , Pygame 更致力于 2D 游戏的开发 , 也就是说 , 你可以用 Pygame 写一个
植物大战僵尸,但是写一个魔兽世界则相当困难 …… 请不要做出鄙夷的目光,底层的东西永远是相通
的,而且对于新手而言,从简单的 2D 入手才是正途。
使用
使用
使用
使用 Pygame
Pygame
Pygame
Pygame
Pygame 有很多的模块,下面是一张一览表:
模块名
模块名
模块名
模块名 功能
功能
功能
功能
pygame.cdrom 访问光驱
pygame.cursors 加载光标
pygame.display 访问显示设备
pygame.draw 绘制形状、线和点
pygame.event 管理事件
pygame.font 使用字体
pygame.image 加载和存储图片
pygame.joystick 使用游戏手柄或者 类似的东西
pygame.key 读取键盘按键
pygame.mixer 声音
pygame.mouse 鼠标
pygame.movie 播放视频
pygame.music 播放音频
pygame.overlay 访问高级视频叠加
pygame 就是我们在学的这个东西了 ……
pygame.rect 管理矩形区域
pygame.sndarray 操作声音数据
pygame.sprite 操作移动图像
pygame.surface 管理图像和屏幕
pygame.surfarray 管理点阵图像数据
pygame.time 管理时间和帧信息
pygame.transform 缩放和移动图像
有些模块可能在某些平台上不存在,你可以用 None 来测试一下。
1
2
3
ifpygame.fontisNone:
print"The font module is not available!"
exit()
新的
新的
新的
新的 Hello
Hello
Hello
Hello World
World
World
World
学程序一开始我们总会写一个 Hello world 程序 , 但那只是在屏幕上写了两个字 , 现在我们来点更帅
的!写好以后会是这样的效果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env python
background_image_filename='sushiplate.jpg'
mouse_image_filename='fugu.png'
# 指定图像文件名称
importpygame
# 导入 pygame 库
frompygame.localsimport*
# 导入一些常用的函数和常量
fromsysimportexit
# 向 sys 模块借一个 exit 函数用来退出程序
pygame.init()
# 初始化 pygame, 为使用硬件做准备
screen=pygame.display.set_mode((640,480),0,32)
# 创建了一个窗口
pygame.display.set_caption("Hello, World!")
# 设置窗口标题
background=pygame.image.load(background_image_filename).convert()
mouse_cursor=pygame.image.load(mouse_image_filename).convert_alpha()
# 加载并转换图像
whileTrue:
# 游戏主循环
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
foreventinpygame.event.get():
ifevent.type==QUIT:
# 接收到退出事件后退出程序
exit()
screen.blit(background, (0,0))
# 将背景图画上去
x, y=pygame.mouse.get_pos()
# 获得鼠标位置
x-=mouse_cursor.get_width()/2
y-=mouse_cursor.get_height()/2
# 计算光标的左上角位置
screen.blit(mouse_cursor, (x, y))
# 把光标画上去
pygame.display.update()
# 刷新一下画面
这个程序需要两张图片,你可以在这篇文章最后的地方找到下载地址,虽然你也可以随便找两张 。 为
了达到最佳效果,背景的 sushiplate.jpg 应要有 640 × 480 的分辨率,而光标的 fugu.png 大约应为
80 × 80 ,而且要有 Alpha 通道(如果你不知道这是 什么,还是下载吧 …… ) 。
注意
注意
注意
注意 :代码中的注释我使用的是中文,如果执行报错,可以直接删除。
游戏中我已经为每一行写了注释 , 另外如果打算学习 , 强烈建议自己动手输入一遍而不是复制粘贴 !
稍微讲解一下比较重要的几个部分:
set_mode
set_mode
set_mode
set_mode 会返回一个 Surface 对象,代表了在桌面上出现的那个窗口,三个参数第一个为元祖 , 代
表分 辨率(必须 ) ;第二个是一个标志位,具体意思见下表,如果不用什么特性,就指定 0 ;第三个
为色深。
剩余111页未读,继续阅读
资源评论
blog_1103
- 粉丝: 449
- 资源: 35
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240509_034911_com.tencent.mtt.jpg
- 基于python实现的医学影像体脂分割+源代码+文档说明(课程设计)
- 基于python实现的医学影像(MIR, CT )图像分割源码+文档说明(高分课程设计)
- 基于python+JavaScript实现的医学影像分割+源代码+文档说明+截图演示+数据(高分毕业设计)
- 基于U-net+pytorch实现的医学影像分割python源码+文档说明+数据+界面截图+博客介绍
- 课程设计-基于Pytorch实现MNIST数据集的手写数字识别源码+数据(Gui界面)+文档说明+模型
- 软件开发国家标准.xls
- pytorch-CNN-SBATM-ubuntudemo
- matplotlibdemo
- pytorch-CNN-dht11温湿度传感器笔记
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功