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

極客小將

您現(xiàn)在的位置是:首頁(yè) » python編程資訊

資訊內(nèi)容

用python和pygame游戲編程入門(mén)-彈球

極客小將2020-10-28-
下面是一個(gè)彈球的動(dòng)畫(huà)程序,角色小球碰到邊緣要發(fā)生反彈,這是這個(gè)程序的重點(diǎn)。

下面是一個(gè)彈球的動(dòng)畫(huà)程序,角色小球碰到邊緣要發(fā)生反彈,這是這個(gè)程序的重點(diǎn)。

與Scratch不同的是,Pygame中的坐標(biāo)原點(diǎn)在窗口的左上角,X軸水平向右,逐漸增加;y軸垂直向下,逐漸增加,如圖所示,也就是說(shuō)如果將角色y坐標(biāo)增加,就會(huì)向下移動(dòng),這是跟Scratch相反的。

用python和pygame游戲編程入門(mén)-彈球

speed = [1, 1],這個(gè)變量表示球的速度,你可能會(huì)有疑問(wèn),為什么速度不是一個(gè)數(shù)?[1,1]這兩個(gè)值分別表示在x軸和y軸上的增量。比如球初始位置為(0,0),按照這個(gè)速度移動(dòng)一次后位置就變?yōu)榱?1,1),就是x坐標(biāo)加1,y坐標(biāo)加1。因此這不僅僅是一個(gè)速度,它還確定了球移動(dòng)的方向,也就是我們前面講到的向量。

圖片素材->>ball.png下載(保存后修改名稱(chēng)為ball.png)

后面我們還會(huì)在這個(gè)程序的基礎(chǔ)上增加更多的效果,繼續(xù)鞏固我們之前學(xué)到的知識(shí)。


import pygame, sys  # 引入pygame sys	
pygame.init()  # 初始化  對(duì)pygame內(nèi)部各功能模塊進(jìn)行初始化創(chuàng)建及變量設(shè)置,默認(rèn)調(diào)用
size = width, height = 600, 400
speed = [1,1]
BLACK = 0, 0, 0
screen = pygame.display.set_mode(size)  
pygame.display.set_caption("彈球")  # 設(shè)置窗口標(biāo)題
ball = pygame.image.load("img/ball.png")  # pygame.image.load(filename) 將filename路徑下的圖像載入游戲,支持13種常用圖片格式
ballrect = ball.get_rect()              # surface對(duì)象 ball.get_rect() pygame使用內(nèi)部定義
fps = 300  # Frame per second 每秒幀率參數(shù)
fclock = pygame.time.Clock()  # pygame.time.Clock() 創(chuàng)建一個(gè)Clock對(duì)象,用于操作時(shí)間surface對(duì)象表示所有載入的圖像,其中.get_rect()方法返回一個(gè)覆蓋圖像的矩形(圖像的外接矩形)rect對(duì)象rect中top, bottom, left, right表示上下左右,width, height表示寬度,高度
while True:  # 執(zhí)行死循環(huán)
    for event in pygame.event.get():  # 從事件隊(duì)列中取出事件,并從隊(duì)列中刪除該事件
        if event.type == pygame.QUIT:  # pygame.QUIT是Pygame中定義的退出時(shí)間常量
            sys.exit()      # sys.exit()用于退出結(jié)束游戲并退出
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
               sys.exit()   # sys.exit()用于退出結(jié)束游戲并退出

    if pygame.display.get_active() :     #當(dāng)顯示器上處于活動(dòng)狀態(tài)時(shí)返回True,進(jìn)一步半段后可以暫停游戲,改變響應(yīng)模式等
        ballrect = ballrect.move(speed[0],speed[1])  # ballrect.move(x,y) 矩形移動(dòng)一個(gè)偏移量(x,y)x,y為整數(shù)
    if ballrect.left < 0 or ballrect.right > width:
            speed[0] = -speed[0] 
    if ballrect.top < 0 or ballrect.bottom > height:
            speed[1] = -speed[1]  # 碰壁后速度取反

    screen.fill(BLACK)
    screen.blit(ball, ballrect)     # screnen,blit(src,dest)將圖像繪制在另一個(gè)圖像上,即將src繪制到dest位置上,通過(guò)rect對(duì)象引導(dǎo)對(duì)壁球的繪制
    pygame.display.update()      # 對(duì)顯示窗口進(jìn)行刷新,默認(rèn)窗口全部重繪
    fclock.tick(fps)    # clock.tick(framerate) 控制幀速度,即窗口刷新速度。


本站部分內(nèi)容轉(zhuǎn)載自網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系管理員及時(shí)刪除。

預(yù)約試聽(tīng)課

已有385人預(yù)約都是免費(fèi)的,你也試試吧...

主站蜘蛛池模板: 桃江县| 遂宁市| 迁西县| 永顺县| 阜南县| 民和| 永善县| 綦江县| 高邮市| 蕲春县| 台江县| 无极县| 会理县| 封开县| 麻城市| 昆山市| 西青区| 开封县| 讷河市| 台南市| 宝鸡市| 贵州省| 凭祥市| 玉门市| 玉田县| 武穴市| 襄樊市| 本溪| 肇源县| 漯河市| 高邑县| 屏东县| 灵石县| 绩溪县| 东光县| 綦江县| 海兴县| 九龙县| 六安市| 枝江市| 饶阳县|