fork download
  1. SPRITES = { 1.0 : sprite1,
  2. 2.0 : sprite2,
  3. 3.0 : sprite3,
  4. 4.0 : sprite4 }
  5.  
  6. OPACITY = { 1.0 : value1,
  7. 2.0 : value2,
  8. 3.0 : value3,
  9. 4.0 : value4 }
  10.  
  11. class NwClient(object):
  12. def __init__(self,game):
  13. # Game — сама игра. Передаётся сюда для того, чтобы можно было
  14. # создавать события.
  15. self.game = game
  16. self.nwlisten()
  17.  
  18. def nwlisten(self):
  19. # Ждёт сообщения
  20. while True:
  21. msg = recvfrom(buf)
  22. # как только получено сообщение (сокет блокирующий),
  23. # создаётся игровое событие, которое делает что нужно с
  24. # полченными данными
  25. self.game.dispatch_event('on_rec',msg)
  26.  
  27.  
  28. class Game(pyglet.window):
  29. # Сама игра. Имеется матрица определённого размера, по которой
  30. # каждый тик игра пробегает и строит нужные клетки в нужных местах
  31. # в зависимости от значения элемента, всего 5 разных значений,
  32. # при этом если равно 5 — не нужно рисовать ничего.
  33. # Снаружи есть словарь с самим спрайтами, содержит только
  34. # 4 ключа, так как никакого 5-ого спрайта нет.
  35. # OPACITY — словаь значений прозрачности, то же самое, как и со спрайтами,
  36. # только 4 значения.
  37. def __init__(self):
  38. self.matrix = np.round(np.random(6,6)*5)
  39.  
  40. def on_draw(self):
  41. # Перерисовка окна. Выполняется при каждом тике часов.
  42. spritesbatch = []
  43. for i in range(0,6):
  44. for j in range(0,6):
  45. if self.matrix[i,j] < 5:
  46. sprite = pyglet.sprite.Sprite(SPRITES[self.matrix[i,j],...)
  47. sprite.opacity = OPACITY[self.matrix[i.j],...)
  48. sprites.append(sprite)
  49.  
  50. spritesbatch.draw()
  51.  
  52. def on_rec(self,msg):
  53. # В этом событии приходят координаты клеток и на какие значения
  54. # нужно поменять.
  55. # Для тестов можно просто новую рандомную матрицу создать.
  56. self.matrix = np.round(np.random(6,6)*5)
  57.  
  58. def on_key_press(self,key,modifier):
  59. # Создаём абсолютно то же самое событие, что и клиент
  60. msg = ""
  61. self.dispatch_event('on_rec',msg)
  62.  
  63. game = Game()
  64. ntwk = NwClient(game)
  65. pyglet.app.run()
  66.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Traceback (most recent call last):
  File "/usr/lib/python3.2/py_compile.py", line 119, in compile
    optimize=optimize)
  File "./prog.py", line 46
    sprite = pyglet.sprite.Sprite(SPRITES[self.matrix[i,j],...)
                                                              ^
SyntaxError: invalid syntax

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python3.2/py_compile.py", line 123, in compile
    raise py_exc
py_compile.PyCompileError:   File "./prog.py", line 46
    sprite = pyglet.sprite.Sprite(SPRITES[self.matrix[i,j],...)
                                                              ^
SyntaxError: invalid syntax

stdout
Standard output is empty