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

pygame入門教程-基礎(chǔ)篇

這篇具有很好參考價(jià)值的文章主要介紹了pygame入門教程-基礎(chǔ)篇。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1. 畫布surface

我們先啟動(dòng)一個(gè)窗口

import pygame
pygame.init() # 初始化
screen = pygame.display.set_mode((800,600)) # 設(shè)置窗口的大小
pygame.display.set_caption("這是一個(gè)給我們畫畫用的窗口") # 設(shè)置窗口的title
pygame.quit()

我們通過(guò)screen = pygame.display.set_mode((800,600)) 設(shè)置了一個(gè)窗口,并且返回了一個(gè)screen的變量,這個(gè)變量的類型是pygame.Surface,也就是一個(gè)畫布。我們基于這個(gè)畫布來(lái)作畫,例如加載一個(gè)圖片到這個(gè)畫布上,或者繪制一個(gè)圓。

2. 繪制一個(gè)圓

我們發(fā)現(xiàn)這個(gè)窗口一閃而過(guò),什么也沒(méi)看清。因?yàn)榧虞d完變量就釋放掉了,我們加一個(gè)循環(huán),讓其等待10s。

import pygame
import time

pygame.init()
screen = pygame.display.set_mode((800,600))

pygame.display.set_caption("這是一個(gè)給我們畫畫用的窗口")
pygame.draw.circle(screen,(255,0,0),(200,300),20)

for _ in range(10):
    time.sleep(1)

pygame.quit()

可以看到過(guò)了10s這個(gè)黑框才關(guān)閉掉,由于sleep和繪制都在同一個(gè)線程中,發(fā)現(xiàn)頁(yè)面會(huì)處于卡死狀態(tài)。同時(shí)發(fā)現(xiàn)調(diào)用pygame.draw.circle繪制的圓也沒(méi)有出現(xiàn),這是因?yàn)槲覀儧](méi)有調(diào)用繪制函數(shù)。

pygame.draw.circle(Surface, color, pos , raduis, width)

通常情況下,我們會(huì)繪制各種各樣的圖形,如果畫一個(gè)刷新一個(gè)就會(huì)導(dǎo)致效率很低,所以一般情況下都是把所有的東西繪制完成之后再統(tǒng)一進(jìn)行刷新。

import pygame
import time

pygame.init()
screen = pygame.display.set_mode((800,600))

pygame.display.set_caption("這是一個(gè)給我們畫畫用的窗口")
pygame.draw.circle(screen,(255,0,0),(200,300),20)
pygame.draw.circle(screen,(255,0,0),(300,200),20)
pygame.display.update()

for _ in range(10):
    time.sleep(1)


pygame.quit()

3. 繪制變化大小的圓

現(xiàn)在我們想要繪制一個(gè)圓,這個(gè)圓的大小可以變化,這很簡(jiǎn)單,只要不斷改變圓的半徑就可以了。圓的半徑變大了,也就是說(shuō)繪制的內(nèi)容發(fā)生了變化,因此我們需要更新畫布

import pygame
import time

pygame.init()
screen = pygame.display.set_mode((800,600))
pygame.display.set_caption("這是一個(gè)給我們畫畫用的窗口")

r = 20
for _ in range(10):
    time.sleep(1)
    pygame.draw.circle(screen,(255,0,0),(200,300),r)
    r += 10
	pygame.display.update()

pygame.quit()

等了10s又退出來(lái),反正我們要一直現(xiàn)實(shí),就改成死循環(huán),你會(huì)發(fā)現(xiàn)圓是變大了,但是程序卻退不出來(lái)了

r = 20
while True:
    pygame.draw.circle(screen,(255,0,0),(200,300),r)
    r += 1
    pygame.display.update()

pygame.quit() # 由于死循環(huán),所以執(zhí)行不到這一步

4. 事件

pygame提供了事件來(lái)與用戶進(jìn)行交互,例如點(diǎn)擊鼠標(biāo),打字等等。所有的事件都會(huì)放到pygame的事件隊(duì)列中,我們只要不斷讀取這個(gè)隊(duì)列就可以了

r = 20
while True:
    for event in pygame.event.get():  # 遍歷事件
        if event.type == pygame.QUIT:  # 退出事件
            pygame.quit()
    pygame.draw.circle(screen,(255,0,0),(200,300),r)
    r += 1
    pygame.display.update()

當(dāng)我們發(fā)現(xiàn)有關(guān)閉事件的時(shí)候就退出pygame。但是通常不會(huì)這么寫,直接退出pygame會(huì)導(dǎo)致我們有些資源可能來(lái)不及釋放,所以通常會(huì)寫成

