《Python和Pygame游戏开发指南》——2.9 Surface对象和窗口
2023-09-11 14:17:37 时间
本节书摘来自异步社区《Python和Pygame游戏开发指南》一书中的第2章,第2.9节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.9 Surface对象和窗口Surface对象是表示一个矩形的2D图像的对象。可以通过调用Pygame绘制函数,来改变Surface对象的像素,然后再显示到屏幕上。窗口的边框、标题栏和按钮并不是Surface对象的一部分。
特别是pygame.display.set_mode()返回的Surface对象叫作显示Surface(display Surface)。绘制到显示Surface对象上的任何内容,当调用pygame.display.update()函数的时候,都会显示到窗口上。在一个Surface对象上绘制(该对象只存在于计算机内存之中),比把一个Surface对象绘制到计算机屏幕上要快很多。这是因为修改计算机内存比修改显示器上的像素要快很多。
程序经常要把几个不同的内容绘制到一个Surface对象中。在游戏循环的本次迭代中,一旦将一个Surface对象上的所有内容都绘制到了显示Surface对象上(这叫作一帧,就像是暂停的DVD上的一幅静止的画面),这个显示Surface对象就会绘制到屏幕上。计算机可以很快地绘制帧,并且我们的程序通常会每秒运行30帧,即30 FPS。这叫作帧速率(frame rate),我们将在本章后面介绍它。
本章后面的第2.14节和2.19节将会介绍在Surface对象上绘制。
为了练习自己的Python基础语法,我用pygame写了一个打砖块闯关的游戏 这里的BOSS战是我自己想的,打不动的砖块实在是没有什么意思,于是这个版本我更新了两场BOSS战,我们终于可以打BOSS(其实目前只是会动的大砖块)了。我打算实现道具,并为第一个BOSS加上技能,同时为游戏添加BGM,最后为了给我其他没学过Python的同学测评,我将其编译成了。那是一个百无聊赖的夜晚,我回顾了自己自大学以来的经历,感觉生活十分平淡,学习了许多计算机知识,但是似乎什么东西都没有用上。游戏诞生的喜悦,使我改变了最开始只是简单复现的计划,我打算写进去更多的东西,更完整地复现功能,最好还能有点。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- 小白学 Python 爬虫(37):爬虫框架 Scrapy 入门基础(五) Spider Middleware
- Python字符串逐字符或逐词反转方法
- python实现堆栈与队列的方法
- Python 日期和时间_python 当前日期时间_python日期格式化
- python中pygame游戏打包为exe文件
- python格式化输出
- paip.python错误解决8
- 用Python做一个游戏辅助脚本,完整编程思路分享!
- Python之多线程:python多线程设计之同时执行多个函数命令详细攻略
- Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button展示图片事件)
- 已解决2.Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and wi
- 【python 游戏】闲的无聊?那就和博主一起来滑雪吧~
- python标准库之secrets
- 【华为机试Python实现】HJ4 字符串分隔(简单)
- Python游戏开发入门:pygame事件处理机制-3
- Python游戏开发入门:pygame实例运动的小球-5
- Python:ImportError: No module named
- Python跨目录导包踩坑记录
- Python: 渐进猜数字游戏 <5> 控制语句
- Python: 渐进猜数字游戏 <4> 数据类型及随机数
- opencv视频输入每帧处理之后组合视频导出(python)
- Python .py 文件打包成 .exe 文件(Windows平台,python 3.x)