Add a thread for getting player input
parent
6c07b77077
commit
c414d2c562
35
main.py
35
main.py
|
@ -4,6 +4,8 @@ import players
|
||||||
import random
|
import random
|
||||||
import pickle
|
import pickle
|
||||||
import sys
|
import sys
|
||||||
|
import queue
|
||||||
|
import threading
|
||||||
|
|
||||||
class GameScreen(view.PygView):
|
class GameScreen(view.PygView):
|
||||||
|
|
||||||
|
@ -13,9 +15,9 @@ class GameScreen(view.PygView):
|
||||||
autoplay=autoplay, view_all_cards=view_all_cards)
|
autoplay=autoplay, view_all_cards=view_all_cards)
|
||||||
self.table.update_table.connect(self.draw_table)
|
self.table.update_table.connect(self.draw_table)
|
||||||
self.draw_table()
|
self.draw_table()
|
||||||
|
self.player_commands = queue.Queue(1)
|
||||||
def load_assets(self):
|
self.player_thread = threading.Thread(target=self.get_player_inputs)
|
||||||
pass
|
self.running = False
|
||||||
|
|
||||||
def draw_table(self, **kwargs):
|
def draw_table(self, **kwargs):
|
||||||
# TODO: optimise this by only redrawing the parts that changes
|
# TODO: optimise this by only redrawing the parts that changes
|
||||||
|
@ -35,29 +37,32 @@ class GameScreen(view.PygView):
|
||||||
|
|
||||||
pygame.display.flip()
|
pygame.display.flip()
|
||||||
|
|
||||||
|
def get_player_inputs(self):
|
||||||
|
while self.running:
|
||||||
|
if not self.player_commands.full():
|
||||||
|
player_cmd = input("Enter something:")
|
||||||
|
self.player_commands.put(player_cmd)
|
||||||
|
print('Finished')
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
running = True
|
self.running = True
|
||||||
while running:
|
#self.player_thread.start()
|
||||||
|
while self.running:
|
||||||
for event in pygame.event.get():
|
for event in pygame.event.get():
|
||||||
if event.type == pygame.QUIT:
|
if event.type == pygame.QUIT:
|
||||||
running = False
|
self.running = False
|
||||||
elif event.type == pygame.KEYDOWN:
|
elif event.type == pygame.KEYDOWN:
|
||||||
if event.key == pygame.K_ESCAPE:
|
if event.key == pygame.K_ESCAPE:
|
||||||
running = False
|
self.running = False
|
||||||
if event.key == pygame.K_p:
|
if event.key == pygame.K_p:
|
||||||
if not self.table.ongoing:
|
if not self.table.ongoing:
|
||||||
self.table.ongoing = True
|
self.table.ongoing = True
|
||||||
#if event.key == pygame.K_l:
|
#if event.key == pygame.K_l:
|
||||||
if self.table.ongoing:
|
if self.table.ongoing:
|
||||||
self.table.continue_game()
|
self.table.continue_game()
|
||||||
|
if not self.player_commands.empty():
|
||||||
milliseconds = self.clock.tick(self.fps)
|
player_cmd = self.player_commands.get()
|
||||||
#self.playtime += milliseconds / 1000.0
|
print("Player Command Received: " + player_cmd)
|
||||||
|
|
||||||
#self.draw_function()
|
|
||||||
|
|
||||||
#pygame.display.flip()
|
|
||||||
#self.screen.blit(self.background, (0, 0))
|
|
||||||
|
|
||||||
pygame.quit()
|
pygame.quit()
|
||||||
|
|
||||||
|
|
|
@ -705,7 +705,7 @@ class Player(cards.Deck):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
class MainPlayer(cards.PlayerDeck):
|
class MainPlayer(cards.Deck):
|
||||||
def __init__(self, *args, ai_component=None, **kwargs):
|
def __init__(self, *args, ai_component=None, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue