Example #1
0
def userDataProcess(data):
    global user
    data = washData(data)
    if data['type'] == "notice":
        game_controller.showContent(data['content'])
    elif data['type'] == "signUpResult":
        if data['result'] == "success":
            user = User(data['username'], 0, data['rank'], [])
        game_controller.signUpResult(data['result'])
    elif data['type'] == "loginResult":
        if data['result'] == "success":
            user = User(data['username'], data['bestScore'], data['rank'],
                        data['record'])
        game_controller.signUpResult(data['result'])
    elif data['type'] == "Update user info":
        userData = user.file[user.username]
        userData['bestScore'] = data['bestScore']
        userData['rank'] = data['rank']
        userData['record'] = data['record']
        user.file[user.username] = userData
        game_controller.showContent("Upload record success!")
    elif data['type'] == "Nothing":
        # print "Server has received data from", data['source']
        pass
    elif data['type'] == "Unknown message":
        game_controller.showContent("Server receive unknown message")
    elif data['type'] == "rank":
        game_controller.showRank(data['rank'], data['myRank'])
    elif data['type'] == "error":
        game_controller.showContent(data['content'])
    else:
        game_controller.showContent("Client receive unknown message")
Example #2
0
    def receiveServer(dt):
        global connected, serialID
        if not connected:
            return
        data = netstream.read(sock)
        if data == netstream.TIMEOUT or data == netstream.CLOSED or data == netstream.EMPTY:
            return

    #客户端SID
        if 'sid' in data:
            serialID = data['sid']

        if 'notice_content' in data:
            import game_controller
            game_controller.showContent(
                data['notice_content'])  #showContent is from game_controller

        if 'sign_up_result' in data:
            fix_sign_up_result(data)

        if 'sign_in_result' in data:
            fix_sign_in_result(data)

        if 're_game_result' in data:
            fix_game_result(data)
Example #3
0
    def receiveServer(dt):
        global connected, serialID
        if not connected:
            return
        data = netstream.read(sock)
        if data == netstream.TIMEOUT or data == netstream.CLOSED or data == netstream.EMPTY:
            return

    #客户端SID
        if 'sid' in data:
            serialID = data['sid']

        if 'notice_content' in data:
            import game_controller
            game_controller.showContent(
                data['notice_content'])  #showContent is from game_controller

        if 'authenResult' in data:
            import game_controller
            if data['authenResult'] == False:
                game_controller.authenticationFailed()
            else:
                game_controller.authenticationSucceed()

        if 'signUpSucceed' in data:
            import game_controller
            if data['signUpSucceed'] == False:
                game_controller.signUpFailed()
            else:
                game_controller.signUpSucceed()

        if 'scoreList' in data:
            import game_controller
            game_controller.setScoreListOnline(data['scoreList'])
Example #4
0
def fix_sign_up_result(data):
    import game_controller
    if data['sign_up_result'] == "Failed":
        content = "The userName has been used. Please try again."
        game_controller.showContent(content)
    if data['sign_up_result'] == "Success":
        content = "Register Success!"
        game_controller.showContent(content)
        game_controller.registerSuccessOp()
Example #5
0
def fix_sign_in_result(data):
    import game_controller
    if data['sign_in_result'] == "notAUser":
        content = "userName is not exist"
        game_controller.showContent(content)
    elif data['sign_in_result'] == "passwordError":
        content = "Password error"
        game_controller.showContent(content)
    elif data['sign_in_result'] == "success":
        game_controller.signInSuccessOp()
Example #6
0
 def __init__(self, username, bestScore, rank, record):
     self.username = username
     self.sid = network.serialID
     try:
         self.file = shelve.open("user.dat", writeback=True)
         userData = {'bestScore': bestScore, 'rank': rank, 'record': record}
         self.file[username] = userData
     except Exception:
         game_controller.showContent(
             "No privilege to read or write data! :(")
         print(Exception)
Example #7
0
 def recordRecentData(self, recentScore):
     try:
         userData = self.file[self.username]
         userData['recentScore'] = recentScore
         self.file[self.username] = userData
         sendData = {
             'sid': self.sid,
             'type': "recentScore",
             'username': self.username,
             'score': recentScore
             # 'time' : int(time.time()-game_controller.startTime)
         }
         network.clientSend(sendData)
     except:
         game_controller.showContent("Record recent data Error! :(")
Example #8
0
 def recordFinalData(self):
     try:
         sendData = {
             'sid': self.sid,
             'type': "finalScore",
             'username': self.username,
             'score': self.file[self.username]['recentScore'],
             'time': int(time.time() - game_controller.startTime),
             'date': time.strftime('%Y-%m-%d', time.localtime(time.time()))
         }
         network.clientSend(sendData)
         return max(self.file[self.username]['bestScore'],
                    self.file[self.username]['recentScore'])
     except:
         game_controller.showContent("Record final data Error! :(")
Example #9
0
    def receiveServer(dt):
        global connected, serialID
        if not connected:
            return
        data = netstream.read(sock)
        if data == netstream.TIMEOUT or data == netstream.CLOSED or data == netstream.EMPTY:
            return

    #客户端SID
        if 'sid' in data:
            serialID = data['sid']

        if 'notice_content' in data:
            import game_controller
            game_controller.showContent(
                data['notice_content'])  #showContent is from game_controller
        if 'response' in data:
            import game_controller
            game_controller.showContent(
                data['response'])  #showContent is from game_controller
            if data['response'] == u"登录成功":
                import game_controller
                game_controller.login_success()
        if 'score' in data:
            score = data['score']
            users = data['users']
            time_list = data['time']
            print score
            import game_controller
            game_controller.setRank1Scores(game_controller.scorerank,
                                           int(score[0].encode("utf-8")))
            game_controller.setRank2Scores(game_controller.scorerank,
                                           int(score[1].encode("utf-8")))
            game_controller.setRank3Scores(game_controller.scorerank,
                                           int(score[2].encode("utf-8")))

            game_controller.setRank1Name(users[0])
            game_controller.setRank2Name(users[1])
            game_controller.setRank3Name(users[2])
            game_controller.setRank1Time(game_controller.scorerank,
                                         int(time_list[0][0].encode("utf-8")))
            game_controller.setRank2Time(game_controller.scorerank,
                                         int(time_list[1][0].encode("utf-8")))
            game_controller.setRank3Time(game_controller.scorerank,
                                         int(time_list[2][0].encode("utf-8")))
Example #10
0
def setFinalScore():
    timeCost = cocos.text.Label('Time: ' + getTime(),
                                font_name='Times New Roman',
                                font_size=18,
                                anchor_x='center',
                                anchor_y='center',
                                color=(0, 0, 0, 255))
    timeCost.position = common.visibleSize["width"] / 2, common.visibleSize[
        "height"] * 7 / 10
    scoreLayer.add(timeCost, 50)
    bestScore = user.user.recordFinalData()
    bestScore = cocos.text.Label('Best: ' + str(bestScore),
                                 font_name='Times New Roman',
                                 font_size=18,
                                 anchor_x='center',
                                 anchor_y='center',
                                 color=(0, 0, 0, 255))
    bestScore.position = common.visibleSize["width"] / 2, common.visibleSize[
        "height"] * 3 / 5
    scoreLayer.add(bestScore, 49)
    game_controller.showContent("Uploading your record......")
Example #11
0
def connect(gameScene):  # 连接服务器
    global connected, sock
    if connected:
        return connected
    #connect server
    host = "127.0.0.1"
    port = 9234
    sock = socket.socket()
    try:
        sock.connect((host, port))
    except:
        game_controller.showContent("Connect to Server Failed! :(")
        return
    connected = True

    #始终接收服务端消息
    def receiveServer(dt):
        global connected, serialID
        if not connected:
            return
        data = netstream.read(sock)
        if data == netstream.TIMEOUT or data == netstream.CLOSED or data == netstream.EMPTY:
            return
        #客户端SID
        if 'sid' in data:
            serialID = data['sid']
        else:
            user.userDataProcess(data)
        '''
		if 'notice_content' in data:
			import game_controller
			game_controller.showContent(data['notice_content']) #showContent is from game_controller
		'''

    gameScene.schedule(receiveServer)
    return connected
Example #12
0
    def receiveServer(dt):
        global connected, serialID, isRead
        # logInState = netstream.getLogInState()
        if not connected:
            return
        data = netstream.read(sock)
        if data == netstream.TIMEOUT or data == netstream.CLOSED or data == netstream.EMPTY:
            return

        #客户端SID
        if 'sid' in data:
            # print ('sid')
            import game_controller
            serialID = data['sid']

        # 用于broadcast
        if 'notice_content' in data:
            import game_controller
            game_controller.showContent(
                data['notice_content'])  #show+Content is from game_controller

        # 根据Server返回信息调用showLogInMessage显示对应信息
        if 'error1' in data:
            print data['error1']
            logInState = 1
            import game_controller
            game_controller.showLogInMessange(logInState)

        if 'create' in data:
            print data['create']
            import game_controller
            logInState = 2
            game_controller.showLogInMessange(logInState)

        # if 'error1-1' in data:
        #     print data['error1-1']
        #     logInState = 3
        #     import game_controller
        #     game_controller.showLogInMessange(logInState)

        if 'error2' in data:
            print data['error2']
            logInState = 6
            import game_controller
            game_controller.showLogInMessange(logInState)

        if 'error2-1' in data:
            print data['error2-1']
            logInState = 7
            import game_controller
            game_controller.showLogInMessange(logInState)

        if 'error3' in data:
            print data['error3']
            logInState = 8
            import game_controller
            game_controller.showLogInMessange(logInState)

        if 'successfully' in data:
            print data['successfully']
            logInState = 9
            import game_controller
            game_controller.showLogInMessange(logInState)

        if 'log_out' in data:
            print("log_out")
            import game_controller
            game_controller.doLogOut()

        if 'championAccount' in data:
            print("championAccount")
            import game_controller
            name = data['championAccount']
            score = data['championScore']
            game_controller.receive_champion(name, score)