Add Circle class
This commit is contained in:
58
game/osu.py
58
game/osu.py
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user