热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python制作射击游戏_python实现飞船射击矩形的小游戏

文件“game_functions.py”存放跟游戏有关的所有业务逻辑函数(分析重点代码),代码如下图:关于事件的函数:1.函数“chec

文件“game_functions.py”存放跟游戏有关的所有业务逻辑函数(分析重点代码),代码如下图:

关于事件的函数:

1.函数“check_keydown_events”,当按下键盘下键“K_DOWN”,移动状态“move_down”为true;当按下键盘上键“K_UP”,移动状态“move_up”为true;当按下空格键“K_SPACE”,播放射击音效和发射子弹;当按下“P”键时(“K_p”),则开始游戏;当按下“Q”键时,则退出程序“sys.exit()”;

2.函数“check_keyup_events”,当松开下键“K_DOWN”,移动状态“move_down”为False;当松开上键“K_UP”,移动状态“move_up”为False;

3.函数“check_play_button”用来点击按钮“Play”开始游戏(执行函数“start_game”清空编组的数据和重置统计信息的数据);

4.函数“check_events”用来响应按键和鼠标事件,当点击屏幕关闭按钮“QUIT”,则保存最高分到文件并退出系统“sys.exit()”;当按键时(KEYDOWN),调用函数“check_keydown_events”;当松开按键时(check_keyup_events),调用函数“check_keyup_events”;当点击鼠标时(MOUSEBUTTONDOWN),判断是否按钮“Play”区域,如果是则调用函数“check_play_button”开始游戏。

关于文件的函数:

1.函数“save_file”用来存储最高分的数据到文件;

关于矩形的函数:

1.函数“create_rect”用来创建单个矩形,注意没有矩形才能创建,所以屏幕一直就只有一个矩形进行移动;

关于子弹的函数:

1.函数“fire_bullet”用来创建单颗子弹,按空格键才创建;

2.函数“check_bullet_rect_collisions”用来检查是否有子弹击中矩形:

1)如果击中,播放爆炸声音(explosiveSound.play());

2)计算得分“settings.score”,注意执行scoreboard.prep_score()来重新渲染分数;

3)调用函数“check_high_score”,如果分数大于最高分,则重新渲染分数到最高分;

4)如果每一关设置的通关数量“settings.level_number”为0,则执行“settings.increase_speed()”来提高速度和分数;

3.函数“update_bullets”:

1)当子弹没有击中矩形时(bullet.rect.right > screen.get_rect().right),删除创建的子弹,并减少可射失的数量(注意执行scoreboard.prep_ships(),不然左上角显示的飞船数量不会更新);

2)当可射失的数量“settings.ship_limit”为0时,停止游戏并显示按钮“Play”。

关于屏幕的函数:

1.函数“update_screen”用来更新屏幕的各种信息。



推荐阅读
  • 丛api的python的简单介绍
    本文目录一览:1、如何使用python利用api获取天气预报 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 前言无论使用哪种语言,我们都需要关注性能优化,提高执行效率。选择脚本语言需要持久的速度。在某种程度上,这句话说明了Python作为一种脚 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 项目背景:在玩游戏《坎巴拉太空计划》过程中发现火箭升空的过程比较有意思,想通过程序实现表述其具体升空的过程功能:1.输入变量, ... [详细]
  • 开发笔记:超全的《 Django 入门教程 》上线了,居然还免费!
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了超全的《Django入门教程》上线了,居然还免费!相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
摩擦摩擦魔鬼的步伐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有