美色商城 网站建设乐陵森洁新能源有限公司电话

pingmian/2025/10/12 16:41:10/文章来源:
美色商城 网站建设,乐陵森洁新能源有限公司电话,万网 网站建设方案书,昆明昌盛网络技术有限公司系列文章目录 星际争霸之小霸王之小蜜蜂#xff08;十一#xff09;--杀杀杀 星际争霸之小霸王之小蜜蜂#xff08;十#xff09;--鼠道 星际争霸之小霸王之小蜜蜂#xff08;九#xff09;--狂鼠之灾 星际争霸之小霸王之小蜜蜂#xff08;八#xff09;--蓝皮鼠和大…系列文章目录 星际争霸之小霸王之小蜜蜂十一--杀杀杀 星际争霸之小霸王之小蜜蜂十--鼠道 星际争霸之小霸王之小蜜蜂九--狂鼠之灾 星际争霸之小霸王之小蜜蜂八--蓝皮鼠和大脸猫 星际争霸之小霸王之小蜜蜂七--消失的子弹 星际争霸之小霸王之小蜜蜂六--让子弹飞 星际争霸之小霸王之小蜜蜂五--为小蜜蜂降速 星际争霸之小霸王之小蜜蜂四--事件监听-让小蜜蜂动起来 目录 系列文章目录 文章目录 前言 一、按键事件无法监听情况 二、游戏结束的几种情形 三、检测小老鼠和小花猫碰撞 四、猫有九条命 五、雅典娜被攻击 六、游戏结束 总结 前言 昨天我们已经完成了游戏的主要部分之一就是子弹的碰撞监测我们还有一些事情需要解决比如判断游戏失败、游戏记分等等今天我们先来实现判断游戏失败功能。 一、按键事件无法监听情况 这是跟今天的内容关系不大的部分但是之前一直存在的问题没有解决。之前我们写了一段代码通过按键盘上的Q键可以实现程序的关闭 elif event.key pygame.K_q:sys.exit() 当写完这个代码之后我发现按Q键并没有任何反应因为不影响我用鼠标点击关闭游戏所以一直没有管它今天再写新代码之前我试着解决首先我在判断按键为Q后添加输出语句但当我点击Q时控制台没有任何输出内容。于是我怀疑按Q时有没有触发按键事件我在判断监听键盘按键下 elif event.typepygame.KEYDOWN:添加输出结果发现按字母都没有输出也就是没监听到但是按其他键比如空格、方向键、数字都可以从逻辑上来说不应该发生这种事情。经过多方查找资料终于知道原因我们在运行程序时键盘输入默认是中文输入法这时按字母键是监听不到的我们把切换成英文输入法就解决了这个问题。 二、游戏结束的几种情形 言归正传今天我们要编写的是判定游戏结束玩游戏的人都知道游戏结束有几种情况一是小老鼠和小花猫进行了撞击可以判定游戏结束二是小老鼠进入了屏幕最下边就像塔防一样放跑了小怪雅典娜就死了游戏判定结束三是时间到了判定游戏结束。如果存在生命值或者好几条命的情况上面的前两种情形还要加判断判断是否没有命了如果没有命则游戏结束。 基于上面的思考我们根据各种情形编写代码。 三、检测小老鼠和小花猫碰撞 我们在更新每只小老鼠的位置后判断其是否和小花猫碰撞。 def update_aliens(new_setting,,ship,aliens):check_fleet_edges(new_setting,aliens)aliens.update()if pygame.sprite.spritecollideany(ship,aliens):print(完了) 看到上面的代码我们想到写子弹和老鼠碰撞时调用的函数pygame.sprite.groupcollide这里我们也使用了一个函数使实现过程变得非常简单。 pygame.sprite.spritecollideany(ship, aliens)是Pygame库中的一个函数用于检测一个精灵是否与一组精灵中的任意一个发生了碰撞。其中ship是一个精灵对象aliens是一个精灵组对象。如果ship与aliens中的任意一个精灵发生了碰撞该函数会返回True否则返回False。 这里判断撞击后书上并没有编写后续过程我猜后面要统一编写只是写了一个输出证明实现了判断的功能我们将老鼠的速度加大来测试下。 可以看到控制台上出现很多的“完了”因为小老鼠有很多左右撞击都会判定成功。 四、猫有九条命 这个游戏最终还是赋予了玩家好几条命但是书上的思路我觉得还是非常好的正常我们想到的是重新创建一个新的小花猫就像爆炸的子弹和老鼠一样书上给的思路是不创建新的花猫只创建一个变量来记录花猫死的次数花猫还是那个花猫。为此创建一个类GameStats保存游戏里面需要统计的信息。 class GameStats():def __init__(self,new_setting):self.new_setting new_settingself.reset_stats()def reset_stats(self):self.ships_left self.new_setting.ship_limit 这里的self.new_setting.ship_limit我们马上在settings模块设置 class Settings():def __init__(self):self.screen_width 800self.screen_height 600self.bg_color (255,255,255)self.ship_speed_factor 0.1self.ship_limit 9self.bullet_speed_factor 0.5self.bullet_width 2self.bullet_hight 5self.bullet_color 60,60,60self.bullets_allowed 20self.alien_speed_factor 2self.fleet_drop_speed 50self.fleet_direction 1 至此我们应该想到需要在哪些地方使用这个函数首先想到的就是我们上面写的老鼠和花猫碰撞之后但是在update_aliens调用之前我们需呀将其实例化传入实参。 import pygame import settings from ship import Ship import game_functions as gf from pygame.sprite import Group from alien import Alien from game_stats import GameStatsdef run_game():pygame.init()new_settingsettings.Settings()screen pygame.display.set_mode((new_setting.screen_width,new_setting.screen_height))ship Ship(screen,new_setting)alien Alien(new_setting,screen)pygame.display.set_caption(狂敲代码的橘子)bullets Group()aliens Group()gf.create_fleet(new_setting,screen,aliens)stats GameStats(new_setting)while True:gf.check_events(new_setting,screen,ship,bullets)ship.update()gf.update_bullets(new_setting,screen,bullets,aliens)gf.update_aliens(new_setting,stats,ship,aliens)gf.update_screen(new_setting,screen,ship,bullets,aliens)run_game() 我们在主函数对其实例化然后再调用update_aliens函数时将其传入。在update_aliens里面我们要实现一是将小花猫的命减一二是删除原来的老鼠创建一群新的老鼠三是将小花猫放在初始位置也就是窗口的中央。 def ship_hit(new_setting,stats,screen,ship,aliens,bullets):stats.ships_left - 1aliens.empty()bullets.empty()create_fleet(new_setting, screen, aliens)ship.center_ship()time.sleep(0.5)def update_aliens(new_setting,stats,screen,ship,aliens,bullets):check_fleet_edges(new_setting,aliens)aliens.update()if pygame.sprite.spritecollideany(ship,aliens):ship_hit(new_setting, stats, screen, ship, aliens, bullets) 这段代码不难理解我们发现 ship.center_ship()这个函数我们没有在ship类中定义它的功能就是将小花猫放到中央去其实可有可无我觉得原地复活也不错但是按照书上我们还是在ship类中添加   def center_ship(self):self.center self.screen_rect.centerx 我们运行试试效果 五、雅典娜被攻击 之前我们分析过除了老鼠和小猫进行撞击小猫会掉血以外还有就是老鼠触及屏幕底端相当于塔防游戏失守怪物跑老家了。实现这个功能非常简单我们只需要在判断老鼠和花猫碰撞后再增加一个判断如果碰撞了后续操作和老鼠碰到猫一样我们直接调用ship_hit函数就行了。 def check_aliens_bottom(new_setting,stats,screen,ship,aliens,bullets):screen_rect screen.get_rect()for alien in aliens.sprites():if alien.rect.bottom screen_rect.bottom:ship_hit(new_setting,stats,screen,ship,aliens,bullets)breakdef update_aliens(new_setting,stats,screen,ship,aliens,bullets):check_fleet_edges(new_setting,aliens)aliens.update()if pygame.sprite.spritecollideany(ship,aliens):ship_hit(new_setting, stats, screen, ship, aliens, bullets) check_aliens_bottom(new_setting, stats, screen, ship, aliens, bullets) 我们不像写小老鼠和小花猫碰撞那样直接在update_aliens里进行判断而是将代码写在 check_aliens_bottom函数里。为了测试代码效果我们将判断老鼠和花猫碰撞的代码注释掉避免发生干扰。 可以看见老鼠穿过花猫后没有问题然后老鼠重新生成。 六、游戏结束 游戏结束的各种情形已经写完但是目前老鼠和小猫还在不断重生我们设置的猫的命属性还没有用上我们加上判断语句小猫每归位一次生命就减一。 def ship_hit(new_setting,stats,screen,ship,aliens,bullets):stats.ships_left - 1aliens.empty()bullets.empty()create_fleet(new_setting, screen, aliens)ship.center_ship()if stats.ships_left 0:stats.ships_left - 1time.sleep(0.5)else:stats.game_active False 书上用stats.game_active属性表示游戏是否结束我个人觉得没必要这么麻烦就用stats.ships_left0表示游戏结束就不行了。 总结 有始有终今天我们完成了游戏的失败判定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88432.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站改了关键词如何删除网站黑链

一、hiredis源码安装说明 本文创作基于 hiredisv1.2.0版本 1.简介 hiredis是一个用于与Redis交互的C语言客户端库。它提供了一组简单易用的API,使开发人员可以轻松地连接到Redis服务器,并执行各种操作,如设置和获取键值对、执行命令、订阅和…

福州网站建设求职简历莱芜做网站

目录 一,计算机网络背景 二,网络协议初识 三,网络传输基本流程 四,网络中的地址管理 一,计算机网络背景 网络发展 独立模式,计算机之间相互独立;网络互联,多台计算机连接在一起…

上海建设工程施工许可证查询网站智慧团建网站登录密码

一、创建项目 1、创建一个spring-boot的项目 2、创建三个模块file、system、gateway模块 3、file和system分别配置启动信息,并且创建一个简单的控制器 server.port9000 spring.application.namefile server.servlet.context-path/file4、在根目录下引入依赖 <properties&g…

垡头网站建设网站及微站建设合同验收

在没有封面图片的时候&#xff0c;会随机显示出几张色彩不同的风格图片。这样整个效果就好很多&#xff0c;也能减少工作量&#xff0c;毕竟我们没太多时间去找封面图处理。我就想着用Eyoucms能执行PHP的功能&#xff0c;用rand随机下这几张图片出来&#xff0c;我用mt_rand&am…

