实现的步骤:
一、窗口及设置
1 # 使用pygame操控键盘,通过键盘来操控角色
2 """
3 1、窗口 4 2、角色-方块 5 3、逻辑 6 """
7 # 引入库
8 import pygame as p 9 # 初始化
10 p.init() 11 # 窗体的尺寸
12 screen_width,screen_height = 600,600
13 screen = p.display.set_mode((screen_width,screen_height)) 14 p.display.set_caption("灰灰老师") 15 run = True 16 # 循环
17 while run: 18 # 防止CPU占用太多,延迟执行。
19 p.time.delay(25) 20 # 点叉叉的时候关闭窗口
21 for event in p.event.get(): 22 # QUIT 退出
23 if event.type == p.QUIT: 24 run = False 25
26 # 屏幕的底色
27 screen.fill((0,0,0)) 28
29 # 更新屏幕
30 p.display.update()
二、画出方块
1 ... 2 x,y,width,height,speed = 100,100,50,50,15 # 方块的属性
3 ... 4 # 循环
5 while run: 6 ..... 7 # 屏幕的底色
8 screen.fill((0,0,0)) 9 # 角色-画在哪里,颜色,方块的位置和尺寸
10 p.draw.rect(screen,(255,0,0),(x,y,width,height)) 11
12 # 更新屏幕
13 p.display.update()
三、监听键盘,获取当前按下的方向键,并且控制方块移动
1 # 使用pygame操控键盘,通过键盘来操控角色
2 """
3 1、窗口 4 2、角色-方块 5 3、逻辑 6 """
7 # 引入库
8 import pygame as p 9 # 初始化
10 p.init() 11 # 窗体的尺寸
12 screen_width,screen_height = 600,600
13 screen = p.display.set_mode((screen_width,screen_height)) 14 p.display.set_caption("灰灰老师") 15 run = True 16 x,y,width,height,speed = 100,100,50,50,15 # 方块的属性
17 # 循环
18 while run: 19 # 防止CPU占用太多,延迟执行。
20 p.time.delay(25) 21 # 点叉叉的时候关闭窗口
22 for event in p.event.get(): 23 # QUIT 退出
24 if event.type == p.QUIT: 25 run = False 26
27 # 获取全键监听
28 keys = p.key.get_pressed() 29 # 判断具体按下的是哪一个键位
30 if keys[p.K_RIGHT]: 31 x += speed 32 if keys[p.K_LEFT]: 33 x -= speed 34 if keys[p.K_UP]: 35 y -= speed 36 if keys[p.K_DOWN]: 37 y += speed 38
39 # 屏幕的底色
40 screen.fill((0,0,0)) 41 # 角色-画在哪里,颜色,方块的位置和尺寸
42 p.draw.rect(screen,(255,0,0),(x,y,width,height)) 43
44 # 更新屏幕
45 p.display.update()
四、边界判断
1 # 使用pygame操控键盘,通过键盘来操控角色
2 """
3 1、窗口 4 2、角色-方块 5 3、逻辑 6 """
7 # 引入库
8 import pygame as p 9 ... 10 # 循环
11 while run: 12 # 防止CPU占用太多,延迟执行。
13 p.time.delay(25) 14 # 点叉叉的时候关闭窗口
15 for event in p.event.get(): 16 # QUIT 退出
17 if event.type == p.QUIT: 18 run = False 19
20 ... 21 # 边界检查
22 # 左右
23 if x < 0: 24 x = 0 25 if x + width >= screen_width: 26 x = screen_width - width 27 # 上下
28 if y < 0: 29 y = 0 30 if y + height >= screen_height: 31 y = screen_height - height 32
33 # 屏幕的底色
34 screen.fill((0,0,0)) 35 # 角色-画在哪里,颜色,方块的位置和尺寸
36 p.draw.rect(screen,(255,0,0),(x,y,width,height)) 37
38 # 更新屏幕
39 p.display.update()
五、完整代码
1 # 使用pygame操控键盘,通过键盘来操控角色
2 """
3 1、窗口 4 2、角色-方块 5 3、逻辑 6 """
7 # 引入库
8 import pygame as p 9 # 初始化
10 p.init() 11 # 窗体的尺寸
12 screen_width,screen_height = 600,600
13 screen = p.display.set_mode((screen_width,screen_height)) 14 p.display.set_caption("灰灰老师") 15 run = True 16 x,y,width,height,speed = 100,100,50,50,15 # 方块的属性
17
18 # 循环
19 while run: 20 # 防止CPU占用太多,延迟执行。
21 p.time.delay(25) 22 # 点叉叉的时候关闭窗口
23 for event in p.event.get(): 24 # QUIT 退出
25 if event.type == p.QUIT: 26 run = False 27
28 # 获取全键监听
29 keys = p.key.get_pressed() 30 # 判断具体按下的是哪一个键位
31 if keys[p.K_RIGHT]: 32 x += speed 33 if keys[p.K_LEFT]: 34 x -= speed 35 if keys[p.K_UP]: 36 y -= speed 37 if keys[p.K_DOWN]: 38 y += speed 39 # 边界检查
40 # 左右
41 if x < 0: 42 x = 0 43 if x + width >= screen_width: 44 x = screen_width - width 45 # 上下
46 if y < 0: 47 y = 0 48 if y + height >= screen_height: 49 y = screen_height - height 50
51
52 # 任务一:画两个方块,上下左右控制第一个方块,wasd控制第二个方块
53 # 屏幕的底色
54 screen.fill((0,0,0)) 55 # 角色-画在哪里,颜色,方块的位置和尺寸
56 p.draw.rect(screen,(255,0,0),(x,y,width,height)) 57
58 # 更新屏幕
59 p.display.update()
六、升级
# 升级任务:画两个方块,上下左右控制第一个方块,wasd控制第二个方块。