64,676
社区成员
发帖
与我相关
我的任务
分享
void env::releaseField()
{
delete [] _frameBuf;
_frameBuf = 0;
if (_field)
{
for (int i=0; i<_dimX; ++i)
delete [] _field[i];
delete [] _field;
_field = 0;
}
}
void env::initField()
{
releaseField();//如果把这句话删掉,就不会出现错位了,这回为什么呢?
releaseFishes();
_dimX = _simWidth;
_dimY = _simHeight;
_frameBuf = new GLubyte[3 * _dimX * _dimY];
ZeroMemory(_frameBuf, _dimX * _dimY * 3);
_field = new int*[_dimX]; ///首先定义多少列column
for( int c = 0; c<_dimX; c++){
_field[c] = new int[_dimY]; ///在定义多少行
for( int r =0; r<_dimY; r++){
_field[c][r]=tpSEA;
}
}
}
void env::killScene()
{
releaseFishes();
releaseField();
}
env::~env()
{
killScene();
}
void env::releaseField()
{
if ( _frameBuf ){
delete [] _frameBuf;
_frameBuf = 0;
}
//确保 _field 的下标 要小于 _dimX 值。
for (int i=0; i<_dimX; ++i)
if ( _field[i] ) delete [] _field[i] , _field[i] = NULL ;
if ( _field ) delete []_field , _field = NULL ;
}
void env::releaseField()
{
if ( _frameBuf ){
delete [] _frameBuf;
_frameBuf = 0;
}
delete [](int *) _field ;
_field = NULL; ...
}
void env::releaseField()
{
if ( _frameBuf ){
delete [] _frameBuf;
_frameBuf = 0;
}
//确保 _field 的下标 要小于 _dimX 值。
for (int i=0; i<_dimX; ++i)
if ( _field[i] ) delete [] _field[i] , _field[i] = NULL ;
if ( _field ) delete []_field , _field = NULL ;
}
void env::initField()
{
releaseField();//如果把这句话删掉,就不会出现错位了,这回为什么呢?
releaseFishes();
_dimX = _simWidth;
_dimY = _simHeight;
_frameBuf = new GLubyte[3 * _dimX * _dimY];
ZeroMemory(_frameBuf, _dimX * _dimY * 3);
_field = new int*[_dimX]; ///首先定义多少列column ? 应该确保多少行把 ?
for( int c = 0; c<_dimX; c++){
_field[c] = new int[_dimY]; ///在定义多少行 ? 应该定义多少列 把 ?
for( int r =0; r<_dimY; r++){
_field[c][r]=tpSEA;
}
}
}