PYGAME 基礎 01 -窗口內文字位置問題


前言

注冊 博客園 已經快兩年的時間了,但是什么也沒寫,當初想養成的習慣也沒有養成,趁前一陣在瞎弄 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 記錄隨筆,希望可以堅持下去!

 


免責聲明!

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



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