Beispiel #1
0
class Battle(SocketNamespace):
    def __init__(self, namespace, view):
        super(Battle, self).__init__(namespace)  # 부모
        self.namespace = namespace
        self.view = view
        self.game = None
        self.que = deque()
        self.room = None

    def ready_request(self, data):
        self.emit('battle', data)  # 방번호,레디 유무

    def room_request(self):  # 방 리스트 요청
        self.emit('battle', "room_list")  # emit(이벤트, json)

    def join_room(self, data):  # 메세지 보내기
        self.emit('join', data)  # emit(이벤트, json)

    def leave_room(self, data):  # 방에서 나가기
        self.emit('leave', data)  # emit(이벤트, json)

    def game_exit(self, data):  # 게임 종료
        self.emit('exit', data)

    def on_message(self, data):  # 들어온 메세지 확인

        if "tile_set" in data:
            print("타일셋받음")
            self.que.append(data)

        self.view_update(data)

    def on_connect(self):  # 연결
        print('1:1 연결함요')

    def on_disconnect(self):
        print('서버 연결 끊어짐요')


    # 게임 데이터 보내기.
    def tile_set_request(self, sender, x, y, tile):
        self.emit('battle', {"tile_set": {"room_index": self.view.room_index, "Sender": sender,
                                          "X": x, "Y": y, "Tile": tile}})

    def view_update(self, data):

        if "full" == data:  # 방 조인 가능성
            print("풀방입니다")
            self.room = False

        elif "pos" == data:
            self.room = True

        elif "room_Info" in data:
            for num in range(3):
                if not len(data["room_Info"][str(num)]):  # 방이 비어 있을 경우
                    self.view.room_listWidget.item(num).setText("빈방")
                elif len(data["room_Info"][str(num)]) == 2:  # 2명
                    self.view.room_listWidget.item(num).setText(
                        data["room_Info"][str(num)][0] + " vs " + data["room_Info"][str(num)][1])
                else:  # 1명
                    self.view.room_listWidget.item(num).setText(data["room_Info"][str(num)][0])

        elif "white_black" in data:
            whit_black = data["white_black"]  # 방접속 유저
            self.view.id_left.setText(whit_black["white"])
            self.view.id_right.setText(whit_black["black"])

        elif "ready" in data:
            print(data["ready"])

        elif "gamestart" in data:
            print("겜시작")
            a = data["gamestart"]
            print(a, "print a")
            print(self.view.user_id)
            a = data["gamestart"]
            color = a[self.view.user_id + str("님")]
            print(color)
            self.game = Game(color, 836, 836)
            # self.game.mouse_loop_init()
            self.game.mouse_loop(self.view.flask_connect, self.que)