国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【python】之pygame模塊,游戲開發(fā)【基礎(chǔ)篇】

這篇具有很好參考價值的文章主要介紹了【python】之pygame模塊,游戲開發(fā)【基礎(chǔ)篇】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

什么是pygame?

Pygame 是一個專門用來開發(fā)游戲的 Python 模塊,主要為開發(fā)、設(shè)計 2D 電子游戲而生,具有免費(fèi)、開源,支持多種操作系統(tǒng),具有良好的跨平臺性等優(yōu)點。它提供了諸多操作模塊,比如圖像模塊(image)、聲音模塊(mixer)、輸入/輸出(鼠標(biāo)、鍵盤、顯示屏)模塊等。簡單來說,如果你使用pygame,理論上可以開發(fā)設(shè)計市面上所有的2d類型游戲(僅僅是理論上)。

一.pygame模塊的安裝

使用pip接口進(jìn)行安裝

pip install pygame

pip接口詳細(xì)說明可以看:https://blog.csdn.net/pengneng123/article/details/129556320

二.pygame庫基本函數(shù)使用

  1. pygame.init() 初始化,調(diào)用pygame的任何函數(shù)之前都要調(diào)用這個函數(shù)。

pygame.init() 
  1. pygame.display.set_mode((400,300)) 創(chuàng)建窗口,傳入寬和高

screen = pygame.display.set_mode((400,300))
  1. pygame.display.set_caption("xxxx") 設(shè)置窗口頂部標(biāo)題名稱

pygame.display.set_caption("豬了個豬")
  1. 運(yùn)行上述代碼:

import pygame

pygame.init() 

screen = pygame.display.set_mode((400,300))

pygame.display.set_caption("豬了個豬")

運(yùn)行上面代碼你會發(fā)現(xiàn)左上角出現(xiàn)一個窗口,然后一閃即過,這是正常的。這里就要思考python代碼的運(yùn)行,通過執(zhí)行上述代碼,你創(chuàng)建了一個黑色窗口,但是當(dāng)代碼執(zhí)行完會發(fā)生什么,當(dāng)然是python自動退出了。所以你要使用一定的方法不讓代碼結(jié)束運(yùn)行,這就要添加“死循環(huán)”了,這很好理解,while true 會一遍又一遍的運(yùn)行里面的代碼而不退出。

5.while True讓游戲無限循環(huán)

while True:  # 死循環(huán)確保窗口一直顯示
    for event in pygame.event.get():  # 遍歷所有事件
        if event.type == pygame.QUIT:  # 如果單擊關(guān)閉窗口,則退出
            sys.exit()  #按X 退出

6.完整代碼示例:

import pygame
import sys

pygame.init() 

screen = pygame.display.set_mode((400,300))

pygame.display.set_caption("豬了個豬")

while True:  

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

輸出:

pygame,python,python,pygame,開發(fā)語言,Powered by 金山文檔

這樣,一個游戲的最基礎(chǔ)框架就出來了。

三.操作pygame

  1. 顏色與繪制,screen.fill() 對顏色進(jìn)行填充

#設(shè)置顏色
Black = (0,0,0)
White = (255,255,255)
Red = (255,0,0)
Green = (0,255,0)
Blue = (0,0,255)

screen.fill(White)

2.繪制圖形

###繪制多邊形,pylygon(surface,color,pointlist,width)pointlist參數(shù)是一個元組或者點的
pygame.draw.polygon(screen,Green,((146,0),(291,106),(236,277),(56,277),(0,106)))

####畫線,參數(shù)為 surface,color,起始位置,終止位置,粗細(xì)
pygame.draw.line(screen,Blue,(60,120),(120,120),4)

#畫圓,參數(shù)為surface,color,圓心,半徑,邊粗細(xì)(0填充)
pygame.draw.circle(screen,Blue,(300,50),20,0)

#畫橢圓,參數(shù)為surface,color,邊界矩形(以矩形的位置來畫橢圓),邊粗細(xì)
pygame.draw.ellipse(screen,Red,(300,250,40,80),1)

