進擊的方塊(一)- pygame鍵盤控制方塊移動


實現的步驟:

一、窗口及設置

 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控制第二個方塊。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM