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