赫拉小样是什么:求助vc代码解释

来源:百度文库 编辑:高考问答 时间:2024/04/30 15:53:44
void Snake::DrawSnake(CDC* Pdc,int left, int top, int size)
{
int x,y;
int index;
CBrush br,*oldbr,colorbr;
br.CreateSolidBrush(RGB(0,0,0));
oldbr=pDC->SelectObject($br);
for (int i=0;i< length;i++)
{
index=(header+nMax-i)%nMax;
x=body[index].x;
y=body[index].y;
pDc->Ellipse(left+x*size-size,top+y*size-size,left+x*size,top+y*size);
}
if (generator) {
colorbr.CreatesolidBrush(RGB(rand()%255,rand()%255.rand()%255));
pDC->SelectObject(&colorbr);
pDC->Ellipse(left+randomX*size-size,top+randomY*size-size,
left+randomX*size,top+randomY*size);

你这里有些变量,如nMax,header什么的都是在别处声明的,我也不知道是干什么的。但我猜你要做贪吃蛇程序,我只能给这几句做些解释。
CBrush br,*oldbr,colorbr;
//蛇不可能只是一条线或一个空心的框,所以要画实心的矩形或椭圆什么的
//因此要用CBrush(画刷)

br.CreateSolidBrush(RGB(0,0,0));
//这句是创建一个黑色的实心画刷

oldbr=pDC->SelectObject($br);
//这句是将黑色实心画刷装载进设备描述表,同时返回设备描述表中原有的
//画刷,并保存,以用于以后恢复原有画刷。