r = 20
going = True
while going:
    for event in pygame.event.get():  # 遍歷事件
        if event.type == pygame.QUIT:  # 退出事件
            going=False
    pygame.draw.circle(screen,(255,0,0),(200,300),r)
    r += 1
    pygame.display.update()
pygame.quit()

5. 刷新率

我們發(fā)現(xiàn)這個(gè)圓變得太快了,加一個(gè)延時(shí)緩一緩,例如每隔0.1s在進(jìn)行刷新

r = 20
going = True
while going:
    for event in pygame.event.get():  # 遍歷事件
        if event.type == pygame.QUIT:  # 退出事件
            going=False
    pygame.draw.circle(screen,(255,0,0),(200,300),r)
    r += 1
    pygame.display.update()
    time.sleep(0.1)
pygame.quit()

pygame給我們提供了一個(gè)clock對(duì)象可以用來(lái)控制刷新的頻率文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-402434.html

clock = pygame.time.Clock() # 創(chuàng)建一個(gè)clock對(duì)象
r = 20
going = True
while going:
    for event in pygame.event.get():  # 遍歷事件
        if event.type == pygame.QUIT:  # 退出事件
            going=False
    pygame.draw.circle(screen,(255,0,0),(200,300),r)
    r += 1
    pygame.display.update()
    clock.tick(10) # 刷新頻率為10,也就是1s刷新10次,每個(gè)100ms刷新一次
pygame.quit()

