Advertisement
Guest User

Untitled

a guest
Apr 30th, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. import Tkinter as tk
  2. import random
  3.  
  4. DIRECT_DICT = {'Up' : ( 0,-1),
  5. 'Down' : ( 0, 1),
  6. 'Left' : (-1, 0),
  7. 'Right' : ( 1, 0)}
  8.  
  9.  
  10. class square(object):
  11. def __init__(self, location, size):
  12. self.start_x, self.start_y = location
  13. self.width, self.height = size
  14. self.speed = 8
  15. self.rect = None
  16. self.pointRect = None
  17.  
  18. def update(self, canvas, keys):
  19. x, y = (0, 0)
  20. for key in DIRECT_DICT:
  21. if keys.get(key, False):
  22. x += DIRECT_DICT[key][0]*self.speed
  23. y += DIRECT_DICT[key][1]*self.speed
  24. if not self.rect:
  25. rect = (self.start_x, self.start_y,
  26. self.start_x+self.width, self.start_y+self.height)
  27. self.rect = canvas.create_rectangle(rect, outline="black", fill="brown", width=2)
  28. else:
  29. canvas.move(self.rect, x, y)
  30. if not self.pointRect:
  31. startX = random.randint(100,700)
  32. startY = random.randint(100,500)
  33. endX = startX + 50
  34. endY = startY + 50
  35. self.pointRect = canvas.create_rectangle(startX, startY, endX, endY, fill='#ff0000', outline='#000000')
  36.  
  37. if (rect.x+50)>(self.pointRect.x) and (rect.x)<(self.pointRect.x+50):
  38. if (self.rect.y+50)>(self.pointRect.y) and (self.rect.y)<(self.pointRect.y+50):
  39. self.pointRect.x = random.randint(100,700)
  40. self.pointRect.y = random.randint(100,700)
  41. # if touch(rect,pointRect):
  42.  
  43. #def touching(self, canvas, bbox, rect, pointRect):
  44. # rectCord = bbox(item=rect)
  45. # pointRect = bbox(item=pointRect)
  46. # print (rectCord)
  47.  
  48. #def touch(rect,pointRect):
  49.  
  50.  
  51. #return False
  52.  
  53. class Control(object):
  54. def __init__(self):
  55. self.root = tk.Tk()
  56. self.canvas = tk.Canvas(self.root, width=1024, height=768, background='grey')
  57. self.canvas.focus_set()
  58. self.canvas.bind("<Key>", self.key_pressed)
  59. self.canvas.bind("<KeyRelease>", self.key_released)
  60. self.canvas.pack()
  61. self.fps = 60
  62. self.player = square((250,250), (50,50))
  63. self.pressed = {}
  64.  
  65. def key_pressed(self, event):
  66. self.pressed[event.keysym] = True
  67.  
  68. def key_released(self, event):
  69. self.pressed[event.keysym] = False
  70.  
  71. def update(self):
  72. self.player.update(self.canvas, self.pressed)
  73. self.root.after(1000//self.fps, self.update)
  74.  
  75. def main(self):
  76. self.update()
  77. self.root.mainloop()
  78.  
  79.  
  80.  
  81. run_it = Control()
  82. run_it.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement