gameform.cpp

来自「俄罗斯方块」· C++ 代码 · 共 76 行

CPP
76
字号
#include "GameForm.h"

GameForm::GameForm(Rect r, Rect g,COLORREF bColor, COLORREF fColor,int size):Form(r,bColor,fColor)
{
	regionGrid = g;
	unitSize = size;
}
void GameForm::draw()const
{
	initgraph(480,520);
	IMAGE pic;
	getimage(&pic,"pic\\background.jpg");
	putimage(0,0,&pic);
}

void GameForm::eraseGrid(void)const
{
}
void GameForm::drawGrid(const Grid &grid)const
{
	int x=0,y=0;
	IMAGE pic;
	getimage(&pic,"pic\\7.jpg");
	for (int i=0; i<LINES; i++)
	{
		for (int j=0; j<COLUMNS; j++)
		{
			if (grid.isOccupied(i,j))
			{				
				x = regionGrid.x+j*unitSize;
				y = regionGrid.y+i*unitSize;
				putimage(x,y,&pic);	
			}
		}
	}
}

void GameForm::drawBox(const Box &box) const
{
	int x;
	int y;
	char filename[20];
	Coord location;
	BoxCode box_code;
	IMAGE img;
	box_code = box.getCode();
	location = box.getLocation();
	sprintf(filename,"pic\\%d.jpg",box.getBoxNo());
	getimage(&img,filename);
	for (int i=0; i<COLUMNS; i++)
	{
		if (box_code.test(COLUMNS-1-i) == 1)
		{
			x = regionGrid.x+(location.x+i%4)*unitSize;
			y = regionGrid.y+(location.y+i/4)*unitSize;
			putimage(x,y,&img);
		}
	}

}
void GameForm::eraseBox(const Box &box) const
{
	Coord location = box.getLocation();
    BoxCode code = box.getCode();
	int x=0,y=0;
		for (int i=0;i<16;i++)
		{
			if(code.test(15-i))
			{  
			 x=regionGrid.x+(location.x+i%4)*unitSize;
			 y=regionGrid.y+(location.y+i/4)*unitSize;
			 setfillstyle(backColor);
			 bar(x,y,x+unitSize,y+unitSize);
			}
		}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?