到了這里,關(guān)于pygame入門教程-基礎(chǔ)篇的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 很合適新手入門使用的Python游戲開(kāi)發(fā)包pygame實(shí)例教程-01[開(kāi)發(fā)環(huán)境配置與第一個(gè)界面]

    很合適新手入門使用的Python游戲開(kāi)發(fā)包pygame實(shí)例教程-01[開(kāi)發(fā)環(huán)境配置與第一個(gè)界面]

    我們假定你已經(jīng)安裝好了我們開(kāi)發(fā)python程序的sublime text,如果不知道怎么安裝的可以參照我前面的博文。這里只需要解決的是配置好Pygame的問(wèn)題。本篇博文主要解決開(kāi)發(fā)環(huán)境配置以及第一個(gè)游戲界面的顯示問(wèn)題。 文章原出處: https://blog.csdn.net/haigear/article/details/130173836 沒(méi)有

    2024年01月25日
    瀏覽(35)
  • Python基礎(chǔ)入門教程(上)

    Python基礎(chǔ)入門教程(上)

    目錄 一、你好Python 1.1、Python安裝 win版 Linux版 1.2、第一個(gè)Python程序 二、Python基本語(yǔ)法 2.1、字面量 2.2、注釋 2.3、變量 2.4、數(shù)據(jù)類型 type()函數(shù) 字符串類型的不同定義方式 2.5、數(shù)據(jù)類型轉(zhuǎn)換 ?編輯 2.6、標(biāo)識(shí)符 2.7、運(yùn)算符 2.8、字符串?dāng)U展 字符串的三種定義方式 字符串轉(zhuǎn)義

    2024年02月15日
    瀏覽(17)
  • 【瑞薩零基礎(chǔ)入門】瑞薩MCU零基礎(chǔ)入門系列教程(更新連載中)

    【瑞薩零基礎(chǔ)入門】瑞薩MCU零基礎(chǔ)入門系列教程(更新連載中)

    得益于瑞薩強(qiáng)大的MCU、強(qiáng)大的軟件開(kāi)發(fā)工具(e2 studio),也得益于瑞薩和RA生態(tài)工作室提供的支持,我們團(tuán)隊(duì)編寫了《ARM嵌入式系統(tǒng)中面向?qū)ο蟮哪K編程方法》,全書37章,將近500頁(yè): 講解面向?qū)ο缶幊淘趩纹瑱C(jī)開(kāi)發(fā)中的使用 結(jié)合FSP軟件包實(shí)例分析外設(shè)驅(qū)動(dòng) 講解如何使用RASC配

    2024年02月09日
    瀏覽(60)
  • R語(yǔ)言基礎(chǔ)入門教程

    一、引言 R語(yǔ)言是一種用于統(tǒng)計(jì)計(jì)算和圖形的編程語(yǔ)言,由Ross Ihaka和Robert Gentleman于1993年創(chuàng)建。由于其強(qiáng)大的數(shù)據(jù)處理、統(tǒng)計(jì)分析及可視化功能,R語(yǔ)言在數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、生物信息學(xué)等領(lǐng)域得到了廣泛應(yīng)用。本教程將介紹R語(yǔ)言的基礎(chǔ)知識(shí),幫助初學(xué)者快速入門。 二、R語(yǔ)

    2024年04月10日
    瀏覽(22)
  • WPF入門教程系列一——基礎(chǔ)

    WPF入門教程系列一——基礎(chǔ)

    一、?前言?? ?? ????? 最近在學(xué)習(xí)WPF,學(xué)習(xí)WPF首先上的是微軟的MSDN,然后再搜索了一下網(wǎng)絡(luò)有關(guān)WPF的學(xué)習(xí)資料。為了溫故而知新把學(xué)習(xí)過(guò)程記錄下來(lái),以備后查。這篇主要講WPF的開(kāi)發(fā)基礎(chǔ),介紹了如何使用Visual?Studio?2013創(chuàng)建一個(gè)WPF應(yīng)用程序。 首先說(shuō)一下學(xué)習(xí)WPF的基礎(chǔ)知

    2024年02月07日
    瀏覽(32)
  • 網(wǎng)絡(luò)安全入門教程(非常詳細(xì))從零基礎(chǔ)入門到精通!

    網(wǎng)絡(luò)安全入門教程(非常詳細(xì))從零基礎(chǔ)入門到精通!

    網(wǎng)絡(luò)安全是一個(gè)龐大而不斷發(fā)展的領(lǐng)域,它包含多個(gè)專業(yè)領(lǐng)域,如網(wǎng)絡(luò)防御、網(wǎng)絡(luò)攻擊、數(shù)據(jù)加密等。介紹網(wǎng)絡(luò)安全的基本概念、技術(shù)和工具,逐步深入,幫助您成為一名合格的網(wǎng)絡(luò)安全從業(yè)人員。 1.計(jì)算機(jī)基礎(chǔ)知識(shí) 了解了計(jì)算機(jī)的硬件、軟件、操作系統(tǒng)和網(wǎng)絡(luò)結(jié)構(gòu)等基礎(chǔ)知

    2024年04月13日
    瀏覽(26)
  • 網(wǎng)絡(luò)安全入門教程(非常詳細(xì))從零基礎(chǔ)入門到精通

    網(wǎng)絡(luò)安全入門教程(非常詳細(xì))從零基礎(chǔ)入門到精通

    1.入行網(wǎng)絡(luò)安全這是一條堅(jiān)持的道路,三分鐘的熱情可以放棄往下看了。 2.多練多想,不要離開(kāi)了教程什么都不會(huì)了,最好看完教程自己獨(dú)立完成技術(shù)方面的開(kāi)發(fā)。 3.有時(shí)多百度,我們往往都遇不到好心的大神,誰(shuí)會(huì)無(wú)聊天天給你做解答。 4.遇到實(shí)在搞不懂的,可以先放放,

    2024年01月18日
    瀏覽(23)
  • PHP入門基礎(chǔ)教程 - 專欄導(dǎo)讀

    PHP入門基礎(chǔ)教程 - 專欄導(dǎo)讀

    ??作者簡(jiǎn)介,黑夜開(kāi)發(fā)者,全棧領(lǐng)域新星創(chuàng)作者?,CSDN博客專家,阿里云社區(qū)專家博主,2023年6月CSDN上海賽道top4。 ??數(shù)年電商行業(yè)從業(yè)經(jīng)驗(yàn),歷任核心研發(fā)工程師,項(xiàng)目技術(shù)負(fù)責(zé)人。 ??本文已收錄于PHP專欄:PHP入門基礎(chǔ)教程。 歡迎來(lái)到 PHP 入門基礎(chǔ)教程!本專欄將帶領(lǐng)你

    2024年02月12日
    瀏覽(34)
  • HTML入門零基礎(chǔ)教程(三)

    HTML入門零基礎(chǔ)教程(三)

    嗨,大家好,我是異星球的小怪同志 一個(gè)想法有點(diǎn)亂七八糟的小怪 如果覺(jué)得對(duì)你有幫助,請(qǐng)支持一波。 希望未來(lái)可以一起學(xué)習(xí)交流。 目錄 一、? VSCode工具生成骨架標(biāo)簽新增代碼 1.文檔類型聲明標(biāo)簽 2.lang語(yǔ)言種類 3.charset字符集 二、HTML常用標(biāo)簽 1.標(biāo)簽語(yǔ)義

    2024年02月19日
    瀏覽(18)
  • stable diffusion 零基礎(chǔ)入門教程

    stable diffusion 零基礎(chǔ)入門教程

    一、前言 Midjourney 生成的圖片很難精準(zhǔn)的控制,隨機(jī)性很高,需要大量的跑圖,但Stable Diffusion可以根據(jù)模型較精準(zhǔn)的控制。 SD 效果圖展示: 二、Stable Diffusion 介紹 Stable Diffusion 是一款基于人工智能技術(shù)開(kāi)發(fā)的繪畫軟件,它可以幫助藝術(shù)家和設(shè)計(jì)師快速創(chuàng)建高品質(zhì)的數(shù)字藝術(shù)

    2024年03月10日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包