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")
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)
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'])
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()
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()
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)
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! :(")
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! :(")
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")))
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......")
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
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)