96SEO 2026-02-19 10:18 0
在我的预想里#xff0c;我们的小蜜蜂既然是一只猫#xff0c;那么放出的子弹…目录

在我的预想里我们的小蜜蜂既然是一只猫那么放出的子弹应该是一只猫爪或者是爪印一个小梅花也是可以的但是“大蟒蛇”是画出一个灰色的长方形小方块作为子弹我们先按照书上的来操作后期我们自己再升级。
首先跟新setting模块增加子弹需要的设置的属性值比如长、宽、颜色、速度等
__init__(self):self.screen_width
(220,220,220)self.ship_speed_factor
和创建小蜜蜂一样我们同样的思路要创建一个子弹的类每调用一次就会产生一个子弹
__init__(self,new_setting,screen,ship):super(Bullet,self).__init__()self.screen
pygame.Rect(0,0,new_setting.bullet_width,new_setting.bullet_hight)self.rect.centerx
new_setting.bullet_colorself.speed_factor
new_setting.bullet_speed_factor
1、我们导入的Sprite是pygame的一个类用于实现精灵。
在Pygame中精灵是一种可以在游戏中显示的对象可以理解成一个个小图片。
精灵类提供了很多有用的方法可以方便地创建游戏中的精灵对象而无需手动创建每个图像并将其加载到游戏中。
精灵通常用于实现游戏中的角色、物品等元素。
例如你可以使用精灵类来创建一个在游戏中显示的角色并使其具有移动、跳跃等行为。
为什么叫精灵就不知道了网上查解释是有人认为是因为精灵是一种抽象的概念可以用来表示游戏中的一切能感知时间流逝、具有坐标位置的元素。
总之精灵是一个非常实用的类可以帮助你更轻松地开发游戏。
Bullet(Sprite)的目的是让Bullet继承Sprite这意味着Bullet类将具有Sprite类的所有属性和方法并且还可以添加自己的属性和方法。
3、super()函数是用来调用父类的方法的结合2的解释那么super(Bullet,self).__init__()就是调用了Sprite的初始化方法确保Bullet类能够正确地继承并使用Sprite类的初始化代码。
pygame.Rect(0,0,new_setting.bullet_width,new_setting.bullet_hight)因为子弹跟小蜜蜂不一样它不是图片它需要凭空先创建一个出来所以在坐标0,0的位置先创建出一个子弹的实例然后后面再设置属性将其移动到正确的位置。
前面我们已经将子弹的基本属性创建好了如果我们需要使用它们还需要创建绘制函数和移动函数我们将代码还是写在bullet模块里。
draw_bullet(self):pygame.draw.rect(self.screen,self.color,self.rect)
这里就不解释了移动为什么这么写参考小蜜蜂的移动是为了更好的调解速度。
现在我们已经将子弹的各个属性都准备好了下面就是调用模块创建子弹对象就行了。
有些小伙伴认为那还不简单在game_functions模块里面加上判断当按下的键盘键为空格时产生一颗子弹这样就能实现发射子弹的效果。
简单的思路确实是这样但是这只能针对一发子弹我们可以想象在实际的游戏过程中屏幕上的子弹是一发接着一发都快连成线了当我们使用上面思路时每一次创建一个新子弹都会覆盖掉前面的一发子弹屏幕上只会有一发子弹。
因此我们要用到sprite中的Group类。
在pygame中sprite模块带有一个名为Group的类它是一个容器类用于保存和管理多个Sprite对象。
Group类具有以下方法
随后我们对game_functions进行修改主要修改两个地方一个是在按键判断哪里加上按空格键的判断二是在屏幕刷新那添加刷新子弹代码如下
check_keydown_events(event,new_setting,screen,ship,bullets):if
pygame.K_RIGHT:ship.moving_right
Bullet(new_setting,screen,ship)bullets.add(new_bullet)def
check_keyup_events(event,ship):if
pygame.K_RIGHT:ship.moving_right
check_events(new_setting,screen,ship,bullets):for
event.typepygame.KEYDOWN:check_keydown_events(event,new_setting,screen,ship,bullets)elif
event.typepygame.KEYUP:check_keyup_events(event,
update_screen(new_setting,screen,ship,bullets):screen.fill(new_setting.bg_color)for
bullets.sprites():bullet.draw_bullet()ship.blitme()pygame.display.flip()
Bullet(new_setting,screen,ship)创建了一个子弹对象也就是精灵然后通过代码bullets.add(new_bullet)将每个子弹精灵加到编组中。
可以看出在game_functions的多个函数中增加了参数bullets因此我们再主函数调用的时候要将参数传进去。
主函数代码修改为
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)pygame.display.set_caption(狂敲代码的橘子)bullets
True:gf.check_events(new_setting,screen,ship,bullets)ship.update()bullets.update()gf.update_screen(new_setting,screen,ship,bullets)run_game()
bullets.update()表示这个编组的每个精灵调用update()函数即确定了每个精灵的位置然后调用update_screen函数刷新屏幕显示出小蜜蜂和子弹。
子弹已经飞起来了如同我们已经走在了去往山坡的路上纵有艰险我们一一克服终将取得那美丽的蒲公英。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback