国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現在的位置是:首頁 » python編程資訊

資訊內容

用python和pygame游戲編程入門-顯示文字

極客小將2020-10-28-
上一節我們通過鍵盤可以控制角色移動,如果要讓角色說話,那就要用到文字顯示。

用python和pygame游戲編程入門-顯示文字

上一節我們通過鍵盤可以控制角色移動,如果要讓角色說話,那就要用到文字顯示。Pygame可以直接調用系統字體,或者也可以使用TTF字體,TTF就是字體文件,可以從網上下載。為了使用字體,你得先創建一個Font對象,對于系統自帶的字體:

my_font = pygame.font.SysFont("arial", 16)

第一個參數是字體名,第二個自然就是大小,一般來說“Arial”字體在很多系統都是存在的,如果找不到的話,就會使用一個默認的字體,你也可以使用pygame.font.get_fonts()來獲得當前系統所有可用字體。

一旦你創建了一個font對象,你就可以使用render方法來寫字了,然后就能blit到屏幕上:

text_surface = my_font.render("Pygame is cool!", True, (0,0,0), (255, 255, 255))

第一個參數是寫的文字;第二個參數是個布爾值,以為這是否開啟抗鋸齒,就是說True的話字體會比較平滑,不過相應的速度有一點點影響;第三個參數是字體的顏色;第四個是背景色,如果你想沒有背景色(也就是透明),那么可以不加這第四個參數。

下面我們來修改上一節的程序,加上一個文字跟隨章魚移動:

#!/usr/bin/env python
#指定圖像文件名稱
background_image_filename = './img/Underwater.png'
mouse_image_filename = './img/octopus.png'
import pygame
from pygame.locals import *
from sys import exit
#初始化pygame,為使用硬件做準備
pygame.init()
print(pygame.font.get_fonts())#查看系統支持的字體
font = pygame.font.SysFont("華文楷體", 20)
text_surface= font.render("Hello!", True, (255, 255, 255))
#text_surface = font.render(u"你好啊,我是老章!", True, (255, 255, 255))

 #創建了一個窗口
screen = pygame.display.set_mode((960, 720), 0, 32)
#設置窗口標題
pygame.display.set_caption("海底世界")
#加載并轉換圖像
background = pygame.image.load(background_image_filename).convert()
kcursor = pygame.image.load(mouse_image_filename).convert_alpha()
#游戲主循環
x, y = 0, 0
move_x, move_y = 0, 0
while True:
    for event in pygame.event.get():
        if event.type == QUIT:
           exit()
        if event.type == KEYDOWN:
            #鍵盤有按下?
            if event.key == K_LEFT:
                #按下的是左方向鍵的話,把x坐標減一
                move_x = -1
            elif event.key == K_RIGHT:
                #右方向鍵則加一
                move_x = 1
            elif event.key == K_UP:
                #類似了
                move_y = -1
            elif event.key == K_DOWN:
                move_y = 1
        elif event.type == KEYUP:
            #如果用戶放開了鍵盤,圖就不要動了
            move_x = 0
            move_y = 0
    #計算出新的坐標
    x+= move_x
    y+= move_y
    
    screen.fill((0,0,0))
    screen.blit(background, (0,0))
    screen.blit(kcursor, (x,y))
    screen.blit(text_surface, (x, y))
    #在新的位置上畫圖
    pygame.display.update()

如何顯示中文?

簡單來說,首先你得用一個可以使用中文的字體,宋體、黑體什么的,然后文字使用unicode,即u”中文的文字”這種

text_surface = font.render(u"你好啊,我是老章!", True, (255, 255, 255))

這樣就可以顯示出中文了,上面的代碼有注釋,可以試試看。

本站部分內容轉載自網絡,如有侵權請聯系管理員及時刪除。

預約試聽課

已有385人預約都是免費的,你也試試吧...

主站蜘蛛池模板: 红安县| 弋阳县| 茶陵县| 八宿县| 宁波市| 济宁市| 兴义市| 洛浦县| 金阳县| 田林县| 梁平县| 新乐市| 榆中县| 宁远县| 大悟县| 德阳市| 吉林省| 静海县| 林甸县| 台北市| 安化县| 商河县| 大埔县| 科尔| 宁安市| 罗山县| 东海县| 平远县| 睢宁县| 静安区| 个旧市| 辽源市| 班玛县| 皮山县| 乳山市| 江门市| 墨玉县| 故城县| 中牟县| 昌乐县| 宜城市|