Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - metaxas

#1
General / Edevi Magazine
17 de Febrero de 2003, 01:03:56 PM
                                Cojonuda la iniciativa  :D . La verdad es que se echaba de menos algo así, me parece un complemento perfecto para Stratos. Enhorabuena.

Metaxas                                
#2
General Programadores / Funciones y parametros
05 de Febrero de 2003, 11:39:28 AM
                                Una forma de hacerlo, si no fueran muchas las clases distintas que puedes tener, sería hacer heredar esas clases de un interfaz común, obligando a implementar un método que devuelva el tipo al que pertenece la clase. En la lista guardarías punteros a la clase base común (el interfaz), y al pedir un elemento de la lista le pedirías el tipo y harías un cast al tipo adecuado en tiempo de ejecución, de esta forma:




#include <list>





enum { AType = 0, BType = 1 };





class IBase

{



public:

 

 virtual unsigned int GetType() = 0;

};





class A : public IBase

{

   

public:



unsigned int GetType()

{

    return AType;

}



void FuncA() {};

};





class B : public IBase

{

   

public:



unsigned int GetType()

{

    return BType;

}



void FuncB() {};

};







int main(int argc, char* argv[])

{

std::list<IBase *> ptrList;



A a;

B b;

ptrList.push_back(&a);

ptrList.push_back(&b);



IBase *ptrBase = ptrList.front();

unsigned int type = ptrBase->GetType();



switch (type)

{

 case AType: A *ptrA;

       ptrA = dynamic_cast<A *> (ptrBase);

       ptrA->FuncA();

       break;



 case BType: B *ptrB;

       ptrB = dynamic_cast<B *> (ptrBase);

       ptrB->FuncB();

       break;



 default: break;

}



return 0;

}


Acuérdate de compilarlo con el RTTI activado para que te funcione el dynamic_cast


Metaxas                                
#3
                                El libro en realidad te descubre las inmensas posibilidades de los templates, una de las mayores ventajas de C++ sobre cualquier otro lenguaje. Aparte, trae muchos capítulos muy interesantes, como el del manager de memoria para objetos pequeños, la discusión sobre los singleton, o el impagable capítulo de los smart pointers. Un libro de obligada lectura y adquisición, vamos ;-)

Metaxas                                
#4
General Programadores / Funciones y parametros
30 de Enero de 2003, 07:04:55 PM
                                O2, daría un error de compilación porque el objeto no tiene ese método. Respecto a tu última pregunta, precisamente en el ejemplo sólo puede llamarse a Function con un determinado tipo de clases, en concreto aquellas clases que implementan el interfaz. De esta forma, si pasases otras sabes en tiempo de compilación que estás pasando un puntero a un objeto que no es del tipo adecuado.

Metaxas                                
#5
                                También, en el "Modern C++ design" de Alexandrescu hay un capítulo entero buenísimo dedicado a una discusión sobre los singletons y sus ventajas e inconvenientes.

Metaxas                                
#6
General Programadores / Funciones y parametros
30 de Enero de 2003, 12:51:26 PM
                                Fácil, te he hecho un pequeño ejemplo:



template<class T> int Function(T *ptr)

{

   return ptr->DoSomething();

}





class I

{

   public:

       virtual int DoSomething() = 0;

};





class A : public I

{

   public:

       virtual int DoSomething()

       {

           return 0;

       }

};





class B : public I

{

   public:

        virtual int DoSomething()

        {

            return 1;

        }

};



int main(int argc, char* argv[])

{

   A a;

   B b;

   int value1 = Function(&a); // value1 vale 0

   int value2 = Function(&b); // value2 vale 1



   return 0;

}


Para el tema de identificar el tipo, en vez de eso lo mejor es que hagas heredar las distintas clases de un interfaz común con las funciones que necesitas y las implementes en cada clase, como en el ejemplo.

Metaxas                                
#7
                                Bueno, la idea de montar las máquinas era para los juegos finalistas, sobre los que se haría la votación final. Para esta edición creo que después de la preselección quedaron unos 12 juegos o así. Otra cosa que se podría hacer es tener sólo tres o cuatro ordenadores con las demos de todos los juegos instaladas en cada uno, y que la gente pudiese desde un menú lanzar uno u otro.

Metaxas                                
#8
                                Gracias aphex, a ver si te puedes enterar de algo...

Sobre el tema de qué se podría mejorar para el ArtFutura 2003, de acuerdo en lo de mejorar las iniciativas existentes más que crear otras, a mí los contenidos me gustaron bastante en lineas generales. Esta ha sido la primera vez que he ido y no puedo comparar con otras ediciones, pero por lo que leí sobre la edición del 2001 y por lo que he visto en ésta, las conferencias técnicas de las películas es lo que más exito tiene con diferencia y lo que hace que las cifras de asistencia al ArtFutura se disparen. Para la próxima edición estas charlas tratad de ponerlas en un auditorio más grande, que de verdad que hubo momentos MUY tensos en la cola de entrada a las conferencias de Spiderman y de El señor de los anillos. Sobre las conferencias de videojuegos, pues hombre, entiendo que ArtFutura trata sobre el arte con las últimas tecnologías y que la inclusión de los videojuegos en el mismo se tiene que justificar de alguna forma, pero por ejemplo la charla "El arte y los videojuegos" pues me pareció forzada y que se trataba de sacarle jugo a un tema que no daba mucho más de sí. Hablando con algunos amigos que asistieron a las conferencias de juegos creo que quedamos un poco defraudados, a lo mejor esperábamos que se hablase más de la industria en sí, pero claro el problema seguramente fuese nuestro, a lo mejor nos creíamos que iba a ser una especie de Game Developers Conference a la española ;-)
Sobre el concurso de videojuegos tendríais que darle mucha más presencia, en esta edición ha sido algo anecdótico, aunque ya sabemos que es la primera vez que se hace. Recordad que al igual que un corto, lo que quieren sus creadores es que su juego y su trabajo se vea, ver la reacción del público... Yo montaría equipos con los juegos finalistas donde la gente pueda jugar con ellos y pantallas donde se vean rolling demos de los mismos. ¿Qué tal hacer que el público los votase (al igual que con los cortos 3D) y crear un premio del público como una categoría más del concurso?

