Ver Mensaje Individual
  #2  
Antiguo 01-11-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Snake.

No es sencillo hacer mejoras para una clase de la que no se conoce a fondo su funcionalidad, pero revisa estos pequeños cambios:
Código PHP:
#include <grids.hpp>

TColor ACTOR_Color;

class 
Actor {
  private:
    
int mapWidth_;
    
int mapHeight_;
    
int maxActors_;
    
TPoint pt_;
    
char   nDisplayChar_;
    
TColor nColorCode_;
    
TPoint getPosvoid );
    
void setPos( const TPointpt );
    
bool IsPassable( const TPointpt );
  public:
    
Actorvoid );
    
void SetAppearance( const char &nDisplayCharTColor nDisplayColor );
    
void DrawTStringGridgrd );
    
void Updatevoid );
    const 
int mapWidthvoid )  { return mapWidth_;  }
    const 
int mapHeightvoid ) { return mapHeight_; }
    const 
int maxActorsvoid ) { return maxActors_; }
    
__property TPoint Position = { read getPoswrite setPos };
};

/* ------------------------- PUBLIC ------------------------- */
Actor::Actorvoid )
{
  
mapWidth_     48;
  
mapHeight_    30;
  
maxActors_    20;
  
pt_           Point00);
  
nDisplayChar_ '@';
  
nColorCode_   clRed;
}

void Actor::SetAppearance( const char &nDisplayCharTColor nDisplayColor )
{
  
nDisplayChar_ nDisplayChar;
  
nColorCode_   nDisplayColor;
}

void Actor::DrawTStringGridgrd )
{
  if( 
pt_.0  ||  pt_.>= mapWidth()  ||
      
pt_.0  ||  pt_.>= mapHeight() || grd->Cells[pt_.x][pt_.y] == '#' )
    return;

  
ACTOR_Color nColorCode_;
  
grd->Cells[pt_.x][pt_.y] = nDisplayChar_;
}

bool Actor::IsPassable( const TPointpt )
{
  if( 
pt.|| pt.>= mapWidth() || pt.|| pt.>= mapHeight() )
    return 
false;

  return 
true;
  
//  nMapArray ????
  // int nTileValue = nMapArray[y][x];
  // return sTileIndex[nTileValue].bPassable;
}

void Actor::Updatevoid )
{
  
int iDeltaX = (rand() % 3) - 1;
  
int iDeltaY = (rand() % 3) - 1;

  if( 
IsPassablePoint(pt_.iDeltaXpt_.iDeltaY) ) ) {
    
pt_.+= iDeltaX;
    
pt_.+= iDeltaY;
  }
}

/* ------------------------- PRIVATE ------------------------- */
TPoint Actor::getPosvoid )
{
  return 
pt_;
}

void Actor::setPos( const TPointpt  )
{
  if( ( 
pt.) || ( pt.>= mapWidth() ) ||
      ( 
pt.) || ( pt.>= mapHeight() ) )
    return;
  
pt_ pt;
}

... 
Puse las partes del código afectadas por las modificaciones en la definición de la clase.

Un ejemplo de llamada podría ser:
Código PHP:
...
{
  
Actor a;

  
a.Position Point3);
  
a.DrawStringGrid1 );
  ...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 01-11-2016 a las 19:28:29. Razón: identación
Responder Con Cita