Python全系列 教程
3567个小节阅读:5929.8k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
如果我方坦克碰撞到敌方坦克,则我方坦克再不能继续移动。同理如果敌方坦克碰撞到我方坦克也不能继续移动。
在我方坦克类中新增我方坦克与敌方坦克碰撞的方法。
xxxxxxxxxx
81class MyTank(Tank):
2 def __init__(self,left,top):
3 super(MyTank, self).__init__(left,top)
4 #新增主动碰撞到敌方坦克的方法
5 def hitEnemyTank(self):
6 for eTank in MainGame.EnemyTank_list:
7 if pygame.sprite.collide_rect(eTank,self):
8 self.stay()
我方坦克移动后,调用是否与敌方坦克发生碰撞。
xxxxxxxxxx
61 #根据坦克的开关状态调用坦克的移动方法
2 if MainGame.TANK_P1 and not MainGame.TANK_P1.stop:
3 MainGame.TANK_P1.move()
4 #调用碰撞墙壁的方法
5 MainGame.TANK_P1.hitWalls()
6 MainGame.TANK_P1.hitEnemyTank()
在敌方坦克类中,新增敌方坦克碰撞我方坦克的方法。
xxxxxxxxxx
51 def hitMyTank(self):
2 if MainGame.TANK_P1 and MainGame.TANK_P1.live:
3 if pygame.sprite.collide_rect(self, MainGame.TANK_P1):
4 # 让敌方坦克停下来 stay()
5 self.stay()
敌方坦克添加到窗口时候,调用是否与我方坦克碰撞。
xxxxxxxxxx
191 #将敌方坦克加入到窗口中
2 def blitEnemyTank(self):
3 for eTank in MainGame.EnemyTank_list:
4 if eTank.live:
5 eTank.displayTank()
6 # 坦克移动的方法
7 eTank.randMove()
8 #调用敌方坦克与墙壁的碰撞方法
9 eTank.hitWalls()
10 #敌方坦克是否撞到我方坦克
11 eTank.hitMyTank()
12 # 调用敌方坦克的射击
13 eBullet = eTank.shot()
14 # 如果子弹为None。不加入到列表
15 if eBullet:
16 # 将子弹存储敌方子弹列表
17 MainGame.Enemy_bullet_list.append(eBullet)
18 else:
19 MainGame.EnemyTank_list.remove(eTank)