番禺区大石做网站苏州手机网站设计

我们多次被问到使用Enigma Protector保护软件免遭破解和逆向工程的最佳方法是什么&#xff1f;在这里我将解释保护常用应用程序的技巧是什么。 许多开发人员认为&#xff0c;如果他们只需单击“保护”按钮&#xff0c;保护程序就会自动完成所有操作&#xff0c;无需嵌入额外的…

宝安网站设计项目没有网站怎么推广

功能&#xff1a;ArrayList去除集合中字符串的重复值(字符串的内容相同)&#xff0c;思路&#xff1a;创建新集合方式。 第一种编译运行没问题&#xff0c;第二种写法出错&#xff0c;原因是不可以两次使用it.next()。 错误提示&#xff1a;Exception in thread "main&q…

建设一个视频网站己18虚拟现实企业解决方案

什么是 Raneto &#xff1f; Raneto 是一个开源知识库平台&#xff0c;它使用静态 Markdown 文件来支持您的知识库。 官方提供了 doc & demo 网站&#xff0c;即是帮助文档&#xff0c;也是个 demo&#xff0c;地址&#xff1a;https://docs.raneto.com 准备 项目使用con…

网站开发主要任务网站建设选哪个

前几天老爸在小区垃圾桶旁边捡回来一个旧茶几&#xff0c;又脏又破都掉漆了&#xff0c;捡回来用不了还占地方&#xff0c;他却非说要动手将它改成个小沙发。那么麻烦还不如直接买一个&#xff0c;但最后改出来的效果还不错&#xff0c;关键是便宜&#xff0c;不到50块钱比定制…

