pygame

一、創建窗口

import pygame   #導入模塊

if __name__ == '__main__':
    # 1.初始化pygame
    pygame.init()

    # 2.創建窗口
    # set_mode((寬,高))   單位像素
    screen=pygame.display.set_mode((600,400))

    # 3.游戲循環
    while True:
        #檢測事件
        for event in pygame.event.get():
            #檢測窗口上的關閉按鈕是否被點擊
            if event.type==pygame.QUIT:
                #退出游戲
                print('關閉按鈕被點擊')
                exit()

創建的窗口如下:


image.png

窗口中顯示文字

import pygame
from pygame import font

if __name__ == '__main__':
    pygame.init()
    screen=pygame.display.set_mode((600,400))

    #設置窗口的背景顏色
    screen.fill((255,255,0))

    #1.創建字體對象(找一只筆)
    """
    SysFont(name, size, bold=0, italic=0, constructor=None)
    name->字體名
    size->字體大小
    bold->加粗  (有默認值,不用傳參)
    italic->傾斜  (有默認值,不用傳參)
    """
    # font=pygame.font.SysFont('Script',50)

    """
    #創建自定義字體
    Font(字體文件路徑,字體大小)
    """
    font=pygame.font.Font('./font/bbb.ttf',50)

    #2.根據字體去創建顯示對象(找內容)
    """
    render渲染
    render(self, text, antialias, color, background=None)
    self
    text->要顯示的文字內容(str)
    antialias->是否平滑(True,False)
    color->計算機三原色(紅R、綠G、藍B)RGB顏色,值得范圍0-255
            (255,255,255)->白色  
            (0,0,0)->黑色   
            (0,255,0)->綠色
            (255,0,0)->紅色
            (x,x,x)->灰色
    """
    surface=font.render('你好,hello pygame',True,(0,255,0))
    print(surface,type(surface))

    #3.將內容添加到窗口上(畫到紙上)
    """
    blit(需要顯示的對象,顯示位置)
    需要顯示的對象->Surface類型的數據
    顯示位置->坐標(x,y)
    """

    screen.blit(surface,(100,100))

    #4.將窗口上的內容展示出來(將畫有文字的紙貼出來)
    pygame.display.flip()

    #游戲循環
    while True:
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                exit()

三、窗口中顯示圖片

import pygame

if __name__ == '__main__':
    pygame.init()
    screen=pygame.display.set_mode((600,400))
    screen.fill((255,255,255))

    #1.獲取圖片對象
    image=pygame.image.load('./image./1.jpg')

    """
    (1)獲取圖片大小
    get_size()
    """
    image_size=image.get_size()
    print(image_size)

    """
    (2)圖片的縮放
    transform(形變):形變包含縮放、旋轉和平移
    
    scale(縮放對象,新的大小)--->返回一個縮放后的新對象(縮放到指定大小)
    """
    image=pygame.transform.scale(image,(600,400))
    """
    旋轉
    rotate(旋轉對象,旋轉角度)
    """
    image=pygame.transform.rotate(image,180)

    """
    旋轉、縮放(按比例)
    def rotozoom(旋轉對象,旋轉的角度,縮放比例)
    """
    image=pygame.transform.rotozoom(image,270,0.5)


    #2.將圖片對象渲染到窗口上
    screen.blit(image,(0,0))

    #3.展示在屏幕上
    pygame.display.flip()


    #循環游戲:
    while True:
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                exit()

運行效果:


image.png

四、顯示圖形


import pygame

if __name__ == '__main__':
    pygame.init()
    screen=pygame.display.set_mode((600,400))
    screen.fill((255,255,255))

    """
    1.畫直線
    line(外觀對象,線顏色,起點,終點,線條寬度)
    Surface->畫在哪里
    color->線的顏色
    start_pos->起點
    end_pos->終點
    width->線的寬度
    lines(外觀對象,線條顏色,是否閉合,點的列表,width=1)
    """
    pygame.draw.line(screen,(0,255,0),(50,50),(100,100),5)
 
    pygame.draw.lines(screen,(255,0,0),True,[(10,10),(20,50)])


    """
    2.畫矩形
    rect(位置,顏色,(起點坐標,寬,高),線寬為零即填充)
    """
    pygame.draw.rect(screen,(0,255,0),(0,0,200,200),0)

    """
    3.畫曲線
    arc(圖形對象,顏色,范圍,起始角度,終止角度,線寬)
    Rect->(x,y,width,height)矩形
    """
    from math import pi
    pygame.draw.arc(screen,(0,0,0),(200,200,100,100),pi,2*pi)

    """
    4.畫圓
    circle(位置,顏色,圓心位置,半徑,width=0)
    """
    import random

    pygame.draw.circle(screen,\
           (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),\
                       (400, 200), 100)


    """
    5.畫橢圓
    ellipse(Surface, color, Rect, width=0)
    """
    pygame.draw.ellipse(screen,(0,100,0),(100,300,200,80),0)


    #將內容展示在屏幕上
    pygame.display.flip()

    while True:
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                exit()

運行效果:


image.png

五、動畫原理

import pygame


if __name__ == '__main__':
    pygame.init()
    screen=pygame.display.set_mode((600,400))
    screen.fill((255,255,255))


    x=0
    y=0
    while True:
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                exit()
        x+=1
        y+=1
        screen.fill((255,255,255))
        pygame.draw.circle(screen,(255,255,0),(x,y),80)
        pygame.display.flip()
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網絡請求組件 FMDB本地數據庫組件 SD...
    陽明AGI閱讀 16,003評論 3 119
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,200評論 4 61
  • 送你一株百合花: 詳細步驟如下: 1. 【勾勒布局】 用簡單的基礎形狀勾勒整幅圖的大致框架布局,花朵與葉子之間相互...
    拾零閱讀 1,334評論 4 9
  • 關于醫療改革的滿意度研究包含了各個方面,最終的數據結果和結論是這些方面綜合影響的結果。目前來看滿意度研究至少基于目...
    游很慢的魚笨閱讀 2,305評論 1 8
  • (每天讀一遍,你將獲得宇宙無限的正能量) 從今天開始的每一天 我已經改變成為一個全新的人 我充滿了靈性和愛 我的全...
    清心閣閱讀 300評論 0 0