elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 [2]
11  Programación / Programación C/C++ / Re: [Problema] Lista de inicialización de una estrucura al interior de una clase en: 20 Enero 2014, 00:52 am
Gracias por el consejo,  lo arreglaré apenas solucione el problema principal.

Ya pude avanzar algo con el problema, lo que sucede ahora, es que, no sé como llamar al constructor de la estructura interior. El códido que tengo es el siguiente:

Código:
class State
{
    public:
        typedef std::unique_ptr<State> Ptr;
        struct Context
        {
            Context(sf::RenderWindow& window, TextureHolder& textures, FontHolder& fonts, Player& player);
            sf::RenderWindow* window;
            TextureHolder* textures;
            FontHolder* fonts;
            Player* player;
        }Nested;

    public:
        State(StateStack& stack, Context context);
        virtual ~State();
        virtual void draw() = 0;
        virtual bool update(sf::Time dt) = 0;
        virtual bool handleEvent(const sf::Event& event) = 0;
    protected:
        void requestStackPush(States::ID stateID);
        void requestStackPop();
        void requestStateClear();
        Context getContext() const;
    private:
        StateStack* mStack;
        Context mContext;
};

State::Context::Context(sf::RenderWindow& window, TextureHolder& textures, FontHolder& fonts, Player& player)
:window(&window),
textures(nullptr),
fonts(nullptr),
player(nullptr)
{

}

State::State(StateStack& stack, State::Context context)
//EL ERROR ESTÁ EN ESTA LINEA, DEBO LLAMAR AL CONTRUCTOR DE 'Context' entregando 4 argumentos

//:Context(*(context.window),*(context.textures),*(context.fonts),*(context.player))
//:State::Context(*(context.window),*(context.textures),*(context.fonts),*(context.player))
: Nested(*(context.window),*(context.textures),*(context.fonts),*(context.player))
{

}

He intentado llamar al contructor de diversas formas. El error reside en que el emulador me señala que estoy contruyendo un Context entregando 0 argumentos, en donde me señala que este pide 4 argumentos (claro, así está definido su contructor). Por lo que deduje, que no estoy llamando correctamente  al constructor, por lo que el emulador lo llama automaticamente entregándole 0 argumentos.

Alguien sabe como llamo al contructor de al estructura interior Context desde el contructor de State?
12  Programación / Programación C/C++ / [Problema] Lista de inicialización de una estrucura..... (Solucionado) en: 19 Enero 2014, 19:39 pm
Hola ! Llevo 2 días intentando reparar un error, y creo que ya estoy muy cerca de lograrlo, pero ya no doy más, así que les pido ayuda.

Sucede que tengo los siguientes errores

Código:
|323|error: expected class-name before '(' token
|323|error: expected '{' before '(' token
|324|error: expected constructor, destructor, or type conversion before ',' token
|324|error: expected constructor, destructor, or type conversion before '(' token

(El problema se presenta en la clase State, en la estructura Context, y en sus respectivos contructores, así que pueden ignorar el resto de las clases que desconozcan, las puse para que se entienda de qué trata el código.)

Mi código es de este estilo:

Código:
class State
{

    public:
        struct Context
        {
            //Constructor
            Context(sf::RenderWindow& window, TextureHolder& textures, FontHolder& fonts, Player& player);
            sf::RenderWindow* window;
            TextureHolder* textures;
            FontHolder* fonts;
            Player* player;
        };

    public:
        State(StateStack& stack, Context context);
        virtual ~State();
    private:
        Context mContext;
};


//Constructor de la estructura Context que está dentro de la clase State
//Este contructor debería guardar referencias (o punteros) a los recursos obtenidos por argumento
State::Context::Context(sf::RenderWindow& window, TextureHolder& textures, FontHolder& fonts, Player& player)
//Lista de inicialización
: State::Context::window(window)                        //Linea 323
, State::Context::textures(textures)                        //Linea 324
, State::Context::fonts(fonts)
, State::Context::player(player)
{

}

State::State(StateStack& stack, State::Context context)
//Lista de inicialización 2, llama al constructor de Contexto
: mContext(State::Context(*(context.window),*(context.textures),*(context.fonts),*(context.player)))
{

}

Según lo que tengo entendido, la lista de inicialización del contructor de Context debería estar correcta, pero ambas en conjuntos me entra la duda. Podría alguien decirme donde está el error en las listas de inicialización, o si debo utilizar otra forma para resolver el problema?

Muchas gracias de antemano.
13  Programación / Programación C/C++ / Problema con orden de declaración de 2 clases en: 14 Enero 2014, 19:39 pm
Estoy seguro que el error debe ser muy evidente, así que pido disculpas de antemano por preguntar algo tan básico.

Lo que sucede, es que tengo una clase y una estrucura:

Código:
class MyClass
{
public:
void onCommand(const [b]Command[/b]& command, sf::Time dt);
};

struct Command
{
std::function<void([b]SceneNode[/b]&, sf::Time)> action;
unsigned int category;
};

Y si las escribo de esta forma en mi codigo, me da el siguiente error:

Código:
|157|error: 'Command' does not name a type|

Supuse que haciendo el orden contrario obtendría un error similar, así que declaré la estructura al inicio del código para señalarle al código que mi estructura si existía en algún lado. Entonces lo escribí de esta forma:

Código:
struct Command;

class MyClase
{
public:
void onCommand(const [b]Command[/b]& command, sf::Time dt);
};

struct Command
{
std::function<void([b]SceneNode[/b]&, sf::Time)> action;
unsigned int category;
};

Por lo que conseguí repararlo.

Pero ahora, la función onCommand me da error al llamar a command.category:

