--==============================================================================--
--╭━━╮┏━━╮╭━━╮╭━━╮╭╭╮╮╭━━╮　╭╭╮╮╭━━╮╭╮╭╮╭━━╮
--┃╭━╯┃╭╮┃┃╭━╯┃╭╮┃┃　　┃┃╭━╯　┃　　┃┃╭╮┃┃╰╯┃┃╭━╯
--┃╰━╮┃┃┃┃┃┃╭╮┃╰╯┃┃┃┃┃┃╰━╮　┃┃┃┃┃╰╯┃┃　╭╯┃╰━╮
--┃╭━╯┃┃┃┃┃┃┃┃┃╭╮┃┃╭╮┃┃╭━╯　┃╭╮┃┃╭╮┃┃　╰╮┃╭━╯
--┃╰━╮┃╰╯┃┃╰╯┃┃┃┃┃┃┃┃┃┃╰━╮　┃┃┃┃┃┃┃┃┃╭╮┃┃╰━╮
--╰━━╯┗━━╯╰━━╯╰╯╰╯╰╯╰╯╰━━╯  ╰╯╰╯╰╯╰╯╰╯╰╯╰━━╯
--
-- 作者:一醉倾城  创建:2010年5月29日12时13分55秒
--=============================================================================--

倾城俄罗斯  = class()



--=============================================================================--
-- ■ 构造函数
--=============================================================================--
function 倾城俄罗斯:初始化(行数,列数,宽,高,格子,出现位置x,出现位置y)




引擎:置随机数种子()

self.方块图片 = 引擎:载入图片("Dat/方块.png")


--   创建音效

self.变化音效=D2D_音效.创建("Dat/变换.ogg")
self.落地音效=D2D_音效.创建("Dat/方块落地.mp3")
self.收格子音效=D2D_音效.创建("Dat/收格子.wav")

self.方块显示精灵= D2D_精灵.创建(self.方块图片,0,0,宽,高)


self.当前精灵类型 = 引擎:取随机整数(1,6)
self.下一步精灵类型 = 引擎:取随机整数(1,6)




self.方块精灵1= D2D_精灵.创建(self.方块图片,0,0,宽,高)                 
self.方块精灵2= D2D_精灵.创建(self.方块图片,0,0,宽,高)
self.方块精灵3= D2D_精灵.创建(self.方块图片,0,0,宽,高)
self.方块精灵4= D2D_精灵.创建(self.方块图片,0,0,宽,高)




self.下一步方块精灵1= D2D_精灵.创建(self.方块图片,0,0,宽,高)      -- 下一步方框范围 404,166,138,112
self.下一步方块精灵2= D2D_精灵.创建(self.方块图片,0,0,宽,高)
self.下一步方块精灵3= D2D_精灵.创建(self.方块图片,0,0,宽,高)
self.下一步方块精灵4= D2D_精灵.创建(self.方块图片,0,0,宽,高) 



self.方块信息1={x=0,y=0}     --当前步方框的方块信息
self.方块信息2={x=0,y=0}
self.方块信息3={x=0,y=0}
self.方块信息4={x=0,y=0}


self.方块信息5={x=0,y=0}     --下一步方框中的方块信息
self.方块信息6={x=0,y=0}
self.方块信息7={x=0,y=0}
self.方块信息8={x=0,y=0}


self.快速下落 = false 

--下边定义数组，循环变量定义为局部变量，减少资源占用

self.方框格子值={}
self.方格子属性= {}

local n,m
for n=1,行数+2 do
       self.方框格子值[n] ={}
	 self.方格子属性[n]={}
	 
	 for m=1,列数+1 do
	 
	     if(n>(行数+1)) then
	        self.方框格子值[n][m]=1
	     else
	        self.方框格子值[n][m]=0  
           end
	     
	     self.方格子属性[n][m] = {颜色值 = 颜色_白,消失计次 = 0,已经消失 =false}
	     
	end
	
	
	self.方框格子值[n][列数+2]=1
	self.方框格子值[n][1]=1
	
end






--  一些初始要给的值定义在这里

self.间隔=0
self.下跳间隔=0

self.出现位置={x=出现位置x,y=出现位置y}

self.当前位置={x=self.出现位置.x,y=self.出现位置.y}

self.下一步位置={x=300,y=0,w=138,h=112}

self.计时器=1.2

