CClientDC dc(this);dc.BitBlt(n*93+x,m*100+y,93,100,mdc,0,0,WHITENESS);if(nChar==VK_DOWN){y+=100;
k=(n*93+x)/93;
l=(m*100+y)/100;
if(maze[l][k]==1)
{
y-=100;
}
if(dir==0)
{
index++;
if(index==4)
{
index=0;
}
}
else
{
index=0;
dir=0;
}
ptr->next=(list*)malloc(sizeof(list));
ptr->next->n=n;
ptr->next->m=m;
ptr->next->x=x;
ptr->next->y=y;
ptr->next->bitmap=bitmap[dir][index];
preptr=ptr;
ptr->next->next=NULL;
ptr=ptr->next;
ptr->back=preptr;
}
if(nChar==VK_UP)
{
y-=100;
k=(n*93+x)/93;
l=(m*100+y)/100;
if(maze[l][k]==1)
{
y+=100;
}
if(dir==3)
{
index++;
if(index==4)
{
index=0;
}
}
else
{
index=0;
dir=3;
}
ptr->next=(list*)malloc(sizeof(list));
ptr->next->n=n;
ptr->next->m=m;
ptr->next->x=x;
ptr->next->y=y;
ptr->next->bitmap=bitmap[dir][index];
preptr=ptr;
ptr->next->next=NULL;
ptr=ptr->next;
ptr->back=preptr;
}
if(nChar==VK_RIGHT)
{
x+=93;
k=(n*93+x)/93;
l=(m*100+y)/100;
if(maze[l][k]==1)
{
x-=93;
}
if(dir==2)
{
index++;
if(index==4)
{
index=0;
}
}
else
{
index=0;
dir=2;
}
ptr->next=(list*)malloc(sizeof(list));
ptr->next->n=n;
ptr->next->m=m;
ptr->next->x=x;
ptr->next->y=y;
ptr->next->bitmap=bitmap[dir][index];
preptr=ptr;
ptr->next->next=NULL;
ptr=ptr->next;
ptr->back=preptr;
}
if(nChar==VK_LEFT)
{
x-=93;
k=(n*93+x)/93;
l=(m*100+y)/100;
if(maze[l][k]==1)
{
x+=93;
}
if(dir==1)
{
index++;
if(index==4)
{
index=0;
}
}
else
{
index=0;
dir=1;
}
ptr->next=(list*)malloc(sizeof(list));
ptr->next->n=n;
ptr->next->m=m;
ptr->next->x=x;
ptr->next->y=y;
ptr->next->bitmap=bitmap[dir][index];
preptr=ptr;
ptr->next->next=NULL;
ptr=ptr->next;
ptr->back=preptr;
}
k=(n*93+x)/93;
l=(m*100+y)/100;
if(maze[l][k]==3)
{
dc.TextOut(120,350,"走出去了!");
ptr->next=(list*)malloc(sizeof(list));
ptr->next->n=n;
ptr->next->m=m;
ptr->next->x=x;
ptr->next->y=y;
ptr->next->bitmap=bitmap[dir][index];
preptr=ptr;
ptr->next->next=NULL;
ptr=ptr->next;
ptr->back=preptr;
go=true;
return;
}
mdc->SelectObject(bitmap[dir][index]);
dc.BitBlt(n*93+x,m*100+y,93,100,mdc,0,0,SRCCOPY);