欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用python實現(xiàn)打磚塊小游戲

 更新時間:2022年05月11日 11:38:23   作者:彳余大膽  
這篇文章主要為大家詳細(xì)介紹了用python實現(xiàn)打磚塊小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python實現(xiàn)打磚塊小游戲的具體代碼,供大家參考,具體內(nèi)容如下

開發(fā)益智的打磚塊小游戲,你可以試一下能打幾塊

import pygame,sys,time,random
from pygame.locals import *?? ??? ?#
from static_params import * ? #引入所有靜態(tài)參數(shù)
from GameClass import *


pygame.init() ? #初始化游戲
mainclock = pygame.time.Clock() #時鐘設(shè)置
Exit =0
global Surface?
Surface = pygame.display.set_mode([WindowWidth,WindowHeight],0,32) #窗口設(shè)置
pygame.display.set_caption('打磚塊游戲') ? ?#設(shè)置窗口標(biāo)題
def BeforeGame():
?? ?StartImage = pygame.image.load('intro_Ball.png').convert_alpha() #開始圖像的界面
?? ?button = Button(Surface,FontColor,TextLocation,'StartGame')
?? ?flag = True
?? ?while flag:
?? ??? ?for event in pygame.event.get():
?? ??? ??? ?if event.type ==QUIT:
?? ??? ??? ??? ?Exit = 1
?? ??? ??? ??? ?pygame.quit()
?? ??? ??? ??? ?exit()
?? ??? ??? ?if event.type == MOUSEBUTTONUP:
?? ??? ??? ??? ?if button.is_overed():
?? ??? ??? ??? ??? ?flag = False
?? ??? ?Surface.blit(StartImage,ImageLocation)
?? ??? ?button.ButtonBlit()
?? ??? ?pygame.display.update()
?? ??? ?mainclock.tick(100)

def Gaming():
?? ?#設(shè)置一個暫停函數(shù)
?? ?def pause():
?? ??? ?button = Button(Surface,FontColor,TextLocation,'Continue')
?? ??? ?Surface.fill((0,0,0))
?? ??? ?flag = True
?? ??? ?while flag:
?? ??? ??? ?for event in pygame.event.get():
?? ??? ??? ??? ?if event.type ==QUIT:
?? ??? ??? ??? ??? ?Exit = 1
?? ??? ??? ??? ??? ?pygame.quit()
?? ??? ??? ??? ??? ?exit()
?? ??? ??? ??? ?if event.type == MOUSEBUTTONUP:
?? ??? ??? ??? ??? ?if button.is_overed():
?? ??? ??? ??? ??? ??? ?flag = False
?? ??? ??? ?pygame.mouse.set_visible(True)
?? ??? ??? ?button.ButtonBlit()
?? ??? ??? ?pygame.display.update()
?? ??? ??? ?mainclock.tick(100)

