Имею файл map.h
:
class map
{
public:
map(LPDIRECTDRAWSURFACE7 pBackBuffer,WORD size_x,WORD size_y,UINT ss);
void set_prop(LPDIRECTDRAWSURFACE7 pBackBuffer,WORD size_x,
WORD size_y,UINT sq_size);
void set_mapxy(int xx,int yy,char code);
void set_surface(LPDIRECTDRAWSURFACE7 pmapscreen);
void set_viewrect(RECT rect1);
void map::draw_map();
~map();
private:
void draw_mapfug(UINT sq_x,UINT sq_y);
LPDIRECTDRAWSURFACE7 pBack,pFug;
UINT map_x,map_y,c_x,c_y;
RECT rview;
char pMap[100][100];
UINT square;
UINT n_squares;
};
//-----------------------------------------------------------------------
void map::draw_map()
{
int x1=(int)(c_x/square);
int y1=(int)(c_y/square);
int x2=(int)((c_x+rview.right-rview.left)/square+1);
int y2=(int)((c_y+rview.bottom-rview.top)/square+1);
for(int yy=y1;yy<y2;yy++)
{
for(int xx=x1;xx<x2;xx++)
{
draw_mapfug(xx,yy);
}
}
}
void map::set_prop(LPDIRECTDRAWSURFACE7 pBackBuffer,WORD size_x,
WORD size_y,UINT sq_size)
{
pBack=pBackBuffer;
map_x=size_x;
map_y=size_y;
// pMap=new char[map_y][map_x];
rview.left=0;
rview.top=0;
rview.bottom=0;
rview.right=0;
c_x=0;
c_y=0;
square=sq_size;
int ex;
int ey;
for(ey=0;ey<map_y;ey++)
{
for(ex=0;ex<map_x;ex++)
{
pMap[ey][ex]=0;
}
}
}
//-----------------------------------------------------------------------
void map::draw_mapfug(UINT sqx,UINT sqy)
{
RECT rect1;
rect1.top=0;
rect1.left=0;
rect1.right=square;
rect1.bottom=square;
int real_x=sqx*square-c_x;
int real_y=sqy*square-c_y;
int b_x=square+real_x;
int b_y=square+real_y;
if(real_x<-square || real_y<-square)
{
return;
}
if(real_x<rview.left)
{
rect1.left-=real_x;
real_x=rview.left;
}
if(real_y<rview.top)
{
rect1.top-=real_y;
real_y=rview.top;
}
if(real_x>rview.right-square)
{
rect1.right=rview.right-real_x;
}
if(real_y>rview.bottom-square)
{
rect1.bottom=rview.bottom-real_y;
}
rect1.left+=pMap[sqy][sqx]*square;
rect1.right+=pMap[sqy][sqx]*square;
pBack->BltFast(real_x,real_y,pFug,&rect1,DDBLTFAST_WAIT);
}
//-----------------------------------------------------------------------
void map::set_viewrect(RECT rect1)
{
rview.left=rect1.left;
rview.top=rect1.top;
rview.right=rect1.right;
rview.bottom=rect1.bottom;
}
//-----------------------------------------------------------------------
map::~map()
{
// delete [] pMap;
}
//-----------------------------------------------------------------------
void map::set_surface(LPDIRECTDRAWSURFACE7 pmapscreen)
{
pFug=pmapscreen;
}
//-----------------------------------------------------------------------
map::map(LPDIRECTDRAWSURFACE7 pBackBuffer=NULL,WORD size_x=0,
WORD size_y=0,UINT sq_size=0)
{
set_prop(pBackBuffer,size_x,size_y,sq_size);
}
//-----------------------------------------------------------------------
void map::set_mapxy(int xx,int yy,char code)
{
if((xx>=0 && xx<map_x) && (yy>=0 && yy<=map_y))
{
pMap[yy][xx]=code;
}
}
Я этот файл включаю в DATA.H и далее реализую обьект
map my_map();
мне компилятор пишет:
error C2228: left of '.set_prop' must have class/struct/union type
c:\samples\helicopter\base.h(205) : error C2228: left of '.set_surface' must have class/struct/union type
c:\samples\helicopter\base.h(211) : error C2228: left of '.set_viewrect' must have class/struct/union type
c:\samples\helicopter\helic.cpp(23) : error C2228: left of '.draw_map' must have class/struct/union type
Error executing cl.exe.
Подскажите программеры что делать ?