#畫矩形,參數(shù)為surface,color,矩形(左上角x坐標(biāo),左上角y坐標(biāo),寬,高),邊粗細(xì)
pygame.draw.rect(screen,Red,(200,150,100,50))

3.pygame.display.flip() 更新全部顯示

pygame.display.flip()

4.pygame.quit() #退出pygame

pygame.quit()

輸出上述代碼:

import pygame
import sys

pygame.init() 

screen = pygame.display.set_mode((400,300))
color = (0, 0, 0)  # 設(shè)置顏色
pygame.display.set_caption("豬了個豬")
Black = (0,0,0)
White = (255,255,255)
Red = (255,0,0)
Green = (0,255,0)
Blue = (0,0,255)

screen.fill(White)

###繪制多邊形,pylygon(surface,color,pointlist,width)pointlist參數(shù)是一個元組或者點的
pygame.draw.polygon(screen,Green,((146,0),(291,106),(236,277),(56,277),(0,106)))

####畫線,參數(shù)為 surface,color,起始位置,終止位置,粗細(xì)
pygame.draw.line(screen,Blue,(60,120),(120,120),4)

#畫圓,參數(shù)為surface,color,圓心,半徑,邊粗細(xì)(0填充)
pygame.draw.circle(screen,Blue,(300,50),20,0)

#畫橢圓,參數(shù)為surface,color,邊界矩形(以矩形的位置來畫橢圓),邊粗細(xì)
pygame.draw.ellipse(screen,Red,(300,250,40,80),1)

#畫矩形,參數(shù)為surface,color,矩形(左上角x坐標(biāo),左上角y坐標(biāo),寬,高),邊粗細(xì)
pygame.draw.rect(screen,Red,(200,150,100,50))


while True:  

    for event in pygame.event.get(): 

        if event.type == pygame.QUIT: 

            exit()
    pygame.display.flip()  # 更新全部顯示
pygame.quit()

輸出:

pygame,python,python,pygame,開發(fā)語言,Powered by 金山文檔

5.圖片插入pygame.image.load('xxx.png')

pygame.image.load('1158.png')

6.screen.blit(xx,(0,0))##寫入到背景

screen.blit(xx,(0,0))##寫入到背景

輸出:

pygame,python,python,pygame,開發(fā)語言,Powered by 金山文檔

7.pygame.time.Clock()設(shè)置時鐘

clock = pygame.time.Clock()  # 設(shè)置時鐘

8.看一段完整的代碼,更好的理解pygame

import pygame
import time

pygame.init()  # 初始化pygame

size = width, height = 480, 700  # 設(shè)置窗口大小
screen = pygame.display.set_mode(size)  # 顯示窗口
pygame.display.set_caption("豬了個豬")
color = (0, 0, 0)  # 設(shè)置顏色

pig = pygame.image.load('1158.png')  # 加載圖片
beijing121 = pygame.image.load("gr/147.png")##加載背景圖片
beijing131 = pygame.image.load("gr/189.png")##加載背景圖片
beijing141 = pygame.image.load("gr/199.png")##加載背景圖片
beijing151 = pygame.image.load("gr/200.png")##加載背景圖片


pigrect = pig.get_rect()  # 獲取矩形區(qū)域
pigrect1 = beijing121.get_rect()  # 獲取矩形區(qū)域

speed = [1, 1]  # 設(shè)置移動的X軸、Y軸
speed1 = [80, 80]
speed2 = [160, 160]
speed3 = [200, 120]
speed4 = [120, 260]  # 設(shè)置移動的X軸、Y軸

clock = pygame.time.Clock()  # 設(shè)置時鐘



def Map():
    screen.fill((255,255,255))##填充顏色
    screen.blit(background,(0,0))##寫入到背景