网站开发技术与功能 需求说明牡丹江商城网站建设

文章目录环境准备使用的系统软件磁盘目录安装libfastcommon安装FastDFS安装fastdfs-nginx-module安装nginx单机部署tracker配置storage配置client测试配置nginx访问分布式部署tracker配置storage配置client测试配置nginx访问启动防火墙trackerstoragenginx检测集群说明配置文件…

网站建设策划书1万字网络设置网站

文章目录 1、启动、关闭、挂起、恢复&#xff08;电源&#xff09;2、更多虚拟机操作2.1 电源设置2.2 硬件参数设置2.3 状态栏2.4 全屏显示 3、快照与系统恢复4、桌面环境5、文件系统6、用户目录7、创建目录和文件8、命令行&#xff1a;文件列表ls 9、命令行&#xff1a;切换目…

网站建设目的和功能定位广告投放平台

目录 前言 一.简介 二.优缺点 三.Element完成登录注册 1. 环境配置及前端演示 1.1 安装Element-UI模块 1.2 安装axios和qs(发送get请求和post请求) 1.3 导入依赖 2 页面布局 2.1组件与界面 3.方法实现功能数据交互 3.1 通过方法进行页面跳转 3.2 axios发送get请求 …

合肥建设官方网站网页设计师培训水公司

文 | Ryan都已经2021年了&#xff0c;互联网已经今非昔比&#xff0c;20年前纯文本的日子已经一去不复返&#xff0c;文字已经满足不了网页、文章的需求&#xff0c;绝大部分都会有着精心设计的表格、图片&#xff0c;甚至视频。PDF文档这种富文本格式拥有更加复杂的结构信息&a…

北京市建设工程造价管理处 网站wordpress管理导航栏目

问题描述 最近安装了MYSQL8&#xff0c;遇到了各种问题&#xff0c;总体汇总一下&#xff0c;凡是无法启动就是my.cnf和初始化的参数不匹配。 第一种 启动前设置了mysqld --initialize --usermysql --lower-case-table-names1&#xff0c;my.cnf文件却没有修改就去启动。 第…

在哪可以建一个网站沂水网站建设

引言 Redis是一款基于内存的键值对数据库&#xff0c;提供了多种数据结构存储数据&#xff0c;存取数据的速度还非常快&#xff0c;除了这些优点它还提供了其他特色功能&#xff0c;比如&#xff1a;管道、lua脚本、发布订阅模型 本篇文章主要描述发布订阅模型&#xff0c;将…

免费微信网站开发前端技术包括哪些

大家都知道电脑使用起来非常方便&#xff0c;但遇见ps如何画直线的时候就非常头疼了&#xff0c;如果你是第一次遇到ps如何画直线&#xff0c;怎么样才能快速解决ps如何画直线带来的烦恼呢&#xff1f;小编为大家收集了很多关于ps如何画直线问题的解决方法&#xff0c;下面请看…

益阳市网站建设交换友情链接的意义是什么

随着科技的快速发展&#xff0c;现在的人们越来越注重自己的卫生问题&#xff0c;不仅在吃上面会注重卫生问题&#xff0c;在用的上面也会更加严格要求&#xff0c;而衣服做为我们最贴身的东西&#xff0c;我们对它的要求也会更加高&#xff0c;所以最近这几年较火爆的无疑是内…

广州手机网站制作天津网站建设揭秘

命名规则&#xff1a;表名_字段名1、需要加索引的字段&#xff0c;要在where条件中2、数据量少的字段不需要加索引3、如果where条件中是OR关系&#xff0c;加索引不起作用4、符合最左原则尽量不要用or&#xff0c;如果可以用union代替&#xff0c;则一定要代替https://segmentf…

无锡做推广的网站织梦cms做网站教程视频

前言 逻辑门本质上操作的是单个二进制数&#xff0c;通过高低电压或者有无信号来表示&#xff0c;并且&#xff0c;因为二进制数的原因&#xff0c;一个数字&#xff0c;我们可以通过二进制数来表示&#xff0c;整数可以精确表示&#xff0c;浮点数可以近似表示 本篇文章使用逻…