Python游戏编程入门(一)——初识Pygame
Pygame是一组功能强大而有趣的模块,可用于管理图形、动画乃至声音,可以让我们很轻松的开发复杂的游戏。通过使用Pygame来处理在屏幕上绘制图像等任务,不用考虑众多繁琐而艰难的编码的工作,而是将重点放在程序的高级逻辑上。
安装Python
官网地址:https://www.python.org/downloads/
本系列博文使用的是Python3.6.8
64位系统可以下载Windows x86-64 executable installer,下载完成后双击Python安装包,然后通过图形界面安装,接着设置Python的安装路径,完后将Python3和Python3的Scripts目录配置到环境变量即可。
安装Pygame
地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame,下载与Python版本对应的版本
最后确认是否正确安装:
创建Pygame窗口以及响应用户输入
from sys import exit # 导入sys库中的exit函数import pygame # 导入pygame库
from pygame.locals import * # 导入pygame库中的一些常量# 定义窗口的分辨率
SCREEN_WIDTH = 480
SCREEN_HEIGHT = 320def run_game():# 初始化游戏并创建一个屏幕对象pygame.init()# 初始化一个用于显示的窗口# 对象screen是一个surface,在Pygame中,surface是屏幕的一部分,用于显示游戏元素# 这里pygame.display.set_mode()返回的surface表示整个游戏窗口screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))# 设置窗口标题pygame.display.set_caption("This is my first pygame-program")# 开始游戏的主循环while True:# 监视键盘和鼠标事件# 从消息队列中循环取for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()run_game()
程序运行结果如下:
pygame.display.flip() :在这里,它在每次执行while循环时都绘制一个空屏幕,并擦去旧屏幕,使得只有新屏幕可见。在我们移动游戏元素时,pygame.display.flip()将不断更新屏幕,以显示元素的新位置,并在原来的位置隐藏元素,从而营造平滑移动的效果。
设置背景图片
from sys import exit # 导入sys库中的exit函数import pygame # 导入pygame库
from pygame.locals import * # 导入pygame库中的一些常量# 定义窗口的分辨率
SCREEN_WIDTH = 480
SCREEN_HEIGHT = 320# 载入背景图
background = pygame.image.load('resources/image/background.jpg')def run_game():# 初始化游戏并创建一个屏幕对象pygame.init()# 初始化一个用于显示的窗口screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))# 设置窗口标题pygame.display.set_caption("This is my first pygame-program")# 开始游戏的主循环while True:# 绘制背景screen.blit(background, (0, 0))# 更新屏幕pygame.display.update()# 监视键盘和鼠标事件# 从消息队列中循环取for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()run_game()
运行效果如下:
设置背景色
from sys import exit # 导入sys库中的exit函数import pygame # 导入pygame库
from pygame.locals import * # 导入pygame库中的一些常量# 定义窗口的分辨率
SCREEN_WIDTH = 480
SCREEN_HEIGHT = 320# 载入背景图
# background = pygame.image.load('resources/image/background.jpg')# 设置背景色
bg_color = (250, 0, 0)def run_game():# 初始化游戏并创建一个屏幕对象pygame.init()# 初始化一个用于显示的窗口screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))# 设置窗口标题pygame.display.set_caption("This is my first pygame-program")# 开始游戏的主循环while True:# # 绘制背景# screen.blit(background, (0, 0))# # 更新屏幕# pygame.display.update()# 监视键盘和鼠标事件# 从消息队列中循环取for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()# 每次循环时都会重绘屏幕,此处用背景色填充屏幕screen.fill(bg_color)# 局部刷新,pygame.display.flip()是屏幕的整体刷新pygame.display.update()run_game()
运行效果如下:
Python游戏编程入门(一)——初识Pygame相关推荐
- 《Python游戏编程入门》——1.2 初识Python
本节书摘来自异步社区<Python游戏编程入门>一书中的第1章,第1.2节,作者[美]Jonathan S. Harbour ,李强 译,更多章节内容可以访问云栖社区"异步社区& ...
- pygame 学习笔记(4)推荐一本python入门游戏书籍《PYTHON游戏编程入门》
简介 <PYTHON游戏编程入门>(More Python Programming for the Absolute Beginner)是 S.Harbour写的一本入门书籍,基于pyga ...
- python游戏编程入门-python游戏编程入门
<Python游戏编程入门> 这些文章负责整理在这本书中的知识点.注意事项和课后习题的尝试实现. 并且对每一个章节给出的最终实例进行分析和注释. 初识pygame:pie游戏 pygame ...
- python游戏编程入门 免费-python游戏编程入门 python游戏编程入门课
python游戏编程入门 python游戏编程入门课 什么是python游戏编程入门?首先我们需要认识什么是Python Python既是一个软件工具包,也是一种语言.Python软件包包含了一个名为 ...
- 青少年Python游戏编程入门(Beginning Game Programming for Teens with Python译文)
青少年Python游戏编程入门 Beginning Game Programming for Teens with Python Julian Meyer on January 22, 2013 ...
- python游戏编程入门免费_python游戏编程入门 python游戏编程入门课
python游戏编程入门 python游戏编程入门课 什么是python游戏编程入门?首先我们需要认识什么是Python Python既是一个软件工具包,也是一种语言.Python软件包包含了一个名为 ...
- python游戏编程入门p_Python游戏编程入门 PDF高清完整版
Python游戏编程入门 PDF高清完整版 作者: 哈伯 (Jonathan S.Harbour) 译者: 李强 出版年: 2015-1-1 页数: 292 装帧: 平装 ISBN: 97871153 ...
- python游戏编程入门源代码_python游戏编程入门源代码
[实例简介] <Python游戏编程入门>的源代码,作者Jonathan S.Harbour 很好的资源,希望对学习python的同学有帮助,代码都可以运行 [实例截图] [核心代码] p ...
- python游戏编程入门下载-Python游戏编程入门 中文pdf扫描版|网盘下载内附地址提取码|...
Python是一种解释型.面向对象.动态数据类型的程序设计语言,在游戏开发领域,Python也得到越来越广泛的应用,并由此受到重视. 本书教授用Python开发精彩游戏所需的[]为重要的该你那.本书不 ...
- Python游戏编程(九)pygame Hello World
我们通过使用pygame模块,创建一些带有图形和声音的.更有趣的高级游戏. 目录 主要内容 pygame Windows安装pygame 使用pygame pygame Hello World (一) ...
最新文章
- [BTS2004]一步一步学习BizTalk2004 CBR(content-based routing)
- 鲲鹏服务器设置ip文件,IPFS在鲲鹏云服务器中的安装与编译过程记录
- Python 办公自动化之一 Excel
- 十三种技术文档模板_在线文档,知多少?
- Java共现矩阵的构建(用于社交网络结构分析)
- bzoj 1026: [SCOI2009]windy数(数位dp)
- char数组打印地址和内容;
- paypal支付详细指南:基于PayPal-PHP-SDK进行接口对接
- 使用 python 批量移动文件夹下的文件
- 番子和滑条_中国细犬中的滑条和番子有哪些区别?不妨看看,看完后明白了!...
- STL容器底层实现数据结构
- 使用线程池批量爬取梨视频最热视频
- CSU 1224 ACM小组的古怪象棋
- 孤岛惊魂5 for Android,孤岛惊魂5手机版
- 有效的括号(leetcode简单)
- 美丽中国,我们在行动!
- php 循环结构的联系题,php - 烧脑题,有一个程序循环逻辑问题,急在线等
- IOS 原生二维码、条形码扫描for IOS7 (八)
- Android实战简易教程-第六十六枪(服务器端搭建和服务器端Json数据交互)
- 论述人工智能在电气工程自动化中的运用
热门文章
- CMS内容管理系统可行性分析
- matlab能替代几何画板吗,比几何画板更强大的工具软件GeoGebra,数学老师值得拥有...
- 电机学(2) - 变压器
- 懒人神器——自制自动写字机
- C# Aspose 去除水印 亲测有效!!!(有效测试时间:20220806)
- 根据省份名称返回省份简称(js代码)
- Windows Server 2003 安装教程
- Ubuntu安装GCC 3.4
- FlightGear的IO系统
- python一年365天_GitHub - yihong0618/Python365: Python365天精进计划