player-camera.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. # Simula virtualmente um robo
  2. from robot import Robot
  3. from tag import TagClient
  4. from random import randint, random
  5. import signal, sys
  6. import math
  7. import time
  8. rid = 12
  9. run = False
  10. board = None
  11. tagplayer = -1
  12. client = TagClient('localhost', 10318)
  13. client.info(rid, 10, 10, 5, 5)
  14. px, py, course = None, None, None
  15. # Sinal de ctrl-c
  16. def signal_handler(signal, frame):
  17. client.stop()
  18. sys.exit(0)
  19. signal.signal(signal.SIGINT, signal_handler)
  20. players = {}
  21. while not client.quit:
  22. time.sleep(0.1)
  23. # nao recebeu informacoes do campo
  24. if client.getFieldInfo() is None:
  25. continue
  26. elif px is None:
  27. board = client.getFieldInfo()
  28. px, py = board[0]*random(), board[1]*random()
  29. course = math.pi*2.0*random()
  30. # jogo esta pausado
  31. if client.getStatus() is False:
  32. players = {}
  33. continue
  34. # nao recebeu informacoes do pegador
  35. if client.getTagInfo() is None:
  36. continue
  37. # verifica se ha posicoes novas
  38. newposs = client.getPosition()
  39. for info in newposs:
  40. posx, posy, courser, idd, xsize, ysize, xtag, ytag = info
  41. if idd != rid:
  42. players[idd] = [posx, posy]
  43. else:
  44. # atualiza posicao
  45. px, py, course = posx, posy, courser
  46. tag, interval = client.getTagInfo()
  47. pos = [players[p] for p in players]
  48. if time.time() <= interval:
  49. # comportamento de fuga
  50. if tag in players and tag != rid:
  51. # foge se nao for pegador
  52. pass
  53. else:
  54. if len(pos) >= 1 and tag == rid:
  55. # acoes caso seja o pegador
  56. pass
  57. if tag != rid:
  58. #acoes de fuga
  59. pass