《外星人入侵》

通过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窗口。

最新文章

  1. WeedFS0.6.8-引用库列表
  2. DLL和LIB的一些知识点(网上搜集)
  3. Security » Authorization » 基于角色的授权
  4. 重装yum
  5. MVC 5 的 EF6 Code First 入门
  6. 点击其它地方隐藏div/事件冒泡/sweet-alert阻止冒泡
  7. Erich Gamma
  8. C#设计模式(3)-工厂方法模式
  9. 踩坑学习python自动化测试第二天!
  10. sha1 算法源码
  11. C语言函数strstr
  12. Git 简介及简单操作
  13. angularjs 的模型无法绑定到隐藏域(input hidden)
  14. 《Inside C#》笔记(八) 接口
  15. PYTHON-组合 封装 多态 property装饰器
  16. 浅析微信支付:公众平台卡券功能开通、HTML5线上发券(JS-SDK接口)、查看卡券详情
  17. Java中的Html解析:使用jsoup
  18. IE快捷键
  19. spring cloud 知识点
  20. 《图像处理实例》 之 目标旋转矫正(基于区域提取、DFT变换)

热门文章

  1. linux里的那么点东西(持续更新)
  2. Java转型(向上转型和向下转型)
  3. Jquery对raido的一些操作方法
  4. 浅谈C#抽象类
  5. Java Comparator的范型类型推导问题
  6. 【知识学习】如何寻找真实IP
  7. Java中的WebService服务
  8. HTML5 拖放(Drag 和 Drop)功能开发——浅谈dataTransfer对象
  9. 【2017-05-03】winform打印控件、事件对象和事件数据、MDI窗体容器
  10. java线程(三)