中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

4.4綜合問題的解決 課件(共30張PPT)-高中信息技術(教科版2019 必修1)

資源下載
  1. 二一教育資源

4.4綜合問題的解決 課件(共30張PPT)-高中信息技術(教科版2019 必修1)

資源簡介

(共30張PPT)
4.4綜合問題的解決
第 4 單元
學習目標
4.4綜合問題的解決
★ 學會使用pygame模塊。
★ 基于需求,分解任務。
★ 組裝程序,測試運行
pygame模塊
什么是pygame模塊?
Pygame 是一個專門用來開發游戲的 Python 模塊,主要為開發、設計 2D 電子游戲而生,具有免費、開源,支持多種操作系統,具有良好的跨平臺性等優點。它提供了諸多操作模塊,比如圖像模塊(image)、聲音模塊(mixer)、輸入/輸出(鼠標、鍵盤、顯示屏)模塊等。
簡單來說,如果你使用pygame,理論上可以開發設計市面上所有的2d類型游戲(僅僅是理論上)。
pygame模塊
pygame模塊的安裝
使用pip接口進行安裝
代碼:
pygame模塊
pygame庫基本函數使用
1. pygame.init() 初始化,調用pygame的任何函數之前都要調用這個函數。
代碼:
pygame模塊
pygame庫基本函數使用
2. pygame.display.set_mode((xxx,xxx)) 創建窗口,傳入寬和高
代碼:
pygame模塊
pygame庫基本函數使用
3. pygame.display.set_caption("xxxx") 設置窗口頂部標題名稱
代碼:
pygame模塊
pygame庫基本函數使用
運行上面代碼會發現左上角出現一個窗口,然后一閃即過,這是正常的。這里就要思考python代碼的運行,通過執行上述代碼,你創建了一個黑色窗口,但是當代碼執行完會發生什么,當然是python自動退出了。
所以要使用一定的方法不讓代碼結束運行,這就要添加“死循環”讓程序一遍又一遍的運行里面的代碼而不退出。
pygame模塊
pygame的操作
1. screen.fill() 對顏色進行填充
代碼:
pygame模塊
pygame的操作
2. 圖片插入pygame.image.load('xxx.png')
代碼:
3. screen.blit(xx,(0,0))##寫入到背景
pygame模塊
pygame的操作
4. pygame.display.flip() 更新全部顯示
5.pygame.quit() #退出pygame
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
游戲規則:
1.按下空格鍵開啟游戲
2.按下空格鍵控制小鳥向上飛,不按,小鳥掉落下來
3.小鳥碰到上下管道或者超出窗口上下高度,游戲失敗
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
一、游戲框架
import pygame as py
import random as r
import sys
py.init() # 初始化
py.mixer.init() # 初始化聲音模塊
py.display.set_caption("flappy bird") # 設置標題
WIDTH,HEIGHT = 288,512 # 常量,游戲窗口寬和高
screen = py.display.set_mode((WIDTH,HEIGHT)) # 屏幕對象
while True:
for event in py.event.get(): # 獲取事件
if event.type == py.QUIT:
py.quit()
sys.exit()
py.display.update()
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
二、設置變量
2.1、加載背景圖片對象和設置幀速率
clock = py.time.Clock()
bg = py.image.load("img/bg_day.png") # 背景圖片對象
2.2、加載小鳥圖片對象
'''小鳥的設置'''
bird = py.image.load("img/bird0_0.png") # 小鳥對象
bird_rect = bird.get_rect()
speed = 7 # 小鳥的速度
bird_rect.left = 50 # 小鳥的x坐標
bird_rect.top = 300 # 小鳥的y坐標
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
二、設置變量
2.3、加載管道圖片對象
pipe_up = py.image.load("img/pipe_up.png") # 口沖上的管道 下
pipe_down = py.image.load("img/pipe_down.png") # 口沖下的管道 上
pipe = [WIDTH, r.randint(-200,0)]
# 管道坐標:[x坐標,y坐標]
space = r.randint(100,200)
# 上下管道間隔
x = 5
# 管道移動速度
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
二、設置變量
2.4、字體 —— 分數、最高分、開始界面和游戲結束
h_score = t_score = 0 # 最高分和當前分數
score_img = [py.image.load("img/font_0{}.png".format(i)) for i in range(48,58)] # 分數圖片
font36 = py.font.SysFont('Arial', 28) # 字體對象
msg = font36.render('Press SPACE to Start', True, (0,0,0)) # 屏幕上的開始文本
h_score_font = font36.render("High Score: " + str(h_score),True,(0,0,0)) # 渲染最高分
game_over = py.image.load("img/game_over.png") # 獲取失敗圖片對象
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
二、設置變量
2.5、聲音模塊
'''聲音'''
sounds = (
py.mixer.Sound("audio/wing.wav"),
py.mixer.Sound("audio/hit.wav"),
py.mixer.Sound("audio/point.wav")
)
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
二、設置變量
2.5、聲音模塊
'''聲音'''
sounds = (
py.mixer.Sound("audio/wing.wav"),
py.mixer.Sound("audio/hit.wav"),
py.mixer.Sound("audio/point.wav")
)
2.6、是否按下空格鍵
start = False # 開始狀態,空格鍵沒有按下
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
三、游戲主循環
3.1、設置幀速率、加載背景圖片
while True:
clock.tick(60) # 設置幀速率
screen.blit(bg,(0,0)) # 加載背景圖片
【省略代碼】
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
三、游戲主循環
3.2、按下空格鍵
while True:
clock.tick(60) # 設置幀速率
screen.blit(bg,(0,0)) # 加載背景圖片
for event in py.event.get(): # 獲取事件
if event.type == py.QUIT:
py.quit()
sys.exit()
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
三、游戲主循環
3.2、按下空格鍵
# 按空格時開始游戲,或者重新初始化速度
if event.type == py.KEYDOWN:
if event.key == py.K_SPACE: # 按下空格鍵
sounds[0].play() # 播放音效
if start == False:
bird_rect.top , start = 300,True
speed = 7 # 重新初始化速度
py.display.update()
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
三、游戲主循環
3.3、開始游戲
每次管道在窗口的最右邊出現,向左移動
上管道的top屬性的取值范圍是(-200,0),即上管道在窗口中顯示出來的長度范圍為(120,320)
space為上下兩個管道口的間距,設置為了一個隨機數
下管道的top屬性的取值范圍可以通過計算得到,為上管道在窗口上顯示的長度 + space,即 pipe[1] + space + 320
管道到達窗口左邊之后,需要重新生成管道的y坐標
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
三、游戲主循環
3.3、開始游戲
if start: # 開始游戲
screen.blit(bird,(bird_rect.left,bird_rect.top)) # 加載小鳥角色
bird_rect.top -= speed # 向上或向下飛
speed -= 0.5
'''管道'''
screen.blit(pipe_down,(pipe[0],pipe[1])) # 加載上面的管道
screen.blit(pipe_up,(pipe[0],pipe[1] + space + 320)) # 加載下面的管道
pipe[0] -= x # 管道x坐標減少,向左移動
shouScore(t_score) ## 顯示得分
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
三、游戲主循環
3.3、開始游戲
# 出現新的管道,隨機y坐標
if pipe[0] < -50:
pipe = [WIDTH,r.randint(-200,0)]
space = r.randint(100,200)
t_score += 1 # 增加得分
sounds[2].play() # 成功通過管道,播放音效
h_score = max(h_score,t_score) # 更新最高分
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
三、游戲主循環
3.3、開始游戲
# 開始和結束時顯示的畫面
else:
h_score_font = font36.render("High Score: " + str(h_score), True, (0, 0, 0)) # 渲染最高分
screen.blit(msg,(0,200)) # 顯示提示信息
screen.blit(h_score_font,(0,300)) # 顯示最高分
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
三、游戲主循環
3.4、游戲失敗
小鳥的y坐標(即top)超過窗口的上下高度
小鳥撞到管道
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
三、游戲主循環
3.4、游戲失敗
# 失敗條件
if bird_rect.top >= HEIGHT - 48 or bird_rect.top < 0 or \
(50 < pipe[0] < 98) and (bird_rect.top < pipe[1] + 320 or \
bird_rect.top > pipe[1] + space + 320):
start, t_score, pipe[0],msg = False, 0, 720,game_over # 游戲失敗,顯示gameover
bird_rect.top = 300
x = 5
sounds[1].play() # 播放音效
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
三、游戲主循環
四、處理顯示分數的函數 —— shouScore(t_score)
分數顯示在屏幕中央
分數采用的是0-9的圖片來顯示
需要計算分數所占的寬度
pygame模塊實例
用pygame制作簡易版《flappy bird》游戲
三、游戲主循環
四、處理顯示分數的函數 —— shouScore(t_score)
def shouScore(score):
'''分數顯示在屏幕中央'''
score_lst = [int(i) for i in list(str(score))] # 獲取分數
totalWidth = 0 # 所要顯示數字的總寬度
for i in score_lst:
totalWidth += score_img[i].get_width()
Xpos = (WIDTH - totalWidth) / 2
for i in score_lst:
screen.blit(score_img[i],(Xpos,HEIGHT * 0.1))
Xpos += score_img[i].get_width()
謝謝聆聽

展開更多......

收起↑

資源預覽

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 博乐市| 新建县| 静宁县| 鹤岗市| 通城县| 遂川县| 丰顺县| 舟曲县| 泾川县| 城步| 犍为县| 大厂| 阜新市| 漯河市| 闽清县| 光山县| 呼和浩特市| 华池县| 永州市| 伊吾县| 鹤山市| 云浮市| 高陵县| 沙河市| 和林格尔县| 平乐县| 株洲市| 山东省| 汶上县| 大庆市| 东宁县| 巨鹿县| 扎囊县| 益阳市| 上虞市| 陇川县| 宁晋县| 高阳县| 闵行区| 鄱阳县| 通江县|