2D游戏开发(1)
《外星人入侵》
通过pygame,入门python的2D游戏开发过程,通过教材制作一个打外星人游戏。
1、函数 run_game()
import sys
import pygame
def run_game():
#初始化游戏,并创建一个屏幕对象
pygame.init()
screen = pygame.display.set_mode((1200, 800))
pygame.display.set_caption("Alien Invasion")
#开始游戏的主循环
while True:
#监视键盘、鼠标的操作
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
#让屏幕可视化
pygame.display.flip()
run_game()
这段函数导入了2个模块,sys 、pygame。模块pygame包含了开发游戏所需要的功能,玩家退出时需要使用模块sys来进退出。
pygame.init()进背景初始化,让pygame可以正确的工作。在这里使用pygame.display.set_mode()来创建一个名为screen的显示窗口。
元组(1200,800)指定了游戏窗口的大小。
这个游戏的主体,由一个while循环控制,这个while循环包含了一个循环事件以及管理屏幕更新的代码。
事件是用户玩游戏时执行的操作,如 按键,移动鼠标。为让程序响应事件,我们编写了一个事件循环,以侦听事件,并根据发生的事件执行
响应的任务。这里的for循环就是完成这个工作。
例如:
玩家点击游戏窗口的关闭按钮时,将检测到pygame.QUIT事件,进而程序将调用sys.exit()来退出游戏。
pygame.display.flip()的功能是让pygame最近绘制的屏幕课间,在这里它每次执行while循环时都会绘制一个空屏幕,并擦去旧屏幕,使得只有
新屏幕课间。在我们移动游戏元素时,pygame.display.flip()将不断更新屏幕,以显示元素的新位置。
在最后一行,调用了run_game(),这将初始化游戏并开始主循环,此时运行代码就会看到一个空的pygame窗口。
最新文章
- WeedFS0.6.8-引用库列表
- DLL和LIB的一些知识点(网上搜集)
- Security » Authorization » 基于角色的授权
- 重装yum
- MVC 5 的 EF6 Code First 入门
- 点击其它地方隐藏div/事件冒泡/sweet-alert阻止冒泡
- Erich Gamma
- C#设计模式(3)-工厂方法模式
- 踩坑学习python自动化测试第二天!
- sha1 算法源码
- C语言函数strstr
- Git 简介及简单操作
- angularjs 的模型无法绑定到隐藏域(input hidden)
- 《Inside C#》笔记(八) 接口
- PYTHON-组合 封装 多态 property装饰器
- 浅析微信支付:公众平台卡券功能开通、HTML5线上发券(JS-SDK接口)、查看卡券详情
- Java中的Html解析:使用jsoup
- IE快捷键
- spring cloud 知识点
- 《图像处理实例》 之 目标旋转矫正(基于区域提取、DFT变换)