?? ?Ball = ball(BallCenter,BallRadius,BallColor,BallSpeed,MoveAngle,Surface)
?? ?paddle = Paddle(0,WindowHeight-PaddleHeight,PaddleWidth,PaddleHeight,PaddleColor,Surface)
?? ?# 設(shè)置一個磚塊類的矩陣
?? ?BrickMatrix = [[Brick(i,j,BrickWidth,BrickHeight,BrickHitNumber,BrickColor,Surface) for i in range(0,100,BrickWidth+3) if i+BrickWidth<640]\
?? ?for j in range(0,50,BrickHeight+2)]
?? ?mouse_x,mouse_y = pygame.mouse.get_pos()
?? ?while True:
?? ??? ?for event in pygame.event.get():
?? ??? ??? ?if event.type == QUIT:
?? ??? ??? ??? ?pygame.quit()
?? ??? ??? ??? ?exit()
?? ??? ??? ?if event.type == MOUSEMOTION:
?? ??? ??? ??? ?mouse_x, mouse_y = event.pos ?#判斷鼠標(biāo)的位置
?? ??? ??? ?if event.type == KEYDOWN: ? #按下空格鍵暫停
?? ??? ??? ??? ?if event.key == K_SPACE:
?? ??? ??? ??? ??? ?pause()
?? ??? ?Surface.fill((0,0,0))
?? ??? ?#設(shè)置鼠標(biāo)為不可見狀態(tài)
?? ??? ?pygame.mouse.set_visible(False)
?? ??? ?#判斷球的運動
?? ??? ?#判斷是否撞上了邊界或者擋板
?? ??? ?if Ball.center[1]+Ball.radius+paddle.height > WindowHeight:
?? ??? ??? ?if Ball.center[0]>paddle.left and Ball.center[0]<paddle.left+paddle.width:
?? ??? ??? ??? ?Ball.rebound4()
?? ??? ?#判斷是否裝上了左邊界
?? ??? ?elif Ball.center[0]-Ball.radius<interval:
?? ??? ??? ?Ball.rebound1()
?? ??? ?elif Ball.center[0]+Ball.radius>WindowWidth-interval:
?? ??? ??? ?Ball.rebound2()
?? ??? ?#判斷是否撞上了上邊界
?? ??? ?elif Ball.center[1]-Ball.radius<interval:
?? ??? ??? ?Ball.rebound3()
?? ??? ?for brickline in BrickMatrix:
?? ??? ??? ?for brick in brickline:?? ?
?? ??? ??? ??? ?if brick.exist == 1:?? ?
?? ??? ??? ??? ??? ?if brick.top >Ball.center[1] and brick.top-Ball.center[1]-Ball.radius<interval and Ball.speedy>0 and Ball.center[0]>brick.left and Ball.center[0]<brick.right:
?? ??? ??? ??? ??? ??? ?print(1,Ball.center,brick.left,brick.right,brick.top,brick.bottom,Ball.radius)
?? ??? ??? ??? ??? ??? ?Ball.rebound4()
?? ??? ??? ??? ??? ??? ?brick.hitnumber =brick.hitnumber-1
?? ??? ??? ??? ??? ?if Ball.center[1]>brick.bottom and Ball.center[1]-Ball.radius-brick.bottom<interval and Ball.speedy<0 and Ball.center[0]>brick.left and Ball.center[0]<brick.right:
?? ??? ??? ??? ??? ??? ?print(2,Ball.center,brick.left,brick.right,brick.top,brick.bottom,Ball.radius)
?? ??? ??? ??? ??? ??? ?Ball.rebound3()
?? ??? ??? ??? ??? ??? ?brick.hitnumber =brick.hitnumber-1
?? ??? ??? ??? ??? ?if Ball.center[0]< brick.left and brick.left-Ball.center[0]-Ball.radius<interval and Ball.speedx>0 and Ball.center[1]>brick.top and Ball.center[1]<brick.bottom:
?? ??? ??? ??? ??? ??? ?print(3,Ball.center,brick.left,brick.right,brick.top,brick.bottom,Ball.radius)
?? ??? ??? ??? ??? ??? ?Ball.rebound2()
?? ??? ??? ??? ??? ??? ?brick.hitnumber =brick.hitnumber-1
?? ??? ??? ??? ??? ?if Ball.center[0]>brick.right and Ball.center[0]-Ball.radius-brick.right<interval and Ball.speedx<0 and Ball.center[1]>brick.top and Ball.center[1]<brick.bottom:
?? ??? ??? ??? ??? ??? ?print(4,Ball.center,brick.left,brick.right,brick.top,brick.bottom,Ball.radius)
?? ??? ??? ??? ??? ??? ?Ball.rebound1()
?? ??? ??? ??? ??? ??? ?brick.hitnumber =brick.hitnumber-1
?? ??? ??? ??? ??? ?if brick.hitnumber <= 0:
?? ??? ??? ??? ??? ??? ?brick.exist = 0
?? ??? ?#所有的磚塊都不存在了,則游戲勝利
?? ??? ?if all([not any([brick.exist for brick in line]) for line in BrickMatrix] ):
?? ??? ??? ?return 'Win'
?? ??? ?# print(brick.hitnumber,brick.exist)
?? ??? ?Ball.move()
?? ??? ?paddle.get_pos(mouse_x)
?? ??? ?if Ball.fall():
?? ??? ??? ?return 'Fail'
?? ??? ?#畫出圖形
?? ??? ?for brickline in BrickMatrix:
?? ??? ??? ?for brick in brickline:
?? ??? ??? ??? ?brick.draw()
?? ??? ?Ball.draw()
?? ??? ?paddle.draw()
?? ??? ?pygame.display.update()
?? ??? ?#每秒鐘執(zhí)行100次該代碼,用來控制游戲循環(huán)頻率
?? ??? ?mainclock.tick(100)
?? ?

