Python全系列 教程
3567个小节阅读:5930.8k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
坦克类中添加速度属性,实现我方坦克移动。
xxxxxxxxxx
151 #移动
2 def move(self):
3 #判断坦克的方向进行移动
4 if self.direction == 'L':
5 if self.rect.left>0:
6 self.rect.left -= self.speed
7 elif self.direction == 'U':
8 if self.rect.top>0:
9 self.rect.top -= self.speed
10 elif self.direction == 'D':
11 if self.rect.top+self.rect.height<SCREEN_HEIGHT:
12 self.rect.top += self.speed
13 elif self.direction == 'R':
14 if self.rect.left+self.rect.height<SCREEN_WIDTH:
15 self.rect.left += self.speed
在上面方法中,按一下坦克移动一下,想按下键时候,坦克一直移动,弹起坦克停止移动。
在坦克类中添加移动开关属性,按下上、下、左、右四个方向键修改坦克的方向及开关状态stop = False。松开方向键,更改移动开关状态stop = True。
xxxxxxxxxx
401#获取程序期间所有事件(鼠标事件,键盘事件)
2 def getEvent(self):
3 #1.获取所有事件
4 eventList = pygame.event.get()
5 #2.对事件进行判断处理(1、点击关闭按钮 2、按下键盘上的某个按键)
6 for event in eventList:
7 #判断event.type 是否QUIT,如果是退出的话,直接调用程序结束方法
8 if event.type == pygame.QUIT:
9 self.endGame()
10 #判断事件类型是否为按键按下,如果是,继续判断按键是哪一个按键,来进行对应的处理
11 if event.type == pygame.KEYDOWN:
12 #具体是哪一个按键的处理
13 if event.key == pygame.K_LEFT:
14 print("坦克向左调头,移动")
15 #修改坦克方向
16 MainGame.TANK_P1.direction = 'L'
17 MainGame.TANK_P1.stop = False
18 elif event.key == pygame.K_RIGHT:
19 print("坦克向右调头,移动")
20 # 修改坦克方向
21 MainGame.TANK_P1.direction = 'R'
22 MainGame.TANK_P1.stop = False
23 elif event.key == pygame.K_UP:
24 print("坦克向上调头,移动")
25 # 修改坦克方向
26 MainGame.TANK_P1.direction = 'U'
27 MainGame.TANK_P1.stop = False
28 elif event.key == pygame.K_DOWN:
29 print("坦克向下掉头,移动")
30 # 修改坦克方向
31 MainGame.TANK_P1.direction = 'D'
32 MainGame.TANK_P1.stop = False
33 elif event.key == pygame.K_SPACE:
34 print("发射子弹")
35 #结束游戏方法
36 if event.type == pygame.KEYUP:
37 #松开的如果是方向键,才更改移动开关状态
38 if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT or event.key == pygame.K_UP or event.key == pygame.K_DOWN:
39 # 修改坦克的移动状态
40 MainGame.TANK_P1.stop = True