Fix lag if run from lobby

This commit is contained in:
2019-05-08 21:43:22 +02:00
parent 6e38223186
commit 5485abe927

View File

@@ -29,6 +29,7 @@ class Lobby:
# Network # Network
self.networkManager = NetworkManager() self.networkManager = NetworkManager()
self.isUpdating = True
# First # First
self.nameDisplay() self.nameDisplay()
@@ -97,34 +98,35 @@ class Lobby:
self.update() self.update()
def update(self): def update(self):
messages = self.networkManager.requestMessages() if self.isUpdating:
scores = self.networkManager.requestScores() messages = self.networkManager.requestMessages()
scores = self.networkManager.requestScores()
# Score # Score
if len(scores) > self.scoreLen: if len(scores) > self.scoreLen:
for child in self.scoreFrame.children.values(): for child in self.scoreFrame.children.values():
child.pack_forget()
self.scoreLen = len(scores)
rank = 1
for score in self.networkManager.requestScores():
pseudo, score = score.split(';')
self.addScoreEntry(rank, pseudo, score)
rank += 1
# Chat
if len(messages) > self.chatLen:
for child in self.chatFrame.children.values():
if child._name != 'bottomFrame':
child.pack_forget() child.pack_forget()
self.chatLen = len(messages) self.scoreLen = len(scores)
for messsage in self.networkManager.requestMessages(): rank = 1
split = messsage.split(';') for score in self.networkManager.requestScores():
time, pseudo, content = split[0], split[1], ';'.join(split[2:]) pseudo, score = score.split(';')
self.addChatEntry(time, pseudo, content) self.addScoreEntry(rank, pseudo, score)
rank += 1
# Chat
if len(messages) > self.chatLen:
for child in self.chatFrame.children.values():
if child._name != 'bottomFrame':
child.pack_forget()
self.chatLen = len(messages)
for messsage in self.networkManager.requestMessages():
split = messsage.split(';')
time, pseudo, content = split[0], split[1], ';'.join(split[2:])
self.addChatEntry(time, pseudo, content)
self.win.after(1000, lambda: self.update()) self.win.after(1000, lambda: self.update())
@@ -169,6 +171,7 @@ class Lobby:
self.win.iconify() self.win.iconify()
# Display # Display
self.isUpdating = False
quadraLudi.main(self.win, lambda score: self.playEnd(score)) quadraLudi.main(self.win, lambda score: self.playEnd(score))
def playEnd(self, score): def playEnd(self, score):
@@ -176,6 +179,7 @@ class Lobby:
self.win.deiconify() self.win.deiconify()
self.win.focus_force() self.win.focus_force()
self.chatEntry.focus() self.chatEntry.focus()
self.isUpdating = True
# Send score # Send score
self.sendScore(score) self.sendScore(score)