def AfterGame(text):
?? ?result = pygame.font.SysFont('comicsansms',100).render(text,1,(0,255,0))
?? ?Surface.blit(result,ImageLocation)
?? ?button1 = Button(Surface,FontColor,TextLocation,'PLAY IT AGAIN')
?? ?button2 = Button(Surface,FontColor,TextLocation2,'QUIT')
?? ?flag = True
?? ?while flag:
?? ??? ?pygame.mouse.set_visible(True)
?? ??? ?for event in pygame.event.get():
?? ??? ??? ?if event.type == QUIT:
?? ??? ??? ??? ?Exit = 1
?? ??? ??? ??? ?pygame.quit()
?? ??? ??? ??? ?exit()
?? ??? ??? ?if event.type == MOUSEBUTTONUP:
?? ??? ??? ??? ?if button1.is_overed():
?? ??? ??? ??? ??? ?flag = False
?? ??? ??? ??? ?if button2.is_overed():
?? ??? ??? ??? ??? ?Exit = 1
?? ??? ??? ??? ??? ?pygame.quit()
?? ??? ??? ??? ??? ?exit()
?? ??? ?button1.ButtonBlit()
?? ??? ?button2.ButtonBlit()
?? ??? ?pygame.display.update()
?? ??? ?mainclock.tick(100)


def main():
?? ?#展示游戲開始前的信息
?? ?BeforeGame()
?? ?print(Exit)
?? ?#開始游戲循環(huán)
?? ?while not Exit:
?? ??? ?com=Gaming()
?? ??? ?AfterGame(com)


if __name__ =='__main__':
?? ?main()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python?OpenCV圖像金字塔

    python?OpenCV圖像金字塔

    這篇文章主要介紹了python?OpenCV圖像金字塔,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • Windows下Python2與Python3兩個版本共存的方法詳解

    Windows下Python2與Python3兩個版本共存的方法詳解

    這篇文章主要介紹了Windows下Python2與Python3兩個版本共存的方法,文中介紹的很詳細(xì),對大家具有一定的參考價值,有需要的朋友們下面來一起看看吧。
    2017-02-02
  • python使用yield壓平嵌套字典的超簡單方法

    python使用yield壓平嵌套字典的超簡單方法

    這篇文章主要給大家介紹了關(guān)于python使用yield壓平嵌套字典的超簡單方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 對pandas將dataframe中某列按照條件賦值的實例講解

    對pandas將dataframe中某列按照條件賦值的實例講解

    今天小編就為大家分享一篇對pandas將dataframe中某列按照條件賦值的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 使用python判斷jpeg圖片的完整性實例

    使用python判斷jpeg圖片的完整性實例

    今天小編就為大家分享一篇使用python判斷jpeg圖片的完整性實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python爬蟲之場內(nèi)ETF基金獲取

    python爬蟲之場內(nèi)ETF基金獲取

    這篇文章主要介紹了python爬蟲之場內(nèi)ETF基金獲取,ETF?是一種場內(nèi)交易型基金,可以在盤中進(jìn)行交易,交易性比場外基金強一點,下文基于python的相關(guān)資料展開,需要的小伙伴可以參考一下
    2022-05-05
  • Python3自動安裝第三方庫,跟pip說再見

    Python3自動安裝第三方庫,跟pip說再見

    很多朋友私信小編Python安裝第三方庫安裝技巧,在這就不一一回復(fù)大家了,今天小編給大家分享一篇教程關(guān)于Python自動安裝第三方庫的小技巧,本文以安裝plotly為例給大家詳細(xì)講解,感興趣的朋友跟隨小編一起看看吧
    2021-10-10
  • 關(guān)于Pandas缺失值inf與nan的處理實踐

    關(guān)于Pandas缺失值inf與nan的處理實踐

    這篇文章主要介紹了關(guān)于Pandas缺失值inf與nan的處理實踐,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 詳解如何使用Python實現(xiàn)刪除重復(fù)文件

    詳解如何使用Python實現(xiàn)刪除重復(fù)文件

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實現(xiàn)刪除重復(fù)文件功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-10-10
  • 使用seaborn繪制強化學(xué)習(xí)中的圖片問題

    使用seaborn繪制強化學(xué)習(xí)中的圖片問題

    這篇文章主要介紹了使用seaborn繪制強化學(xué)習(xí)中的圖片問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01

最新評論