Mercurial > zrpn
changeset 46:02d26987c201
added client
| author | Szymon Wróblewski <bluex0@gmail.com> |
|---|---|
| date | Sat, 07 Jul 2012 18:15:42 +0200 |
| parents | a3a29126cb9a |
| children | f6e93c83532f |
| files | zrpn/client.py zrpn/main.py zrpn/server.py |
| diffstat | 3 files changed, 54 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/zrpn/client.py Sat Jul 07 18:15:42 2012 +0200 @@ -0,0 +1,45 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import pygame +import sys +import logging + +import pygame_network as net +import pygame_network.event + +import board +import display +import packets + +class Client(object): + def __init__(self, address, port): + self.display = None + self.connected = False + self.client = net.Client() + self.connection = self.client.connect(address, port) + + def run(self): + while True: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + sys.exit() + elif event.type == pygame.MOUSEBUTTONDOWN: + x, y = event.pos[0] // 24, event.pos[1] // 24 + self.connection.net_click(x, y) + elif event.type == net.event.NETWORK: + if event.net_type == net.event.NET_RECEIVED: + if event.p_type == packets.INIT: + self.display.Display(event.packet.board, event.packet.sprites) + elif event.net_type == packets.ANIMATION: + self.display.do_animations((event.packet,)) + self.display.frame() + self.client.step() + + +def main(): + logging.basicConfig(level=logging.DEBUG) + Client('localhost', 10000).run() + +if __name__ == '__main__': + main()
--- a/zrpn/main.py Sat Jul 07 18:06:19 2012 +0200 +++ b/zrpn/main.py Sat Jul 07 18:15:42 2012 +0200 @@ -4,12 +4,9 @@ import pygame import sys -import pygame_network as net -import pygame_network.event - import board import display -import packets + class Game(object): def __init__(self): @@ -31,33 +28,8 @@ self.display.do_animations(animations) self.display.frame() -class Client(object): - def __init__(self, address, port): - self.display = None - self.connected = False - self.client = net.Client() - self.connection = self.client.connect(address, port) - - def run(self): - while True: - for event in pygame.event.get(): - if event.type == pygame.QUIT: - sys.exit() - elif event.type == pygame.MOUSEBUTTONDOWN: - x, y = event.pos[0] // 24, event.pos[1] // 24 - self.connection.net_click(x, y) - elif event.type == net.event.NETWORK: - if event.net_type == net.event.NET_RECEIVED: - if event.p_type == packets.INIT: - self.display.Display(event.packet.board, event.packet.sprites) - elif event.net_type == packets.ANIMATION: - self.display.do_animations((event.packet,)) - self.display.frame() - self.client.step() - def main(): - #Client('localhost', 10000).run() Game().run() if __name__ == '__main__':
--- a/zrpn/server.py Sat Jul 07 18:06:19 2012 +0200 +++ b/zrpn/server.py Sat Jul 07 18:15:42 2012 +0200 @@ -1,17 +1,21 @@ +import logging import pygame_network as net import board import packets + class ClientReceiver(net.Receiver): def net_click(self, channel, packet_id, packet): - self.server.board.kill_one(packet) - animations = self.server.board.update() + animations = self.server.board.kill_one(packet) + animations.extend(self.server.board.update()) for connection in self.server.peers.values(): - connection.net_animation() + for animation in animations: + connection.net_animation(*animation) def on_connected(self): self.connection.net_init(self.server.board.board, self.server.board.cells) + class Server(object): def __init__(self, port): self.server = net.Server(port=port) @@ -24,6 +28,7 @@ def main(): + logging.basicConfig(level=logging.DEBUG) Server(10000).run() if __name__ == '__main__':