Metaxas                                
#9
                                Hombre, ya que se comprometieron a entregar un documento oficial, a mí me molaría tenerlo para el recuerdo ;-)
Un amigo mío hizo en el ArtFutura uno de los talleres de NVidia y a las dos o tres semanas le mandaron el diploma (eso sí, en pdf, para que se lo imprimiera él), por eso me extrañaba que a nosotros todavía no nos hubiese llegado el nuestro.

La verdad es que las revistas de videojuegos españolas podrían haberse hecho eco del concurso, al menos hubiera estado bien para animar a otros lectores a meterse en este mundillo. Se proclaman defensoras a ultranza del software español y por una vez que hay un concurso de videojuegos serio en España no le dedican ni una miserable reseña de tres lineas... En fin.

Metaxas                                
#10
                                Muy buenas a todos, el pasado 6 de Noviembre recibí un mail de José Luis de Vicente dirigido a todos los que presentaron un juego al concurso en el que se decía que en pocos días todos los participantes recibirían por escrito un documento que certificaba la participación y los resultados del concurso. ¿Alguno de los participantes habéis recibido este documento a dia de hoy?. Si no es así, ¿podrías aphex si lees esto informarte por favor sobre ello y decirnos algo?....

Metaxas                                
#11
Código de la Semana / Reciclado de memoria - Fernando Rodríguez
12 de Diciembre de 2002, 02:41:05 PM
                                ¡ Muy buen COTD !, te comento par de cosillas que se me ocurren para tratar de hacerlo más eficiente:

- Cada vez que creas un nodo nuevo para la lista de libres, lo creas en el heap. Dado que el pool tiene un tamaño máximo, puedes crearte un array de Nodes de ese tamaño en la pila (los accesos a variables declaradas en la pila son más rápidos que los accesos al heap), y en vez de crear un Node nuevo y meter su puntero en la lista de libres, meterías el puntero al Node adecuado en el array. Para borrar un node, lo que harías sería resetear el Node del array a sus valores por defecto, en vez de hacerle un delete.
- El std::list que usas para guardar los nodos libres. Cada vez que le haces un push_back te está reservando memoria para almacenar el puntero, pues al contrario que el vector el list no te reserva memoria en segmentos de tamaño fijo, sino individualmente para cada elemento. Lo ideal sería hacerle un resize de MAX_NODES al principio y hacer siempre un push_front y un pop_front, como si fuese una pila vamos, pero eso sí, guardando tu un contador con el tamaño actual en cada momento (pues al hacerle un size() te devolvería siempre MAX_NODES)


Metaxas                                
#12
Proyectos / 'Adventum' en Flipcode
30 de Noviembre de 2002, 01:29:08 PM
                                Muchas gracias por las felicitaciones  :D
Sobre el tema de la multitextura, la verdad es que no me cuesta nada añadir código para hacerlo en multipasada, a ver si para la próxima demo lo implemento.

Metaxas                                
#13
Proyectos / 'Adventum' en Flipcode
29 de Noviembre de 2002, 11:27:54 AM
                                Ahora mismo la demo necesita una tarjeta con soporte de multitextura, pues hago el render de una sola pasada. Debería mirar si la tarjeta no tiene este soporte, en cuyo caso debería hacerlo en varias pasadas, aunque no creo que lo haga, mi intención era que los requisitos mínimos del juego sean los del ordenador en el que lo estoy programando, bastante desfasado a dia de hoy, y antediluviano para cuando salga el juego ;-)
Creo recordar que el soporte de multitextura no se introdujo en las Voodoo hasta la 3. Pruébalo, funcionarte te funcionará, pero te irá lento y seguramente no verás las texturas de los escenarios, aunque puede que sí veas las de los personajes.

Metaxas                                
#14
Off-topic / Mi hermano es cocainómano
29 de Noviembre de 2002, 11:02:08 AM
                                Lo siento mucho tio, vaya putada, mierda de drogas y de gentuza sin escrúpulos, la condición humana es lamentable.
De todas formas, aunque no soy quién para hablar, no sé si escapar será la solución, bastante tendrán tus pobres padres como para dejarles solos con el problema, pero claro ¿qué otras salidas tienes si no quieres que tu vida sea un infierno?. Bufffff, qué jodido.....

Metaxas                                
#15
                               
Citar- DirectGfx: Es normal q si no limpio el backbuffer, me lo limpie el DX con pantallazos de colores ????

Sí, te lo hace cuando no limpias el back buffer o cuando hay algo que no le mola, para que te des cuenta de que estás haciendo algo mal.
Lo de DirectShow supongo que también será normal, no podrás escuchar MP3s mientras programas ;-)
Además, por tenerlas en debug la mayoría de los juegos te irán muy lentos y no podrás jugar... definitivamente la vida del desarrollador es muy dura  :(

Metaxas                                





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.