前言
注冊 博客園 已經快兩年的時間了,但是什么也沒寫,當初想養成的習慣也沒有養成,趁前一陣在瞎弄 hexo 的機會,再次打開了博客園,這次要記錄點什么,生活總得有些改變。
PYGAME自學記錄
python 3 的基礎語法在此先略過,這個是必須要學習的,但是自學過后,發現非常容易忘記,需要多編程才能熟用,所以決定直接動手,在動手寫代碼的過程中發現的基礎問題,再即時記錄。
以下是我在b站自學時摘取的一段代碼,添加上自己的注釋,非常基礎,功能也非常簡單,就是繪制一個窗口,顯示字符
1 # 案例1 2 import pygame,sys 3 # 導入 pygame 中的所有常量 4 from pygame.locals import * 5 6 # 初始化 pygame 7 pygame.init() 8 # 創建一個窗口 9 win = pygame.display.set_mode((600,300)) 10 # 設置一個標題 11 pygame.display.set_caption('hhh') 12 # 創建一個字體 13 myfont = pygame.font.Font(None,60) 14 15 white = (255,255,255) 16 blue = (0,0,255) 17 18 # 在窗口上繪制 文字 第二個參數代表抗鋸齒,提高圖形質量。 19 textImage = myfont.render('xxxx',True,white) 20 21 # 持續顯示 22 23 while True: 24 for event in pygame.event.get(): 25 # 當有按鍵 或者 點 × 關閉窗口的時候退出 26 if event.type in (QUIT,KEYDOWN): 27 sys.exit() 28 win.fill(blue) 29 win.blit(textImage,(100,100)) 30 31 pygame.display.update()
在學習完上面這段代碼后,想到的第一個問題就是,窗口顯示的字符位置問題,於是稍稍調整一下代碼,如下。
1 # 案例1 2 import pygame,sys 3 # 導入 pygame 中的所有常量 4 from pygame.locals import * 5 6 # 初始化 pygame 7 pygame.init() 8 # 創建一個窗口 9 win = pygame.display.set_mode((600,300)) 10 # 設置一個標題 11 pygame.display.set_caption('hhh') 12 # 創建一個字體 13 myfont = pygame.font.Font(None,100) 14 15 white = (255,255,255) 16 blue = (0,0,255) 17 18 # 在窗口上繪制 文字 第二個參數代表抗鋸齒,提高圖形質量。 19 textImage = myfont.render('x',True,white) 20 21 # 持續顯示 22 23 while True: 24 for event in pygame.event.get(): 25 # 當有按鍵 或者 點 × 關閉窗口的時候退出 26 if event.type in (QUIT,KEYDOWN): 27 sys.exit() 28 win.fill(blue) 29 win.blit(textImage,(300,150)) 30 31 pygame.display.update()
只顯示一個 “X” 字符,blit 方法的坐標選擇的是窗口的正中心,程序運行情況是
從結果可以看出,坐標 (300,150) 的中心點為 X 的左上角,所以將來在窗口繪制圖像的時候,要注意這一點,比如想要在一個正方形窗口的中心繪制一個正方形,要注意坐標位置。
例如,400*400的窗口,邊長為100的正方形,選擇的位置是 (150,150).
1 # 案例2 2 import pygame 3 import sys 4 from pygame.locals import * 5 6 pygame.init() 7 screen = pygame.display.set_mode((400,400)) 8 9 pos_x = 150 10 pos_y = 150 11 12 while True: 13 for event in pygame.event.get(): 14 if event.type in (QUIT,KEYDOWN): 15 sys.exit() 16 17 screen.fill((0,0,0)) 18 19 # 畫正方形 20 color = 255,255,0 21 pos = pos_x,pos_y,100,100 22 width = 0 23 pygame.draw.rect(screen,color,pos,width) 24 25 pygame.display.update()
純小白的第一個PYTHON 3 記錄隨筆,希望可以堅持下去!