Fix lag if run from lobby
This commit is contained in:
52
lobby.py
52
lobby.py
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user