?? drawassist.cpp
字號:
// DrawAssist.cpp: implementation of the DrawAssist class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "aa.h"
#include "DrawAssist.h"
#include "Block.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
DrawAssist::DrawAssist()
{
height=15;
for(int i=0;i<10;i++)
for(int j=0;j<20;j++)
blocks[i][j]=false;
}
DrawAssist::~DrawAssist()
{
}
void DrawAssist::DrawButton(int x, int y)
{
CBitmap* pBitmap = new CBitmap;
BITMAP BmpInfo;
CBitmap* pOldBitmap;
pBitmap->LoadBitmap(IDB_BITMAP2);
pOldBitmap=(CBitmap*)pDisplayMemDC->SelectObject(pBitmap);
pBitmap->GetBitmap(&BmpInfo);
// x,y為繪圖位置 ,必要時此語句要有For(..;..;..)控制
pDC->BitBlt(x*height,y*height, BmpInfo.bmWidth, BmpInfo.bmHeight, pDisplayMemDC, 0, 0, SRCCOPY);
pDisplayMemDC->SelectObject(pOldBitmap);
pBitmap->DeleteObject();
delete pBitmap;
}
void DrawAssist::DrawChessBox()//設置背景方格
{
for(int i=0;i<10;i++)
for(int j=0;j<20;j++)
{
if(blocks[i][j])
DrawButton(i,j);
}
}
void DrawAssist::DrawBlock(Block &block)//畫方格
{
CPoint* p = block.GetMembers();
for(int i=0;i<4;i++)
DrawButton(p[i].x,p[i].y);
}
void DrawAssist::SetDC(CDC *pDC, CDC *pDisplayMemDC)
{
this->pDC = pDC;
this->pDisplayMemDC = pDisplayMemDC;
}
BOOL DrawAssist::CanMoveDown(Block& block)//下移條件
{
CPoint* p = block.GetMembers();
for(int i=0;i<4;i++)
{
if(p[i].y>=19)return false;
if(blocks[p[i].x][p[i].y+1])
return false;
}
return true;
}
BOOL DrawAssist::CanMoveLeft(Block &block)//左移條件
{
CPoint* p = block.GetMembers();
for(int i=0;i<4;i++)
{
if(p[i].x<=0)return false;
if((blocks[p[i].x-1][p[i].y]))
return false;
}
return true;
}
BOOL DrawAssist::CanMoveRight(Block &block)//右移條件
{
CPoint* p = block.GetMembers();
for(int i=0;i<4;i++)
{
if(p[i].x>=9)return false;
if((blocks[p[i].x+1][p[i].y]))
return false;
}
return true;
}
void DrawAssist::AddBlock(Block &block)//填加方格
{
CPoint* p = block.GetMembers();
for(int i=0;i<4;i++)
{
blocks[p[i].x][p[i].y]=true;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -