资源简介
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
评论
共有 条评论