network라는 클래스가 있고
player클래스가 있습니다.
network클래스에
Recv() 함수가 있고 이 함수는 쓰레드로 계속 돌아갑니다.
GameScene클래스에서 플레이 처리를 하는데
void main(){
GameScene.init();
while(1){
GameScene.update();
GameScene.render();
}
GameScene.relelase();
}
씬클래스는 이렇게 무한루프를 돌게 되며.
class GameScene{
private:
public:player player_;
void init();
void update();
void render();
void relelase();
};
player클래스 변수는 저 씬클래스 내부에 선언되어 있습니다.
여기서 질문하는 것은
network클래스에
recv함수에서 패킷을 받아왔으면
패킷을 분석하고 값을 바꿔줘야 하는데요.
player_변수는 GameScene내부에 존재하기 때문에 NetWork에서 알지 못합니다. (참고로 네트워크는 싱글톤입니다.)
recv함수에 player객체를 넘기는건 일단 불가능하고요.
전역변수로 선언하는 것도 좀 아니다 싶습니다... (이외에 해결법이 안나오면 어쩔수 없이 전역선언하겠지만요...)
보통 개발할때 어떤 식으로 하시나요?
(아니면 아예 다른 어떤 구조가 있나요?...)