Programación General > Java

 Modelo De Clases

<< < (2/2)

JuanK:
Te la has arreglado para hacerme 'hablar'...

Bueno esto seria un primer borrador, nunca he hecho un juego de SokoBan así que logicamente puede estar incompleto o sobredimensionado.
también depende de como, con que, que calidad, que habilidad tengas en este momento y  hasta donde lo quieras hacer.


--- Código: Text ---  public class PersonajeSoko{   //Mapa de bits que contiene la representacion del personaje y todos sus movimientos   private Bitmap bmp;   //Indice del cuadro segmento actual del bmp que se dibujara    private int cuadroActual;   //area del cuadro que se dibujara   private Rectangle cuadro;    //Estados del personaje     public enum EnEstadosPersonaje   {      caminando,      corriendo,      empujando,      halando,      durmiendo       }   public EnEstadosPersonaje EstadoPersonaje;      public PersonajeSoko ()  {      ...      ...  }   //Valida si e personaje puede halar o no un cuadro  //y si puede lo hala, sino pos no  public bool Halar( ArrayCuadros)  {     //validaciones     ...     ...    //si puede halar  =&#62;    EstadoPersonaje= EnEstadosPersonaje.halar;    ...    ...   }    public bool Empujar...   public bool correr...   public bool caminar...    //Operaciones para afectar el estado  del personaje de acuerdo   //a la ordenes de teclado, mouse etc...    public bool ProcesarDispositivosEntrada()   {          }    //valida la posicion del  personaje de acuerdo al estado en que se   //encuentre y de acuerdo a las caillas (array) que le rodeen   public bool ProcesarPosicion(ArrayCuadros)   {       switch(EstadoPersonaje)       {            case caminar:             .....             break;            case halar:            ....            break;           ...           ...           ...       }   }    public bool ProcesarSigCuadro()   {         switch(EstadoPersonaje)       {          case caminar:                  if(cuadroActual=0 & cuadroActual&#60;3)               cuadroActual++;            else              cuadroActual = 0;                      ...                         ...           break;          case correr:            ....            ....        }    }      //Dibuja el personaje de acuerdo al estado y posicion procesados   public bool DibujarPersonaje   {       switch(EstadoPersonaje)       {                ...              ...         }        ...        ...        ...       DibujarCuadroBMP(X,Y,cuadroActual);   }}  
Para que despues no anden diciendo que nunca ayudo a nadie.  :scream:

Can3lita:
GraZie... pero la verdad no esperaba algo así, sino que me lo contestes textualmente  :huh:
Aún continúo con la incertidumbre  :unsure: [/color][/size]

JuanK:
el personaje debe salir en  pantalla, en la pantalla del juego,
asi que par que esto sea cierto sus atributos podrian ser
* Posicion en el eje x</li>
* Posicion en el eje y</li>
* Ancho</li>
* Alto</li>Esos mismos atributos nos servirian para saber que celdas puede o no puede empujar en un momento determinado.

Por otro lado el personaje, segun el caso, puede tener alguno de los siguientes valores en su atributo de estado:

* Caminando</li>
* Corriendo</li>
* Halando</li>
* Empujando</li>
* Reposo</li>
* Durmiendo??...</li>Lós métodos del personaje logicamente estan erlacionados con las cosas que puede hacer, asi que como cosas que puede hacer el personaje tenemos:

* Halar</li>
* Empujar</li>Para saber si se puede halñar o empujar se necesita saber que cajas estan alrededor del personaje entre otras cosas... asi que es necesario recibir como parámetro la informacion de las celdas, lo cual sugiero sea en un array.

Po otro lado y yendo mas a fondo, el personaje necesita dibujarce en pantalla, redefinir su posicion de acuerdo a las ordenes del usuario y mostrar una u ptra animacion dependiendo de su estado y/o posicion:

asi que tenemos estos otros metodos:

* DibujarPersonaje</li>
* ProcesarSgCuadro</li>
* ProcesarPosicion</li>Si queremos dibujar el personaje necesitamos saber que es lo que vamos a dibujar... por supuesto una imagen asi que otro atributo del personaje es la imagen que lo representa. En el supuesto de que esta imagen este delimitada por cuadros para saber que segmento de la imagen se debe dibujar en un momento determinado se requiere otro atributo que es el rectangul oactual (area de imagen que se dibujara) y en el caso de que poseas un array de rectangulos donde cada uno es una porcion de la imagen necesitaras un indiceActual para saber cual es el cuadro que debes dibujar.

etc
etc
etc

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa