Add Circle class

This commit is contained in:
2019-03-18 19:13:56 +01:00
parent a88729ee0e
commit fbfbb93444

View File

@@ -1,9 +1,61 @@
import tkinter as tk
import color
class Circle:
def __init__(self, canvas: tk.Canvas, x, y, radius):
self.canvas = canvas
self.x = x
self.y = y
self.radius = radius
self.value = 9
self.circle_id = canvas.create_oval(x - radius, y - radius, x + radius, y + radius, outline = color.PURPLE, width = 2)
self.text_id = canvas.create_text(x, y, text = self.value, fill = color.PURPLE, font = (None, int(radius / 1.5)))
def delete(self):
self.canvas.delete(self.circle_id)
self.canvas.delete(self.text_id)
def decrement(self):
self.value -= 1
self.canvas.itemconfigure(self.text_id, text = self.value)
def isInside(self, x, y):
dx = x - self.x
dy = y - self.y
d = (dx**2 + dy**2)**0.5
return d <= self.radius
canvas = None
mouse_x = 0
mouse_y = 0
tick = 0
circle = None
# Main
def main(canvas: tk.Canvas):
pass
def main(c: tk.Canvas):
global canvas, circle
# Ini
canvas = c
c.bind('<Motion>', motion)
# Test
circle = Circle(c, 50, 50, 100)
circle.decrement()
# Loop
def loop(deltatime: float):
pass
global tick
print(circle.isInside(mouse_x, mouse_y))
tick += 1
# Mouse
def motion(event):
global mouse_x, mouse_y
mouse_x = event.x
mouse_y = event.y