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