Patron Observer, SFML - C++

Preguntas sobre cómo instalar bibliotecas, herramientas como entornos de programación e incluso sistemas operativos como GNU-Linux.

Patron Observer, SFML - C++

Notapor pchack » Lun Jul 04, 2011 3:10 am

Que tal!

Necesito su ayuda, me gustaria desarrollar un juego con sfml y c++ con el patron observer
ya que me parece interesante y util, a demás este patron lo he visto como funciona en pilas python y es bastante bueno, me gusta.

Se que se puede hacer con libsigc++, pero no se usarla.

si me pudieran explicar como se utiliza libsigc++ en c++ y sfml y si tiene la libreria compilada para windows (no conosco muy bien como se compila esta libreria) seria genial que las enviaran a mi correo.
pc.ha.ck@hotmail.com

Espero vuestra ayuda y muchas gracias de antemano.

Saludos.
pchack
 
Mensajes: 106
Registrado: Lun Dic 13, 2010 12:23 am

Re: Patron Observer, SFML - C++

Notapor Juanxo » Lun Jul 04, 2011 10:32 pm

boost signal es más facil en mi opinión. La versión que se empezó de C++ para pilas lo usaba, así que si encuentras un sitio donde descargarla le puedes echar un ojo al código
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Re: Patron Observer, SFML - C++

Notapor pchack » Mar Jul 05, 2011 1:15 am

gracias Juanxo!,

Estoy ojeando la libreria y me parece más facil, muchas gracias por la respuesta
me ha sido muy útil.

Saludos.
pchack
 
Mensajes: 106
Registrado: Lun Dic 13, 2010 12:23 am

Re: Patron Observer, SFML - C++

Notapor pchack » Jue Jul 07, 2011 12:10 am

Saludos, tengo una duda y espero que me puedan ayudar para resolverla.

Me gustaria saber como luego de conectar un evento desconectarlo, a través de una función.
muestro el código para explicarme mejor:

#include <iostream>
#include <boost/signals.hpp>


using namespace std;

class Button
{
typedef boost::signal<void (int x, int y)> OnClick;

public:
void conectar(const OnClick::slot_type& slot);
void desconectar(.......... slot); // <- esta parte no sé de que tipo es el argumento
void emitir(int x, int y);

private:
OnClick onClick;
};

void Button::conectar(const OnClick::slot_type& slot)
{
onClick.connect(slot);
}

void Button::desconectar(.......... slot){ // <- lo mismo que aquí
onClick.disconnect(slot);
}

void Button::emitir(int x, int y){
onClick(x, y);
}



void printCoordinates(long x, long y)
{
std::cout << "(" << x << ", " << y << ")\n";
}



int main(){
Button b;
b.conectar(&printCoordinates);
b.emitir(10, 30);

b.desconectar(&printCoordinates);

b.emitir(10, 30);


return 0;
}



Eso es, no sé como hacer una función que reciba la función deseada para desconectar y que se encarge de ello.
pchack
 
Mensajes: 106
Registrado: Lun Dic 13, 2010 12:23 am

Re: Patron Observer, SFML - C++

Notapor Juanxo » Vie Jul 08, 2011 10:25 pm

buenas:

al grano. http://www.boost.org/doc/libs/1_41_0/do ... #id1671208
básicamente parece que al conectar te devuelve un objeto de la clase connection. Tendrías que almacenarlos de alguna manera y desconectarlos en el disconnect
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)


Volver a Instalación de bibliotecas y herramientas

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado