DejaVu |
» 2014-06-06 10:40:06 Można też zwrócić kopię obiektu, która w sumie będzie nieco lepsza, ponieważ z mojego doświadczenia klasa ta ma nieco wybrakowany interfejs, więc kopia jest nieco bardziej praktyczna. |
|
pekfos |
» 2014-06-06 12:51:08 I dalej nie podałeś żadnego kodu, do zdiagnozowania faktycznego problemu. W praktyce klepiemy już drugą stronę tematu o niczym. |
|
Rughailon Temat założony przez niniejszego użytkownika |
» 2014-06-07 13:45:13 Wybaczcie za brak odpowiedzi, gdyż nie miałem dostępu przez ten czasu do projektu. Kod: class c_manager { private: sf::Packet packet_receive; std::string last_package; public: bool send_package( sf::UdpSocket *, sf::IpAddress, unsigned short, std::string ); bool send_package( sf::UdpSocket *, sf::IpAddress, unsigned short, sf::Packet ); void receive_package( sf::UdpSocket &, sf::IpAddress, unsigned short ); inline std::string get_last_package() { return last_package; } inline sf::Packet get_last_packet() { return packet_receive; } };
void c_manager::receive_package( sf::UdpSocket & socket, sf::IpAddress sender, unsigned short sender_port ) { if( socket.receive( this->packet_receive, sender, sender_port ) == sf::Socket::Done ) { packet_receive >> last_package; } else { this->packet_receive << "Nothing packet"; packet_receive >> last_package; } }
Co do tej kopii obiektu. Co masz na myśli? |
|
DejaVu |
» 2014-06-07 14:10:22 packet_receive >> last_package;
Jesteś świadom co ta linijka robi? |
|
Rughailon Temat założony przez niniejszego użytkownika |
» 2014-06-07 14:24:51 Tak. Wyciągam pierwszą zapisaną zmienną, tutaj to będzie string typ_pakietu. Zapomniałem zmienić nazwę. Typ mówi mi, co mam później zrobić z pakietem. Np. może to jest mapa i muszę ją zapisać to tablicy. if( search_string( get_last_type_packet(), "MAP" ) ) { } Tylko, jak mówiłem. Zapomniałem zmienić nazwę. |
|
DejaVu |
» 2014-06-07 18:29:41 Skoro udaje Ci się poprawnie odczytać pakiet, a później nie jest on 'widoczny' to znaczy, że problemem jest Twoja klasa do zarządzania pakietami. Zapewne pracujesz na innym obiekcie niż Ci się wydaje. |
|
Rughailon Temat założony przez niniejszego użytkownika |
» 2014-06-07 22:18:55 Działa! Wprowadziłem kilka poprawek, ale rozwiązaniem było ustawienie public: 'sf::Packet packet_receive' i używanie bezpośrednio tej zmiennej. Tylko nadal nie rozumiem, czemu funkcja get nie działała, skoro zwracałem właśnie to samo. |
|
pekfos |
» 2014-06-07 22:37:34 inline sf::Packet & get_last_packet() { return packet_receive; }
|
A tak? |
|
1 « 2 » 3 |