while True:  # 死循環(huán)確保窗口一直顯示
    clock.tick(10)  # 每秒執(zhí)行10次
    for event in pygame.event.get():  # 遍歷所有事件
        if event.type == pygame.QUIT:  # 如果單擊關(guān)閉窗口,則退出
            sys.exit()

    background = pygame.image.load("beijing1.png")##加載背景圖片
    
    Map()

    pigrect = pigrect.move(speed)  # 移動小豬
    pigrect1 = pigrect.move(speed1)  # 移動小豬
    pigrect2 = pigrect.move(speed2)
    pigrect3 = pigrect.move(speed3)
    pigrect4 = pigrect.move(speed4)

    # 碰到左右邊緣
    if pigrect.left < 0 or pigrect.right > width:
        speed[0] = -speed[0]
    # 碰到上下邊緣
    if pigrectt.top < 0 or pigrect.bottom > height:
        speed[1] = -speed[1]
        
        
    if pigrect1.left < 0 or pigrect1.right > width:
        speed[0] = -speed[0]
    # 碰到上下邊緣
    if pigrect1.top < 0 or pigrect1.bottom > height:
        speed[1] = -speed[1]
        
        
    if pigrect2.left < 0 or pigrect2.right > width:
        speed[0] = -speed[0]
    # 碰到上下邊緣
    if pigrect2.top < 0 or pigrect2.bottom > height:
        speed[1] = -speed[1]
        
        
    if pigrect3.left < 0 or pigrect3.right > width:
        speed[0] = -speed[0]
    # 碰到上下邊緣
    if pigrect3.top < 0 or pigrect3.bottom > height:
        speed[1] = -speed[1]
        
        
    if pigrect4.left < 0 or pigrect4.right > width:
        speed[0] = -speed[0]
    # 碰到上下邊緣
    if pigrect4.top < 0 or pigrect4.bottom > height:
        speed[1] = -speed[1]


    screen.blit(ball, ballrect)  # 將圖片畫到窗口上
    screen.blit(beijing121, ballrect1)  # 將圖片畫到窗口上
    screen.blit(beijing131, ballrect2)  # 將圖片畫到窗口上
    screen.blit(beijing141, ballrect3)  # 將圖片畫到窗口上
    screen.blit(beijing151, ballrect4)  # 將圖片畫到窗口上


    pygame.display.flip()  # 更新全部顯示

pygame.quit()  # 退出pygame

最后輸出:

最后可以根據(jù)自己想做的東西,慢慢嘗試去實現(xiàn)啦。

@Neng文章來源地址http://www.zghlxwxcb.cn/news/detail-718365.html

到了這里,關(guān)于【python】之pygame模塊,游戲開發(fā)【基礎(chǔ)篇】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python模塊: pygame(自己動手寫游戲)

    python模塊: pygame(自己動手寫游戲)

    目錄 一、pygame的安裝 ?二、pygame基礎(chǔ)操作 1.基本窗體設(shè)置 2.surface組件 ?3.event事件 一、pygame的安裝 在pycharm 左下角的終端上輸入指令pip install pygame,按下回車鍵執(zhí)行下載,推薦下載到虛擬環(huán)境上,即路徑前方帶有(venv)。或者不使用pycharm,在控制窗口輸入執(zhí)行該命令也可以(控

    2024年03月21日
    瀏覽(33)
  • Pygame 游戲開發(fā) 基礎(chǔ)知識

    Pygame 游戲開發(fā) 基礎(chǔ)知識

    Pygame 是一個跨平臺的 Python 模塊, 專為電子游戲設(shè)計. Pygame 在已經(jīng)非常優(yōu)秀的 SDL 庫的基礎(chǔ)上增加了許多功能. 安裝命令: 導(dǎo)入 Pygame 包: pygame.locals 模塊包括了 pygame 中定義的各種常量. 導(dǎo)入所有常量 pygame.init() 是啟動 pygame 并初始化的命令, 類似 python 中的 __init__ . 例子: pygame.

    2023年04月25日
    瀏覽(34)
  • Python 游戲開發(fā)與 Pygame

    第一章. Python 簡介 Python 簡介和歷史 Python 特點和優(yōu)勢 安裝 Python 第二章. 變量和數(shù)據(jù)類型 變量和標(biāo)識符 基本數(shù)據(jù)類型:數(shù)字、字符串、布爾值等 字符串操作 列表、元組和字典 第三章. 控制語句和函數(shù) 分支結(jié)構(gòu):if/else 語句 循環(huán)結(jié)構(gòu):for 和 while 循環(huán) 函數(shù) 參數(shù)傳遞與返回值

    2024年04月17日
    瀏覽(25)
  • Python基礎(chǔ)篇(十五)-- Pygame游戲編程

    Python基礎(chǔ)篇(十五)-- Pygame游戲編程

    ????????Pygame是一個開源的Python模塊,專門用于多媒體應(yīng)用(如電子游戲)的開發(fā),其中包含對圖像、聲音、視頻、事件、碰撞等的支持。Pygame建立在SDL的基礎(chǔ)上,SDL是一套跨平臺的多媒體開發(fā)庫,用C語言實現(xiàn),被廣泛的應(yīng)用于游戲、模擬器、播放器等的開發(fā)。而Pygame讓

    2024年02月05日
    瀏覽(29)
  • Python Pygame游戲開發(fā)教程正式發(fā)布(非常詳細(xì))

    Python Pygame游戲開發(fā)教程正式發(fā)布(非常詳細(xì))

    Pygame 是一款專門為開發(fā)和設(shè)計 2D 電子游戲而生的、免費(fèi)開源的 Python 軟件包/模塊,它支 Windows、Linux、Mac OS 等操作系統(tǒng),具有良好的跨平臺性 Pygame 在 SDL 的基礎(chǔ)上開發(fā)而成,它提供了諸多操作模塊,比如圖像模塊(image)、聲音模塊(mixer)、輸入/輸出(鼠標(biāo)、鍵盤、顯示屏

    2024年04月13日
    瀏覽(25)
  • 【附源碼】使用python+pygame開發(fā)消消樂游戲

    【附源碼】使用python+pygame開發(fā)消消樂游戲

    消消樂小游戲相信大家都玩過,大人小孩都喜歡玩的一款小游戲,那么基于程序是如何實現(xiàn)的呢?今天帶大家,用python+pygame來實現(xiàn)一下這個花里胡哨的消消樂小游戲功能,感興趣的朋友一起看看吧 目錄 一、環(huán)境要求 二、游戲簡介 三、完整開發(fā)流程 1、項目主結(jié)構(gòu) 2、詳細(xì)配

    2024年02月04日
    瀏覽(32)
  • 【pygame游戲開發(fā)】這幾個經(jīng)典游戲,小紅書Python面試題目

    【pygame游戲開發(fā)】這幾個經(jīng)典游戲,小紅書Python面試題目

    pygame.time.set_timer(change_hole_event, 800) mole = Mole(cfg.MOLE_IMAGEPATHS, hole_pos) hammer = Hammer(cfg.HAMMER_IMAGEPATHS, (500, 250)) clock = pygame.time.Clock() your_score = 0 flag = False init_time = pygame.time.get_ticks() while True: time_remain = round((61000 - (pygame.time.get_ticks() - init_time)) / 1000.) if time_remain == 40 and not flag: hole

    2024年04月25日
    瀏覽(117)
  • 在Python中使用Pygame開發(fā)游戲的100條建議

    在Python中使用Pygame開發(fā)游戲的100條建議

    Pygame是一個用于制作游戲的Python庫。它提供了許多功能,使您可以輕松地創(chuàng)建2D游戲和多媒體應(yīng)用程序。下面是一些使用Pygame庫的基本步驟: 安裝Pygame 首先,您需要安裝Pygame庫。您可以使用pip命令在命令行中安裝它: 導(dǎo)入Pygame模塊 在Python腳本中,您需要導(dǎo)入Pygame模塊,以便

    2024年03月11日
    瀏覽(28)
  • Pygame:Python游戲開發(fā)庫的安裝和使用指南

    Pygame:Python游戲開發(fā)庫的安裝和使用指南 如果你想使用Python編寫游戲,那么Pygame游戲開發(fā)庫可能是你最好的選擇。這個庫提供了豐富的功能和工具,可讓你輕松地創(chuàng)建各種類型的游戲。在本文中,我們將介紹如何安裝Pygame,并使用它來創(chuàng)建一個簡單的游戲。 安裝Pygame 要使用

    2024年02月06日
    瀏覽(97)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包