self.计时变量 = 0

self.当前步=引擎:取随机整数(1,19)

self.下一步=引擎:取随机整数(1,19)



self.步长=格子


self.行数=行数

self.列数=列数

self.中间位置=取整( self.列数/2)

end





--=============================================================================--
-- ■ 更新
--=============================================================================--
function 倾城俄罗斯:更新()

  self.计时变量 = self.计时变量 + dt
  
  
  
    if(self.计时变量 > self.计时器) then        --   控制每个关卡下落的速度
           
	     if(self.方框格子值[(self.方块信息1.y-self.出现位置.y)/self.步长+2][(self.方块信息1.x-self.出现位置.x)/self.步长+2]==0 and
	          self.方框格子值[(self.方块信息2.y-self.出现位置.y)/self.步长+2][(self.方块信息2.x-self.出现位置.x)/self.步长+2]==0 and
	          self.方框格子值[(self.方块信息3.y-self.出现位置.y)/self.步长+2][(self.方块信息3.x-self.出现位置.x)/self.步长+2]==0 and  
		    self.方框格子值[(self.方块信息4.y-self.出现位置.y)/self.步长+2][(self.方块信息4.x-self.出现位置.x)/self.步长+2]==0) then
		    
		    self.当前位置.y=self.当前位置.y+self.步长

		else
               self.方框格子值[(self.方块信息1.y-self.出现位置.y)/self.步长+1][(self.方块信息1.x-self.出现位置.x)/self.步长+2]=1
		   self.方框格子值[(self.方块信息2.y-self.出现位置.y)/self.步长+1][(self.方块信息2.x-self.出现位置.x)/self.步长+2]=1
		   self.方框格子值[(self.方块信息3.y-self.出现位置.y)/self.步长+1][(self.方块信息3.x-self.出现位置.x)/self.步长+2]=1
		   self.方框格子值[(self.方块信息4.y-self.出现位置.y)/self.步长+1][(self.方块信息4.x-self.出现位置.x)/self.步长+2]=1
		        
			  if((self.方块信息1.y-self.出现位置.y)/self.步长+1==1 or 
			        (self.方块信息2.y-self.出现位置.y)/self.步长+1==1 or
				  (self.方块信息3.y-self.出现位置.y)/self.步长+1==1 or 
				  (self.方块信息4.y-self.出现位置.y)/self.步长+1==1) then
			          游戏状态="游戏结束"
			  end	   
		   
		   self.落地音效:播放()
		   self.当前位置={x=self.出现位置.x,y=self.出现位置.y}
	         self.当前步=self.下一步
	         self.下一步=引擎:取随机整数(1,19)
		   
		   
		end
		self.计时变量 = 0
     end
     
    if(self.当前步==1) then                      -- 控制self.当前步方块的形状
        self.方块信息1={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长}
	  self.方块信息3={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长*2}
	  self.方块信息4={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长*3}
    elseif(self.当前步==2) then
        self.方块信息1={x=self.当前位置.x+self.步长*(self.中间位置-2),y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y}
	  self.方块信息3={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y}
	  self.方块信息4={x=self.当前位置.x+self.步长*(self.中间位置+1),y=self.当前位置.y}
    elseif(self.当前步==3) then
        self.方块信息1={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y+self.步长}
	  self.方块信息3={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y+self.步长*2}
	  self.方块信息4={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长*2}
    elseif(self.当前步==4) then
        self.方块信息1={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y}
	  self.方块信息3={x=self.当前位置.x+self.步长*(self.中间位置+1),y=self.当前位置.y}
	  self.方块信息4={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y+self.步长}
    elseif(self.当前步==5) then
        self.方块信息1={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y}
	  self.方块信息3={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长}
	  self.方块信息4={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长*2}
    elseif(self.当前步==6) then
        self.方块信息1={x=self.当前位置.x+self.步长*(self.中间位置+1),y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*(self.中间位置+1),y=self.当前位置.y+self.步长}
	  self.方块信息3={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长}
	  self.方块信息4={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y+self.步长}
    elseif(self.当前步==7) then
        self.方块信息1={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长}
	  self.方块信息3={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长*2}
	  self.方块信息4={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y+self.步长*2}
    elseif(self.当前步==8) then
        self.方块信息1={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y+self.步长}
	  self.方块信息3={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长}
	  self.方块信息4={x=self.当前位置.x+self.步长*(self.中间位置+1),y=self.当前位置.y+self.步长}
    elseif(self.当前步==9) then
        self.方块信息1={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y}
	  self.方块信息3={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y+self.步长}
	  self.方块信息4={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y+self.步长*2}
    elseif(self.当前步==10) then
        self.方块信息1={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y}
	  self.方块信息3={x=self.当前位置.x+self.步长*(self.中间位置+1),y=self.当前位置.y}
	  self.方块信息4={x=self.当前位置.x+self.步长*(self.中间位置+1),y=self.当前位置.y+self.步长}
    elseif(self.当前步==11) then
        self.方块信息1={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y}
	  self.方块信息3={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y+self.步长}
	  self.方块信息4={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长}
    elseif(self.当前步==12) then
        self.方块信息1={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y+self.步长}
	  self.方块信息3={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长}
	  self.方块信息4={x=self.当前位置.x+self.步长*(self.中间位置+1),y=self.当前位置.y+self.步长}
    elseif(self.当前步==13) then
        self.方块信息1={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长*2}
	  self.方块信息3={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长}
	  self.方块信息4={x=self.当前位置.x+self.步长*(self.中间位置+1),y=self.当前位置.y+self.步长}
    elseif(self.当前步==14) then
        self.方块信息1={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y+self.步长}
	  self.方块信息2={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长*2}
	  self.方块信息3={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长}
	  self.方块信息4={x=self.当前位置.x+self.步长*(self.中间位置+1),y=self.当前位置.y+self.步长}
    elseif(self.当前步==15) then
        self.方块信息1={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y+self.步长}
	  self.方块信息2={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长*2}
	  self.方块信息3={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长}
	  self.方块信息4={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y}
    elseif(self.当前步==16) then
        self.方块信息1={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y+self.步长}
	  self.方块信息3={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长}
	  self.方块信息4={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长*2}
    elseif(self.当前步==17) then
        self.方块信息1={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*(self.中间位置+1),y=self.当前位置.y}
	  self.方块信息3={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y+self.步长}
	  self.方块信息4={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长}
    elseif(self.当前步==18) then
        self.方块信息1={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长}
	  self.方块信息3={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y+self.步长}
	  self.方块信息4={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y+self.步长*2}
    elseif(self.当前步==19) then
        self.方块信息1={x=self.当前位置.x+self.步长*(self.中间位置-1),y=self.当前位置.y}
	  self.方块信息2={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y}
	  self.方块信息3={x=self.当前位置.x+self.步长*self.中间位置,y=self.当前位置.y+self.步长}
	  self.方块信息4={x=self.当前位置.x+self.步长*(self.中间位置+1),y=self.当前位置.y+self.步长}
    end
    
    if(self.下一步==1) then                      -- 控制self.下一步方块的形状
        
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长*2}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2+self.步长} 
	  
    elseif(self.下一步==2) then
	  
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长*2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2+self.步长,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2} 
	  
    elseif(self.下一步==3) then
	  
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2-self.步长}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2+self.步长/2} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2+self.步长/2} 
	  
    elseif(self.下一步==4) then
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2*3,y=self.下一步位置.y+self.下一步位置.h/2-self.步长}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2+self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2*3,y=self.下一步位置.y+self.下一步位置.h/2} 
	  
    elseif(self.下一步==5) then
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2*3}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2*3}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2+self.步长/2} 
    elseif(self.下一步==6) then
	  
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2+self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2+self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2*3,y=self.下一步位置.y+self.下一步位置.h/2}
	  
    elseif(self.下一步==7) then
	  
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2*3}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2+self.步长/2} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2+self.步长/2}
	  
    elseif(self.下一步==8) then
	  
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2*3,y=self.下一步位置.y+self.下一步位置.h/2-self.步长}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2*3,y=self.下一步位置.y+self.下一步位置.h/2}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2+self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2}
	  
    elseif(self.下一步==9) then
	  
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2*3}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2*3}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2+self.步长/2}
	  
    elseif(self.下一步==10) then
	 
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2*3,y=self.下一步位置.y+self.下一步位置.h/2-self.步长}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2+self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2+self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2}
	  
    elseif(self.下一步==11) then
	  
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2-self.步长}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2}
	  
    elseif(self.下一步==12) then
	  
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2*3,y=self.下一步位置.y+self.下一步位置.h/2}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2+self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2}
	  
    elseif(self.下一步==13) then
	  
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2*3}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2+self.步长/2} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2}
	  
    elseif(self.下一步==14) then
	  
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2*3,y=self.下一步位置.y+self.下一步位置.h/2-self.步长}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2+self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2}
	  
    elseif(self.下一步==15) then
	  
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2*3}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2+self.步长/2}
	  
    elseif(self.下一步==16) then
	  
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2*3}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2+self.步长/2}
	  
    elseif(self.下一步==17) then
	  
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2+self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2*3,y=self.下一步位置.y+self.下一步位置.h/2} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2}
	  
    elseif(self.下一步==18) then
	  
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2-self.步长,y=self.下一步位置.y+self.下一步位置.h/2+self.步长/2}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2*3} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长/2}
	  
    elseif(self.下一步==19) then
	  
	  self.方块信息5={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2*3,y=self.下一步位置.y+self.下一步位置.h/2-self.步长}                                  -- self.下一步方框范围 404,166,138,112
	  self.方块信息6={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2-self.步长}  
	  self.方块信息7={x=self.下一步位置.x+self.下一步位置.w/2-self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2} 
	  self.方块信息8={x=self.下一步位置.x+self.下一步位置.w/2+self.步长/2,y=self.下一步位置.y+self.下一步位置.h/2}
	  
    end

 
    if(引擎:取按键事件(键_键盘左)) then       -- 控制方块的移动
          --检测碰撞  

	    if(self.方框格子值[(self.方块信息1.y-self.出现位置.y)/self.步长+1][(self.方块信息1.x-self.出现位置.x)/self.步长+1]==0 and
	          self.方框格子值[(self.方块信息2.y-self.出现位置.y)/self.步长+1][(self.方块信息2.x-self.出现位置.x)/self.步长+1]==0 and
	          self.方框格子值[(self.方块信息3.y-self.出现位置.y)/self.步长+1][(self.方块信息3.x-self.出现位置.x)/self.步长+1]==0 and  
		    self.方框格子值[(self.方块信息4.y-self.出现位置.y)/self.步长+1][(self.方块信息4.x-self.出现位置.x)/self.步长+1]==0) then
	           if(self.间隔~=0) then
	                self.间隔=self.间隔-1
	           else
	--    	          self.变化音效:播放()
		          self.当前位置.x=self.当前位置.x-self.步长
		          self.间隔=4
	           end
		     
	    end
	     
    elseif(引擎:取按键事件(键_键盘右)) then
    
	    if(self.方框格子值[(self.方块信息1.y-self.出现位置.y)/self.步长+1][(self.方块信息1.x-self.出现位置.x)/self.步长+3]==0 and
	          self.方框格子值[(self.方块信息2.y-self.出现位置.y)/self.步长+1][(self.方块信息2.x-self.出现位置.x)/self.步长+3]==0 and
	          self.方框格子值[(self.方块信息3.y-self.出现位置.y)/self.步长+1][(self.方块信息3.x-self.出现位置.x)/self.步长+3]==0 and  
		    self.方框格子值[(self.方块信息4.y-self.出现位置.y)/self.步长+1][(self.方块信息4.x-self.出现位置.x)/self.步长+3]==0) then
                  if(self.间隔~=0) then
	                  self.间隔=self.间隔-1
	            else
	--    	            self.变化音效:播放()
		            self.当前位置.x=self.当前位置.x+self.步长
		            self.间隔=4
	            end
	 
	    end
	    
	    
     elseif(引擎:取按键按下(键_键盘上) ) then
          self.变化音效:播放()
	    
	    if(self.当前步==1) then                                                          --  按键盘上键的时候的变化
	         if(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*3-self.出现位置.x)/self.步长+2]==0  and 
		         self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0  and
			   self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0 )then
		                 self.当前步=2
		   elseif(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*3-self.出现位置.x)/self.步长+2]==1  and
		                 self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0  and
				     self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0  and
				     self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*7-self.出现位置.x)/self.步长+2]==0) then 
			           self.当前位置.x=self.当前位置.x+self.步长
				     self.当前步=2 
		   elseif(self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==1 and 
		                 self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*7-self.出现位置.x)/self.步长+2]==0 and 
				     self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*8-self.出现位置.x)/self.步长+2]==0) then
				     self.当前位置.x=self.当前位置.x+self.步长*2
				     self.当前步=2
				     
		   elseif(self.方框格子值[(self.当前位置.y+self.步长*3-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==1 and
				     self.方框格子值[(self.当前位置.y+self.步长*3-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y+self.步长*3-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*3-self.出现位置.x)/self.步长+2]==0 and
		                 self.方框格子值[(self.当前位置.y+self.步长*3-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*2-self.出现位置.x)/self.步长+2]==0 ) then
		                 self.当前位置.x=self.当前位置.x-self.步长
				     self.当前步=2
		   end
		   
	    elseif(self.当前步==2) then
	        if(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*3-self.出现位置.x)/self.步长+2]==0 and
		  
	              self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0 and
	              self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0 and  
		        self.方框格子值[(self.当前位置.y+self.步长*3-self.出现位置.y)/self.步长+2][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0) then
		        self.当前步=1
		  end
		  
	    elseif(self.当前步==3) then
	         
		   if(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0 and
		         self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0) then
				 self.当前步=4
		   elseif(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==1 and 
		                 self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*3-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*2-self.出现位置.x)/self.步长+2]==0) then
		                   self.当前位置.x=self.当前位置.x-self.步长*2
				       self.当前步=4
		   elseif(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==1 and 
		                 self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*3-self.出现位置.x)/self.步长+2]==0 ) then
				     	 self.当前位置.x=self.当前位置.x-self.步长
				       self.当前步=4
		   end
		   
	    elseif(self.当前步==4) then
	         if( self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0 and
		          self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0) then
		          self.当前步=5
		   end
		   
	    elseif(self.当前步==5) then
	        if( self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0 and
		         self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0) then
			     self.当前步=6
		  elseif(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==1 or
		                self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==1) then
		                self.当前位置.x=self.当前位置.x-self.步长
				    self.当前步=6
		  end
		  
	    elseif(self.当前步==6) then
	        if(self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0 and
		        self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0)then
		           self.当前步=3
		  end
	    elseif(self.当前步==7) then
	         if(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0 and
		         self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0 and
			   self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0)then
		         self.当前步=8
		   elseif(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==1 and
		                 self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0) then
				     self.当前位置.y=self.当前位置.y+self.步长
				     self.当前步=8
		   elseif(self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==1 and
			           self.方框格子值[(self.当前位置.y+self.步长*3-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y+self.步长*3-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y+self.步长*3-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0)then
				     self.当前位置.y=self.当前位置.y+self.步长*2
				     self.当前步=8
		   elseif(self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==1 and
		                 self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*3-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*3-self.出现位置.x)/self.步长+2]==0 )then
				     self.当前位置.x=self.当前位置.x-self.步长
				     self.当前步=8
		   end
	    elseif(self.当前步==8) then
	         if(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0 and 
		         self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0 )then
		              self.当前步=9
		   elseif(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==1 and 
		                 self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*3-self.出现位置.x)/self.步长+2]==0) then
		              self.当前位置.x=self.当前位置.x-self.步长
				  self.当前步=9
		   end
		   
	    elseif(self.当前步==9) then
	         if(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0  and 
		         self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0)then
		           self.当前步=10
		   elseif((self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==1 or self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==1 )and
		                 self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*3-self.出现位置.x)/self.步长+2]==0)then
				      self.当前位置.x=self.当前位置.x-self.步长
					self.当前步=10
		   end
		   
		   
	    elseif(self.当前步==10) then
	         if(self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0 and
		         self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0  and
			   self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0 )then
			   self.当前步=7
		   elseif(self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==1 and
		                 self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0 )then
				     self.当前位置.x=self.当前位置.x+self.步长
				     self.当前步=7
		   elseif(self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==1 and
		                 self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*7-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*7-self.出现位置.x)/self.步长+2]==0) then
				     self.当前位置.x=self.当前位置.x+self.步长*2
				     self.当前步=7
		   elseif(self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==1 and
		                 self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0)then
				     self.当前位置.x=self.当前位置.x+self.步长
				     self.当前步=7
		   end
		   
		   
	    elseif(self.当前步==11) then
	         self.当前步=11
		   
		   
	    elseif(self.当前步==12) then
	         if(self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0 ) then
		                 self.当前步=13
		   end
		   
		   
	    elseif(self.当前步==13) then
	         if(self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0)then
		        self.当前步=14
		   elseif(self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==1 and
		                 self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*7-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0 ) then
				     self.当前位置.x=self.当前位置.x+self.步长
				     self.当前步=14
		   end
		  
		  
	    elseif(self.当前步==14) then
	         
		   if(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0)then
		         self.当前步=15
		   elseif(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==1 and 
		                 self.方框格子值[(self.当前位置.y+self.步长*3-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0 )then
			   self.当前位置.y=self.当前位置.y+self.步长
			   self.当前步=15
		   end
		   
		   
	    elseif(self.当前步==15) then
	         
		   if(self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0) then
		          self.当前步=12
		   elseif(self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==1 and 
		                 self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*3-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0) then
		                 self.当前位置.x=self.当前位置.x-self.步长
				     self.当前步=12
		   end
		   
		   
	    elseif(self.当前步==16) then
	         if(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0 and
		         self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0)then
		         self.当前步=17
		   elseif(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==1 and 
		                 self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*3-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*2-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*3-self.出现位置.x)/self.步长+2]==0)then
				     self.当前位置.x=self.当前位置.x-self.步长*2
				     self.当前步=17
		   elseif(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==1 and
		                 self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*3-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0) then
				     self.当前位置.x=self.当前位置.x-self.步长
				     self.当前步=17
		   end
		   
	    elseif(self.当前步==17) then
	        
		  if(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0 and 
		        self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0)then
		        self.当前步=16
		  elseif(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==1 and
		                self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0 and
				    self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0 and
				    self.方框格子值[(self.当前位置.y+self.步长*3-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*5-self.出现位置.x)/self.步长+2]==0) then
				    self.当前位置.y=self.当前位置.y+self.步长
				    self.当前步=16
		  end 
		   
	    elseif(self.当前步==18) then
	         if(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0 and 
		         self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0)then
		              self.当前步=19
		   elseif(self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==1 and 
		                 self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0 and 
				     self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==0 and
				     self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*7-self.出现位置.x)/self.步长+2]==0)then
				     self.当前位置.x=self.当前位置.x+self.步长
				     self.当前步=19
		   elseif(self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*6-self.出现位置.x)/self.步长+2]==1 and 
		                 self.方框格子值[(self.当前位置.y-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*3-self.出现位置.x)/self.步长+2]==0 )then
				     self.当前位置.x=self.当前位置.x-self.步长
				     self.当前步=19
				     
		   end
	    elseif(self.当前步==19) then
	         if(self.方框格子值[(self.当前位置.y+self.步长-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0 and 
		         self.方框格子值[(self.当前位置.y+self.步长*2-self.出现位置.y)/self.步长+1][(self.当前位置.x+self.步长*4-self.出现位置.x)/self.步长+2]==0)then
		         self.当前步=18
		   end
	    end
	    
    
    elseif(引擎:取按键事件(键_键盘下)) then              --  控制键盘下键的时候的变化
    
	    self.计时变量 = 0
	    if(self.方框格子值[(self.方块信息1.y-self.出现位置.y)/self.步长+2][(self.方块信息1.x-self.出现位置.x)/self.步长+2]==0 and
	          self.方框格子值[(self.方块信息2.y-self.出现位置.y)/self.步长+2][(self.方块信息2.x-self.出现位置.x)/self.步长+2]==0 and
	          self.方框格子值[(self.方块信息3.y-self.出现位置.y)/self.步长+2][(self.方块信息3.x-self.出现位置.x)/self.步长+2]==0 and  
		    self.方框格子值[(self.方块信息4.y-self.出现位置.y)/self.步长+2][(self.方块信息4.x-self.出现位置.x)/self.步长+2]==0) then
		    
		    
		    if(self.间隔~=0) then
		        self.间隔=self.间隔-1

		    else
		       -- self.变化音效:播放()
		        self.当前位置.y=self.当前位置.y+self.步长
		        self.间隔=2

		    end
		    
	   else
               self.方框格子值[(self.方块信息1.y-self.出现位置.y)/self.步长+1][(self.方块信息1.x-self.出现位置.x)/self.步长+2]=1
		   self.方框格子值[(self.方块信息2.y-self.出现位置.y)/self.步长+1][(self.方块信息2.x-self.出现位置.x)/self.步长+2]=1
		   self.方框格子值[(self.方块信息3.y-self.出现位置.y)/self.步长+1][(self.方块信息3.x-self.出现位置.x)/self.步长+2]=1
		   self.方框格子值[(self.方块信息4.y-self.出现位置.y)/self.步长+1][(self.方块信息4.x-self.出现位置.x)/self.步长+2]=1
			  if((self.方块信息1.y-self.出现位置.y)/self.步长+1==1 or 
			        (self.方块信息2.y-self.出现位置.y)/self.步长+1==1 or
				  (self.方块信息3.y-self.出现位置.y)/self.步长+1==1 or 
				  (self.方块信息4.y-self.出现位置.y)/self.步长+1==1) then
			          游戏状态="游戏结束"
			  end	  
		   
		   self.落地音效:播放()
		   self.当前位置={x=self.出现位置.x,y=self.出现位置.y}
	         self.当前步=self.下一步
	         self.下一步=引擎:取随机整数(1,19)
	    end
    end
    

    if(引擎:取按键按下(键_空格)) then              --  
		self.快速下落 = true 
    end 
    
    if (self.快速下落) then 
    
	    self.计时变量 = 0
	       if(self.方框格子值[(self.方块信息1.y-self.出现位置.y)/self.步长+2][(self.方块信息1.x-self.出现位置.x)/self.步长+2]==0 and
	          self.方框格子值[(self.方块信息2.y-self.出现位置.y)/self.步长+2][(self.方块信息2.x-self.出现位置.x)/self.步长+2]==0 and
	          self.方框格子值[(self.方块信息3.y-self.出现位置.y)/self.步长+2][(self.方块信息3.x-self.出现位置.x)/self.步长+2]==0 and  
		    self.方框格子值[(self.方块信息4.y-self.出现位置.y)/self.步长+2][(self.方块信息4.x-self.出现位置.x)/self.步长+2]==0) then
		    
		    self.当前位置.y=self.当前位置.y+self.步长
		    
		else 
               self.方框格子值[(self.方块信息1.y-self.出现位置.y)/self.步长+1][(self.方块信息1.x-self.出现位置.x)/self.步长+2]=1
		   self.方框格子值[(self.方块信息2.y-self.出现位置.y)/self.步长+1][(self.方块信息2.x-self.出现位置.x)/self.步长+2]=1
		   self.方框格子值[(self.方块信息3.y-self.出现位置.y)/self.步长+1][(self.方块信息3.x-self.出现位置.x)/self.步长+2]=1
		   self.方框格子值[(self.方块信息4.y-self.出现位置.y)/self.步长+1][(self.方块信息4.x-self.出现位置.x)/self.步长+2]=1
		   self.落地音效:播放()
		   self.当前位置={x=self.出现位置.x,y=self.出现位置.y}
	         self.当前步=self.下一步
	         self.下一步=引擎:取随机整数(1,19)
		   self.快速下落 = false 
			
		  local 	方块落地粒子 = D2D_粒子.创建("Dat/fireworksmoke.psi",粒子精灵)
		  	方块落地粒子:启动到(
						((self.方块信息4.x-self.出现位置.x)/self.步长+2 ) * 20,
						((self.方块信息4.y-self.出现位置.y)/self.步长+2 ) * 20
						
						)
						
						

		  table.insert(屏幕粒子组,方块落地粒子)
 
			
			
			
			
		
		end 
	   
	   
	   
	   
    end 
    
    
  
	self:格子消失逻辑()



end




--=============================================================================--
-- ■ 格子消失逻辑
--=============================================================================--
function 倾城俄罗斯:格子消失逻辑()
  
    local i,j,k,l,p
    
    
    for i=2,self.行数+1 do                                                                        --收掉每行满的格子,并且每排格子下放
    
	     self.格子数=self.列数
	     self.可销毁数 = self.列数
	     for j=2,self.列数+1 do
	     
	     
		     if(self.方框格子值[i][j]==1) then
				
				if (self.方格子属性[i][j].已经消失) then 
					self.格子数=self.格子数-1
				else 
					self.可销毁数 = self.可销毁数 - 1
				end 
			
		          
			end
			    
			 
			 
			if (self.可销毁数==0) then 

				   for k=2,self.列数+1 do
				     self.方框格子值[i][k]=3 -- 准备消失
				   end
				   
			end 
			    
			    
                  if(self.格子数==0) then
			
			         self.收格子音效:播放()

				   for k=2,self.列数+1 do
				     self.方框格子值[i][k]=0 -- 准备消失
				    self.方格子属性[i][k].已经消失 = false 
				   end
				   
				   --  收格子=收格子+1      如果要加分数，这里加变量判断收掉的数量来判断
				   
				   self.临时变量=i
				   

						   
			         for l=2,i do
				        for p=2,self.列数+1 do
					     self.方框格子值[self.临时变量][p]=self.方框格子值[self.临时变量-1][p]
					     --self.方格子属性[self.临时变量][p]=self.方格子属性[self.临时变量-1][p]
					     
					  end
					    self.临时变量=self.临时变量-1
				   end
				 
			end
			
			
	     end
      end


end 





--=============================================================================--
-- ■ 显示
--=============================================================================--
function 倾城俄罗斯:显示()

	
      self.下一步方块精灵1:显示(self.方块信息5.x,self.方块信息5.y)
	self.下一步方块精灵2:显示(self.方块信息6.x,self.方块信息6.y)
	self.下一步方块精灵3:显示(self.方块信息7.x,self.方块信息7.y)
	self.下一步方块精灵4:显示(self.方块信息8.x,self.方块信息8.y)




	self.方块精灵1:显示(self.方块信息1.x,self.方块信息1.y)
	self.方块精灵2:显示(self.方块信息2.x,self.方块信息2.y)
	self.方块精灵3:显示(self.方块信息3.x,self.方块信息3.y)
	self.方块精灵4:显示(self.方块信息4.x,self.方块信息4.y)



	for i=1,self.行数+1 do
	     for j=2,self.列数+1 do
	     
		     if(self.方框格子值[i][j] ~= 0) then
		     
				if ( self.方框格子值[i][j] == 3 ) then 
					self.方格子属性[i][j].消失计次 = self.方格子属性[i][j].消失计次 + dt 
					self.方格子属性[i][j].颜色值  = ARGB(引擎:取随机整数(1,255),引擎:取随机整数(1,255),引擎:取随机整数(1,255),引擎:取随机整数(1,255))
					
					
					if ( self.方格子属性[i][j].消失计次 >= 0.2) then 
						self.方框格子值[i][j] = 1
						self.方格子属性[i][j].已经消失 =true 
						self.方格子属性[i][j].颜色值 = 颜色_白
						self.方格子属性[i][j].消失计次 = 0
					end 
				end 
		     
		     
		     
				self.方块显示精灵:置颜色(self.方格子属性[i][j].颜色值 )
				self.方块显示精灵:显示(self.出现位置.x+(j-2)*self.步长,self.出现位置.y+((i-1)*self.步长))

			end
			
			
			
	     end
      end
	
	


	





  --显示数组的值，测试用，使用时注释掉下面的循环
  
  
	if (Q_调试) then
	
	  for i=1,self.行数+2 do
	    for j=1,self.列数+2 do
		 if(self.方框格子值[i][j]==1) then
				 Q_文字:显示(self.出现位置.x+(j-2)*self.步长,self.出现位置.y+((i-1)*self.步长),"1")
			    else
				  Q_文字:显示(self.出现位置.x+(j-2)*self.步长,self.出现位置.y+((i-1)*self.步长),"0")
		    end
		     end
		end
	end
	
end


function 倾城俄罗斯:重新开始(行数,列数)

--下边定义数组，循环变量定义为局部变量，减少资源占用

self.方框格子值={}
local n,m
for n=1,行数+2 do
       self.方框格子值[n] ={}
	 for m=1,列数+1 do
	     if(n>(行数+1)) then
	        self.方框格子值[n][m]=1
	     else
	        self.方框格子值[n][m]=0  
           end
	end
	self.方框格子值[n][12]=1
	self.方框格子值[n][1]=1
end


--  一些初始要给的值定义在这里

self.间隔=0
self.下跳间隔=0
self.当前位置={x=self.出现位置.x,y=self.出现位置.y}
self.下一步位置={x=404,y=166,w=138,h=112}
--self.计时器=93



self.当前步=引擎:取随机整数(1,19)
self.下一步=引擎:取随机整数(1,19)
end




function 倾城俄罗斯:置下一步位置(x,y)

self.下一步位置.x=x
self.下一步位置.y=y

end