Código:
void SceneNode::onCommand(const Command& command, sf::Time dt)
{
    [b]command.category;[/b]
}

Acaso tambien debo declarar esta variable de mi estructura al comienzo del código? Si tuviera muchas variables deberái declararlas todas? Hay alguna otra solución.

Muchas gracias de antemano, espero que se haya entendido el problema.

Saludos.
14  Programación / Programación C/C++ / Re: [Duda] return_type funtion(type arg) const; ?? en: 11 Enero 2014, 20:56 pm
Gracias, ya lo entendí completamente !

Saludos !
15  Programación / Programación C/C++ / [Duda] return_type funtion(type arg) const; ?? en: 11 Enero 2014, 20:21 pm
Hola ! Estoy estudiándome un libro, y de repente me aparece una función del tipo como señalé más arriba como método de una clase.

Y ya me ha aparecido unas 3 veces, así que supongo que debe ser importante. Podría alguien decirme que significa el 'const' a la derecha de la declaración de la función, así como también aparece en su definición?

return_type funtion(type arg) const;

Gracias de antemano.
16  Programación / Programación C/C++ / Re: Aprender a programar animaciones 2D en: 11 Enero 2014, 16:04 pm
Ya pude instalar SDL ! Gracias nuevamente.

Aprendetelo por tu cuenta, es mi consejo xD.

Eso si, es muy importante que aprendas a usar hilos. Para las animaciones son casi obligatorios.

Sobre esto, si, es bueno aprender por las mias, pero eso es muy dificil, ya que siempre hay estructuras que funcionan mal con datos pesados, que crean muchas copias de los recursos, o no permiten acceder rápidamente a ellos, por lo que tener un código que maximice el fluido del juego y minimice la memoría es casi imposible para un principiante como yo, creo que intentar hacerlo sería una perdida de tiempo (claro, puliría ciertas cosas, pero eso se hará si o si en el desarrollo general del juego). Afortunadamente ya encontré una guia que me señala las estructuras de datos correctas a utilizar, y la forma de guardar los recursos para poder utilizarlos lo más eficientemente posible.

PD: También debo aprender threads, pero estoy leyendo un libro, y aun me queda mucho que aprender antes de llegar a hilos.

Doy el o los problemas como resueltos, gracias por la ayuda !
17  Programación / Programación C/C++ / Re: Aprender a programar animaciones 2D en: 10 Enero 2014, 16:46 pm
Muchas gracias nuevamente por la info.

Me interesaba mucho lo del movimiento del mapa, lo veré más a fondo una vez entienda el uso de las librerias. Por ahora utilizaré SDL y SFML, tambien quiero echarle una mirada a Angel2D, para hacer una comparación con las otras librerias viendo lo que puedo lograr con cada una.

Por ahora no me interesa mucho ogre ni allegro, quiero partir con poco, usar utilizar allegro me quitaría un poco de tiempo, supongo que con las otras me bastará.

Tengo una pequeña gran duda. Como instalo SDL + SDL_image en Code Blokcs? Sería buena idea utilizar code blokcs? Tambien tengo eclipse y dev c++

Saludos.
18  Programación / Programación C/C++ / Re: Aprender a programar animaciones 2D en: 10 Enero 2014, 05:19 am
Muchas gracias por ambas respuestas.

No entendí muy bien qué es Angel2D, pero le daré una mirada para ver lo que puede hacer.

vangodp, gracias por toda esa info, de verdad me ayuda bastante. En el mientras tanto me puse a averiguar sobre animación, y ya se me ocurrió una muy buena idea, crear mis propios datos de sprites y utilizarlos en mi código. Creó que dejaré de enfocarme en eso (creo que ya es un problema resuelto). Ahora, es solo cosa de programar.

He leído bastante sobre SDL y SFML, estoy algo confundido, ya que aún no sé lo que es el openGL ni para que sirve, solo sé que de puede usar en combinación con los otros. Pero como tu dijiste, sería buena idea probar ambos, comenzaré utilizando SDL, y luego lo compararé con SFML haciendo lo mismo en ambas librerias, luego se eso averiguaré más a fondo sobre opengl y las otras librerias (glu y glut) para ver que es lo que más me conviene para lo que quiero.

Muchas gracias. Saludos !
19  Programación / Programación C/C++ / Aprender a programar animaciones 2D en: 10 Enero 2014, 02:43 am
Bueno, primero les comento lo que busco.

Quiero crear un juego aventura/rpg en 2D. Para ello, he aprendido C++ a fondo, anteriormente ya conocía python, por lo que tengo mucho conocimiento sobre programación y sobre como llevar a cabo un buen código (o al menos eso creo).

El juego que quiero crear quiero que sea similar al Ragnarok Battle Offline en lo que es gráfica:

Pero, donde puedo aprender a programar la animación?, los movimientos de personajes, efectos, todo lo que tiene que ver con gráfica en 2D?
Tengo conocimiento de estructura de datos, string, I/O, vectores, etc, etc, todo lo que corresponde a programación en si en c++. Quiero aprender programación gráfica (quiero empezar con SFML). Pero tengo entendido que esta libreria solo me da herramientas para llevar a cabo la parte gráfica de mi juego, pero por ejemplo, cómo puedo aprender la forma correcta de ejercer una animación eficiente en mi juego (con animación me refiero, a que mi personaje tenga una imagen distinta para atacar, caminar, saltar, recibir daño, etc). Claro, es parte de lo que yo mismo debo aprender a programar como programador, de hecho, actualmente tengo muchas ideas en mi cabeza de como hacerlo, pero me gustaría algun documento que me enseñe la forma correcta, para partir bien desde el comienzo y poder ir complementándolo luego, evitando un mal código.

Muchas gracias de antemano.
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines