62 lines
1.3 KiB
Python
62 lines
1.3 KiB
Python
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(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):
|
|
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
|