level 9
{$APPTYPE GUI}
{$MODE DELPHI}
program WinPiece;
uses
Windows;
const
AppName = 'WinPiece';
pm = 25;
var
dc : hdc;
AMessage : Msg;
hWindow: HWnd;
hPen ,hBrush : longword;
intNextPiece, intCurPiece,intTempPiece : longint;
BigMap : array [0..11,-4..20] of boolean;
NextPiece,CurPiece,TempPiece : array [0..3,0..3] of boolean;
isGameing : boolean;
Piece : array [0..18] of longint;
scoreString, levelString: string;
xPos, yPos : integer;
score,level : longint; //分数,关卡
speed : integer;
procedure TimerProc(Window:HWND;uMsg:UINT;idEvent:UINT;Time:DWORD);stdcall;
FORWARD;
Procedure IntToNextPiece ( );
var
i,j : integer;
t: longint;
begin
t:=intNextPiece;
For i:=0 TO 3 DO
For j:=0 TO 3 DO
begin
If (t mod 2=1) Then
NextPiece[j][i] := true
else
NextPiece[j][i] := false ;
t := t div 2;
end;
end;
Procedure IntToCurPiece ( );
var
i,j : integer;
t : longint;
begin
t:=intCurPiece;
For i:=0 TO 3 DO
For j:=0 TO 3 DO
begin
If (t mod 2=1) Then
CurPiece[j][i] := true
else
CurPiece[j][i] := false ;
t := t div 2;
end;
end;
Procedure IntToTempPiece ( );
var
i,j : integer;
t : longint;
begin
t:=intTempPiece;
For i:=0 TO 3 DO
For j:=0 TO 3 DO
begin
If (t mod 2=1) Then
TempPiece[j][i] := true
else
TempPiece[j][i] := false ;
t := t div 2;
end;
end;
Procedure DrawPiece(x,y:integer);
begin
SelectObject (dc,GetStockObject (NULL_PEN)) ; //选择空画笔
hBrush := CreateSolidBrush (RGB(255,0,128)); //创建粉色笔刷
SelectObject (dc,hBrush) ; //选择我们创建的粉色笔刷
Rectangle(dc,x,y,x+pm,y+pm); //画粉色矩形
DeleteObject(hBrush); //删除刚创建的粉色笔刷
SelectObject (dc,GetStockObject (WHITE_PEN)) ; //选择白色画笔
MoveToEx (dc, x+24,y, nil);
LineTo(dc,x,y);
LineTo(dc,x,y+24);
hPen:=CreatePen(PS_SOLID,1, RGB(100,100,100)); //创建灰色画笔
SelectObject (dc,hPen) ; //选择我们刚创建的灰色画笔
LineTo(dc,x+24,y+24);
LineTo(dc,x+24,y);
DeleteObject(hPen); //删除我们刚创建的灰色画笔
end;
//未完,待回贴,传送
2012年08月25日 15点08分
