Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Tkinter as tk
- import random
- DIRECT_DICT = {'Up' : ( 0,-1),
- 'Down' : ( 0, 1),
- 'Left' : (-1, 0),
- 'Right' : ( 1, 0)}
- class square(object):
- def __init__(self, location, size):
- self.start_x, self.start_y = location
- self.width, self.height = size
- self.speed = 8
- self.rect = None
- self.pointRect = None
- def update(self, canvas, keys):
- x, y = (0, 0)
- for key in DIRECT_DICT:
- if keys.get(key, False):
- x += DIRECT_DICT[key][0]*self.speed
- y += DIRECT_DICT[key][1]*self.speed
- if not self.rect:
- rect = (self.start_x, self.start_y,
- self.start_x+self.width, self.start_y+self.height)
- self.rect = canvas.create_rectangle(rect, outline="black", fill="brown", width=2)
- else:
- canvas.move(self.rect, x, y)
- if not self.pointRect:
- startX = random.randint(100,700)
- startY = random.randint(100,500)
- endX = startX + 50
- endY = startY + 50
- self.pointRect = canvas.create_rectangle(startX, startY, endX, endY, fill='#ff0000', outline='#000000')
- if (rect.x+50)>(self.pointRect.x) and (rect.x)<(self.pointRect.x+50):
- if (self.rect.y+50)>(self.pointRect.y) and (self.rect.y)<(self.pointRect.y+50):
- self.pointRect.x = random.randint(100,700)
- self.pointRect.y = random.randint(100,700)
- # if touch(rect,pointRect):
- #def touching(self, canvas, bbox, rect, pointRect):
- # rectCord = bbox(item=rect)
- # pointRect = bbox(item=pointRect)
- # print (rectCord)
- #def touch(rect,pointRect):
- #return False
- class Control(object):
- def __init__(self):
- self.root = tk.Tk()
- self.canvas = tk.Canvas(self.root, width=1024, height=768, background='grey')
- self.canvas.focus_set()
- self.canvas.bind("<Key>", self.key_pressed)
- self.canvas.bind("<KeyRelease>", self.key_released)
- self.canvas.pack()
- self.fps = 60
- self.player = square((250,250), (50,50))
- self.pressed = {}
- def key_pressed(self, event):
- self.pressed[event.keysym] = True
- def key_released(self, event):
- self.pressed[event.keysym] = False
- def update(self):
- self.player.update(self.canvas, self.pressed)
- self.root.after(1000//self.fps, self.update)
- def main(self):
- self.update()
- self.root.mainloop()
- run_it = Control()
- run_it.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement