竹内纱里奈和大战黑人_欧美成人黄色小视频_91福利影视_欧美在线观看视频网站_h色网站免费观看_97综合

極客小將

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

資訊內容

用python和pygame游戲編程入門-彈球[鍵盤變速]

極客小將2020-10-28-
上一節(jié)我們?yōu)閺椙騽赢嬙黾右粋€新的功能,就是背景隨著小球的移動不斷變換,本節(jié)我們再給這個動畫增加一個空能,就是鍵盤改變小球速度。

      上一節(jié)我們?yōu)閺椙騽赢嬙黾右粋€新的功能,就是背景隨著小球的移動不斷變換,本節(jié)我們再給這個動畫增加一個功能,就是鍵盤改變小球速度。通過上下左右四個方向鍵控制小球在這四個方向的速度,具體的效果是:如果小球正往右移動,此時按右鍵小球加速向右,如果此時按左鍵,則減速;反之如果小球向左移動,按左鍵加速向左,按右鍵減速,上下鍵的效果同理,控制向上向下的速度。

具體的方法就是,在游戲的主循環(huán)中加入對鍵盤事件的偵測,判斷鍵盤事件:

1、如果方向左鍵按下,x方向的速度增加-1,如果小球向左,speed[0]<0,再減1,那么會向左加速,反之向右運動的話會減速:

if event.key == pygame.K_LEFT:
	speed[0] = speed[0] - 1 

2、如果方向右鍵按下,x方向的速度增加1,如果此時是向左移動,那么speed[0]<0給它加1也就是絕對值減1,速度就會減慢:

elif event.key == pygame.K_RIGHT:
	speed[0] =  speed[0] + 1

3、同理,如果方向右鍵按下,y方向的速度增加1即:

elif event.key == pygame.K_DOWN:
	speed[1] = speed[1] + 1 

4、如果方向右鍵按下,y方向的速度增加-1即:

elif event.key == pygame.K_UP:
	speed[1] = speed[1] - 1

完整的程序代碼:

import pygame, sys  # 引入pygame sys	
pygame.init()  # 初始化  對pygame內部各功能模塊進行初始化創(chuàng)建及變量設置,默認調用
size = width, height = 600, 400

speed = [1,1]
BLACK = 0, 0, 0
screen = pygame.display.set_mode(size)  
pygame.display.set_caption("彈球")  # 設置窗口標題
ball = pygame.image.load("img/ball.png")  # pygame.image.load(filename) 將filename路徑下的圖像載入游戲,支持13種常用圖片格式
ballrect = ball.get_rect()              # surface對象 ball.get_rect() pygame使用內部定義
fps = 300  # Frame per second 每秒幀率參數
fclock = pygame.time.Clock()  # pygame.time.Clock() 創(chuàng)建一個Clock對象,用于操作時間surface對象表示所有載入的圖像,其中.get_rect()方法返回一個覆蓋圖像的矩形(圖像的外接矩形)rect對象rect中top, bottom, left, right表示上下左右,width, height表示寬度,高度
bgcolor = pygame.Color("black")
def RGBchannel(a):
	#當a<0時 返回值為0,當a>255時 返回值為255,當0255 else int(a))

while True:  # 執(zhí)行死循環(huán)
    for event in pygame.event.get():  # 從事件隊列中取出事件,并從隊列中刪除該事件
        if event.type == pygame.QUIT:  # pygame.QUIT是Pygame中定義的退出時間常量
            sys.exit()      # sys.exit()用于退出結束游戲并退出
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
               sys.exit()   # sys.exit()用于退出結束游戲并退出
            if event.key == pygame.K_LEFT:
                speed[0] = speed[0] - 1
            elif event.key == pygame.K_RIGHT:
                speed[0] = speed[0] + 1
            elif event.key == pygame.K_DOWN:
                speed[1] = speed[1] + 1 
            elif event.key == pygame.K_UP:
                speed[1] = speed[1] - 1

    if pygame.display.get_active() :     #當顯示器上處于活動狀態(tài)時返回True,進一步半段后可以暫停游戲,改變響應模式等
        ballrect = ballrect.move(speed[0],speed[1])  # ballrect.move(x,y) 矩形移動一個偏移量(x,y)x,y為整數
    if ballrect.left < 0 or ballrect.right > width:
            speed[0] = -speed[0] 
    if ballrect.top < 0 or ballrect.bottom > height:
            speed[1] = -speed[1]  # 碰壁后速度取反
    print(speed)	
    bgcolor.r = RGBchannel(ballrect.left*255/width)
    bgcolor.g = RGBchannel(ballrect.left * 255 / height)
    bgcolor.b = RGBchannel(min(speed[0],speed[1]) * 255 / max(speed[0],speed[1],1))
	#顯示窗口背景填充為color顏色采用RGB色彩體系 由于圖片不斷運動,運動后原位置默認填充白色,因此需要不斷刷新
    screen.fill(bgcolor)

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


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

預約試聽課

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

主站蜘蛛池模板: 久久精品夜夜夜夜夜久久 | 91网站在线观看视频 | 视频免费1区二区三区 | 精品国产乱码久久久 | 婷婷99狠狠躁天天躁中文字幕 | 欧美成人精品一区 | 国产99久久精品 | 欧美无乱码久久久免费午夜一区 | 免费v片在线观看 | 一区二区三区视频 | 亚洲精品电影 | 美女h网站 | 黄色短视频在线观看 | 国产香蕉在线 | 久久精品不卡 | 亚洲成人免费观看 | 蜜桃永久免费 | 一区二区三区欧美在线 | 久久久久久久久久久美女 | 日韩精品第一区 | 国产精品久久久久久久免费大片 | 欧美极品少妇xxxxⅹ喷水 | 精品国产凹凸成av人导航 | 懂色av蜜臀av粉嫩av | 亚洲福利一区二区 | 国产乱码精品一区二区三区五月婷 | 国产精品观看 | 精品av | 日韩一区二区三区精品 | 综合久久亚洲 | 国产成人极品 | 亚洲欧洲成人av每日更新 | 日韩精品一区在线观看 | 91av视频免费在线观看 | 日韩一区在线视频 | 久久久免费观看视频 | 久久久久国产一区二区三区 | 成人在线播放 | av免费在线播放网站 | 日韩国产精品一区二区 | 成人在线免费毛片 |