桃城网站建设,黄页名录网站开发,广州本地门户网站,免费推广广告链接目标了解碰撞检测方法碰撞实现1.了解碰撞检测方法pygame提供了两个非常方便的方法可以实现碰撞检测#xff1a;pygame.sprite.groupcollide()两个精灵组中所有的精灵的碰撞检测groupcollide(group1, group2, dokill1, dokill2, collided None) - Sprite_dict如果将dokill…目标了解碰撞检测方法碰撞实现1.了解碰撞检测方法pygame提供了两个非常方便的方法可以实现碰撞检测pygame.sprite.groupcollide()两个精灵组中所有的精灵的碰撞检测groupcollide(group1, group2, dokill1, dokill2, collided None) - Sprite_dict如果将dokill布尔类型设置为True则发生碰撞的精灵将被自动移除collided参数是用于计算碰撞的回调函数如果没有指定则每个精灵必须有一个rect属性代码演练在plane_main.py的PlaneGame类中修改__check_collide方法def __check_collide(self):# 1.子弹摧毁敌机pygame.sprite.groupcollide(self.hero.bullets, self.enemy_group, True, True)pygame.sprite.spritecollide()判断某个精灵和指定精灵组中的精灵的碰撞spritecollide(sprite, group, dokill, collided None) - Sprite_list如果将dokill设置为True则指定精灵组中发生碰撞的精灵将自动移除collided参数是用于计算碰撞的回调函数如果没有指定则每个精灵必须有一个rect属性返回精灵组中跟精灵发生碰撞的精灵列表代码演练在plane_main.py的PlaneGame类中修改__check_collide方法def __check_collide(self):# 1.子弹摧毁敌机pygame.sprite.groupcollide(self.hero.bullets, self.enemy_group, True, True)# 2.敌机撞毁英雄此时英雄是无敌的只有敌机会被销毁英雄不会被销毁pygame.sprite.spritecollide(self.hero, self.enemy_group, True)要想英雄也被销毁需要用到pygame.sprite.spritecollide()的返回值是一个精灵列表利用if判断列表的长度如果列表里有内容说明英雄和敌机发生了碰撞则结束游戏def __check_collide(self):# 1.子弹摧毁敌机pygame.sprite.groupcollide(self.hero.bullets, self.enemy_group, True, True)# 2.敌机撞毁英雄enemies pygame.sprite.spritecollide(self.hero, self.enemy_group, True)# 3.判断列表是否有内容if len(enemies) 0:# 让英雄牺牲self.hero.kill()# 结束游戏PlaneGame.__game_over()2.碰撞实现在plane_main.py的PlaneGame类中修改__check_collide方法def __check_collide(self):# 1.子弹摧毁敌机pygame.sprite.groupcollide(self.hero.bullets, self.enemy_group, True, True)# 2.敌机撞毁英雄enemies pygame.sprite.spritecollide(self.hero, self.enemy_group, True)# 3.判断列表是否有内容if len(enemies) 0:# 让英雄牺牲self.hero.kill()# 结束游戏PlaneGame.__game_over()
内容总结于:https://space.bilibili.com/37974444代码见https://github.com/x45w/python_feijidazhan1.git或者https://github.com/x45w/python_feijidazhan.git