基于pygame實(shí)現(xiàn)童年掌機(jī)打磚塊游戲
本文為大家分享了童年掌機(jī)游戲,基于pygame實(shí)現(xiàn)打磚塊的具體代碼,供大家參考,具體內(nèi)容如下
項(xiàng)目背景:
小時(shí)候有過(guò)一個(gè)掌機(jī)游戲機(jī),里面有俄羅斯方塊,打方塊等游戲,玩的那叫一個(gè)廢寢忘食,只是后來(lái)玩壞了就沒(méi)再玩過(guò)。今日想學(xué)習(xí)以下python,就從游戲入手,寫一個(gè)打方塊的游戲,順便回憶以下童年的樂(lè)趣。
此作完全是我學(xué)習(xí)python和游戲制作的練手作品,用到的python語(yǔ)法和pygame插件的api不會(huì)寫的很詳細(xì),主要記錄學(xué)習(xí)遇到的問(wèn)題和思路。
1、環(huán)境準(zhǔn)備
1.1.安裝python,這里我安裝的是3.6.3。(安裝教程請(qǐng)自行搜索)
1.2.安裝pygame,這里我安裝的是1.9.3。(安裝教程請(qǐng)自行搜索)
1.3.安裝pycharm
1.4.準(zhǔn)備素材,打開(kāi)畫圖工具,做出一個(gè)磚塊圖片,一個(gè)小球圖片,一個(gè)板子圖片。
2、思路整理
回憶游戲流程,整個(gè)游戲大致有以下幾個(gè)步驟
2.1.游戲初始化,載入三種圖片。
2.2.點(diǎn)擊啟動(dòng)按鈕,小球移動(dòng),也可以增加暫停功能。
2.3.小球與磚塊、板子,左右和上方墻壁的碰撞
2.4.板子與左右墻壁的碰撞(不可超越墻壁)
2.5.小球的落地,游戲結(jié)束
2.6.磚塊被打完,游戲結(jié)束
2.7.計(jì)分功能
2.8.音樂(lè)~~
3、開(kāi)整
先從載入圖片做起。廢話不多說(shuō),直接上代碼
import pygame from pygame.locals import * from sys import exit # pygame初始化,必須要的 pygame.init() # 創(chuàng)建窗口 # pygame.display是訪問(wèn)了顯示設(shè)備 # set_mode方法會(huì)返回一個(gè)Surface對(duì)象,即本程序運(yùn)行時(shí)出現(xiàn)的窗口畫面 screen = pygame.display.set_mode((360, 480)) # 設(shè)置窗口的名字 pygame.display.set_caption('打磚塊') # 加載圖像 # 球 ball = pygame.image.load('img/ball.png') # 磚塊 block = pygame.image.load('img/block.png') # 板子 board = pygame.image.load('img/board.png') # 游戲程序一般都需要一個(gè)死循環(huán),通過(guò)某些條件才可以退出 while True: for event in pygame.event.get(): # 接受退出時(shí)間后退出程序 if event.type == QUIT: exit() # 把畫面背景設(shè)置為白色 screen.fill((255, 255, 255)) #把上面加載的圖片放入到畫面中 # 把球放進(jìn)去,并設(shè)置坐標(biāo) screen.blit(ball, (180, 430)) # 把磚塊放進(jìn)去,并設(shè)置坐標(biāo) # 這里僅放了一個(gè)磚塊,以后可以做個(gè)循環(huán)放好多磚塊 screen.blit(block, (20, 20)) # 把板子放進(jìn)去,并設(shè)置坐標(biāo) screen.blit(board, (150, 450)) # 刷新畫面 pygame.display.update()
通過(guò)上面的代碼就可以簡(jiǎn)單的把圖片加載到畫面中了
接下來(lái)還要讓小球和板子動(dòng)起來(lái),下次再寫。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python如何獲取網(wǎng)絡(luò)數(shù)據(jù)
這篇文章主要介紹了python如何獲取網(wǎng)絡(luò)數(shù)據(jù),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04python在html中插入簡(jiǎn)單的代碼并加上時(shí)間戳的方法
今天小編就為大家分享一篇python在html中插入簡(jiǎn)單的代碼并加上時(shí)間戳的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10Python基于Socket實(shí)現(xiàn)簡(jiǎn)易多人聊天室的示例代碼
這篇文章主要介紹了Python基于Socket實(shí)現(xiàn)簡(jiǎn)易多人聊天室的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Python腳本實(shí)現(xiàn)定時(shí)任務(wù)的最佳方法
我們?cè)谌粘9ぷ髦?常常會(huì)用到需要周期性執(zhí)行的任務(wù),下面這篇文章主要給大家介紹了關(guān)于Python腳本實(shí)現(xiàn)定時(shí)任務(wù)的最佳方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05Python3讀取Excel數(shù)據(jù)存入MySQL的方法
今天小編就為大家分享一篇Python3讀取Excel數(shù)據(jù)存入MySQL的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05使用python實(shí)現(xiàn)男神女神顏值打分系統(tǒng)(推薦)
這篇文章主要介紹了用python做一個(gè)男神女神顏值打分系統(tǒng)(程序分析見(jiàn)注釋),需要的朋友可以參考下2019-10-10python實(shí)現(xiàn)一個(gè)簡(jiǎn)單RPC框架的示例
本文將會(huì)使用Python實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的RPC框架,不具有實(shí)用意義,但可以讓你清醒地理解RPC框架的幾個(gè)組成部分,只是比看Python自帶的xmlrpc清晰。2020-10-10