資源簡介
Python游戲:俄羅斯方塊源代碼,經典俄羅斯方塊,相信這款游戲大家都玩過吧,游戲基于python2.7、pygame1.9.2b8編寫。
關于游戲注解中出現的術語解釋:
舞臺:整個游戲界面,包括堆疊區、成績等顯示區,下個出現方塊預告區。
堆疊區:游戲方塊和活動方塊形狀堆放區域,游戲中主要互動區。
方塊(基礎方塊):這里的方塊是對基礎的小四方形統稱,每個方塊就是一個正方形。
方塊形狀:指一組以特定方式組合在一起的方塊,也就是大家常說的下落方塊形狀,比如長條,方形,L形等。
固實方塊:特指堆疊區中不能再進行移動,可被消除的基礎方塊集合。
注:請下載源碼后,在網上搜索msyh.ttc字體,放在源代碼目錄內。

代碼片段和文件信息
#?-*-?coding:utf-8?-*-
‘‘‘
經典俄羅斯方塊
游戲基于python2.7、pygame1.9.2b8編寫。
游戲注解中出現的術語解釋:
舞臺:整個游戲界面,包括堆疊區、成績等顯示區,下個出現方塊預告區。
堆疊區:游戲方塊和活動方塊形狀堆放區域,游戲中主要互動區。
方塊(基礎方塊):這里的方塊是對基礎的小四方形統稱,每個方塊就是一個正方形。
方塊形狀:指一組以特定方式組合在一起的方塊,也就是大家常說的下落方塊形狀,比如長條,方形,L形等。
固實方塊:特指堆疊區中不能再進行移動,可被消除的基礎方塊集合。
version:1.0
author:lykyl
createdate:2016.9.29
‘‘‘
import?sys??
reload(sys)??
sys.setdefaultencoding(‘utf8‘)
#?download?by?http://www.codesc.net
import?randomcopy
import?pygame?as?pg
from?pygame.locals?import?*
‘‘‘
常量聲明
‘‘‘
EMPTY_CELL=0????????#空區標識,表示沒有方塊
FALLING_BLOCK=1?????#下落中的方塊標識,也就是活動方塊。
STATIC_BLOCK=2??????#固實方塊標識
‘‘‘
全局變量聲明
變量值以sysInit函數中初始化后的結果為準
‘‘‘
defaultFont=None????????#默認字體
screen=None?????#屏幕輸出對象
backSurface=None????????#圖像輸出緩沖畫板
score=0?????#玩家得分記錄
clearLineScore=0????????#玩家清除的方塊行數
level=1?????#關卡等級
clock=None??????#游戲時鐘
nowBlock=None???????#當前下落中的方塊
nextBlock=None??????#下一個將出現的方塊
fallSpeed=10????????#當前方塊下落速度
beginFallSpeed=fallSpeed????????#游戲初始時方塊下落速度
speedBuff=0?????#下落速度緩沖變量
keyBuff=None????????#上一次按鍵記錄
maxBlockWidth=10????????#舞臺堆疊區X軸最大可容納基礎方塊數
maxBlockHeight=18???????#舞臺堆疊區Y軸最大可容納基礎方塊數
blockWidth=30???????#以像素為單位的基礎方塊寬度
blockHeight=30??????#以像素為單位的基礎方塊高度
blocks=[]???????#方塊形狀矩陣四維列表。第一維為不同的方塊形狀,第二維為每個方塊形狀不同的方向(以0下標起始,一共四個方向),第三維為Y軸方塊形狀占用情況,第四維為X軸方塊形狀占用情況。矩陣中0表示沒有方塊,1表示有方塊。
stage=[]????????#舞臺堆疊區矩陣二維列表,第一維為Y軸方塊占用情況,第二維為X軸方塊占用情況。矩陣中0表示沒有方塊,1表示有固實方塊,2表示有活動方塊。
gameOver=False??????#游戲結束標志
pause=False?????#游戲暫停標志
def?printTxt(contentxyfontscreencolor=(255255255)):
????‘‘‘顯示文本
????args:
????????content:待顯示文本內容
????????xy:顯示坐標
????????font:字體
????????screen:輸出的screen
????????color:顏色
????‘‘‘
????imgTxt=font.render(contentTruecolor)
????screen.blit(imgTxt(xy))
????
????
class?point(object):
????‘‘‘平面坐標點類
????attributes:
????????xy:坐標值
????‘‘‘
????def?__init__(selfxy):
????????self.__x=x
????????self.__y=y
????
????def?getx(self):
????????return?self.__x
????
????def?setx(selfx):
????????self.__x=x
????
????x=property(getxsetx)
????
????def?gety(self):
????????return?self.__y
????
????def?sety(selfy):
????????self.__y=y
????
????y=property(getysety)????
????
????def?__str__(self):
????????return?“{x:“+“{:.0f}“.format(self.__x)+“y:“+“{:.0f}“.format(self.__y)+“}“
class?blockSprite(object):
????‘‘‘
????方塊形狀精靈類
????下落方塊的定義全靠它了。
????attributes:
????????shape:方塊形狀編號
????????direction:方塊方向編號
????????xy方塊形狀左上角方塊坐標
????????block:方塊形狀矩陣
????‘‘‘
????def?__init__(selfshapedirectionxy):
????????self.shape=shape
????????self.direction=direction
????????self.xy=xy
????
????def?chgDirection(selfdirection):
????????‘‘‘
????????改變方塊的方向
????????args:
????????????direction:1為向右轉,0為向左轉。
????????‘‘‘
????????dirNumb=len(blocks[self.shape])-1
????????if?direction==1:
????????????self.direction+=1
????????????if?self.direction>dirNumb:
????????????????self.direction=0
????????else:
????????????self.direction-=1
????????????if?se
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????127??2016-10-24?00:15??codesc.net\Python俄羅斯方塊\elsfk.cfg
?????文件??????20204??2018-04-25?17:27??codesc.net\Python俄羅斯方塊\俄羅斯方塊.py
?????文件??????18262??2016-10-24?02:44??codesc.net\Python俄羅斯方塊\運行1.jpg
?????目錄??????????0??2018-04-25?17:30??codesc.net\Python俄羅斯方塊
?????目錄??????????0??2018-04-25?17:24??codesc.net
-----------?---------??----------?-----??----
????????????????38593????????????????????5
評論
共有 條評論