- commit
- b520d7659ddabc4966c418ec03c62b68523ebf24
- parent
- 349ec97a851996249927ca70e95f5fa639000cdf
- Author
- Tobias Bengfort <tobias.bengfort@gmx.net>
- Date
- 2014-10-07 21:04
first client UI draft
Diffstat
| M | laneya/client.py | 43 | ++++++++++++++++++++++++++++++------------- |
1 files changed, 30 insertions, 13 deletions
diff --git a/laneya/client.py b/laneya/client.py
@@ -5,37 +5,54 @@ from twisted.internet.endpoints import TCP4ClientEndpoint 5 5 from twisted.internet import reactor 6 6 from twisted.internet import task 7 7 -1 8 from dirtywords.pygame_core import Screen -1 9 8 10 import protocol 9 11 import deferred as q 10 12 -1 13 screen = Screen(40, 60) -1 14 screen.border() -1 15 11 16 12 17 class Client(protocol.ClientProtocolFactory): -1 18 def __init__(self): -1 19 protocol.ClientProtocolFactory.__init__(self) -1 20 self.position_x = 0 -1 21 self.position_y = 0 -1 22 13 23 def updateReceived(self, action, **kwargs): # TODO14 -1 print(action, kwargs)-1 24 if action == 'position': -1 25 screen.delch(self.position_y, self.position_x) -1 26 self.position_x = kwargs['x'] -1 27 self.position_y = kwargs['y'] -1 28 screen.putstr(self.position_y, self.position_x, 'X') -1 29 screen.refresh() 15 30 16 31 def move(self, direction): 17 32 return self.sendRequest('move', direction=direction) 18 3319 -1 def connected(self, protocol): # TODO20 -1 self.move('south')21 -1 reactor.callLater(2, lambda: self.move('west'))22 -1 reactor.callLater(4, lambda: self.move('north'))23 -1 reactor.callLater(6, lambda: self.move('east'))24 -1 reactor.callLater(8, lambda: self.move('stop'))25 -126 -1 reactor.callLater(10, lambda: self.sendRequest('logout'))27 -128 34 def mainloop(self): # TODO29 -1 pass-1 35 for event in screen.get_key_events(): -1 36 if event['key'] == ord('j'): -1 37 self.move('south' if event['type'] == 'keydown' else 'stop') -1 38 elif event['key'] == ord('k'): -1 39 self.move('north' if event['type'] == 'keydown' else 'stop') -1 40 elif event['key'] == ord('l'): -1 41 self.move('east' if event['type'] == 'keydown' else 'stop') -1 42 elif event['key'] == ord('h'): -1 43 self.move('west' if event['type'] == 'keydown' else 'stop') -1 44 elif event['key'] == ord('q'): -1 45 self.sendRequest('logout') -1 46 screen.cleanup() -1 47 reactor.stop() 30 48 31 49 32 50 def main():33 -1 log.startLogging(sys.stdout)-1 51 # log.startLogging(sys.stdout) 34 52 client = Client() 35 53 client.setup('testuser') 36 54 endpoint = TCP4ClientEndpoint(reactor, 'localhost', 5001) 37 55 d = endpoint.connect(client)38 -1 q.fromTwisted(d).then(client.connected, log.err)39 56 40 57 mainloop = task.LoopingCall(client.mainloop) 41 58 mainloop.start(0.1)