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 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
|
# Main
|
||||||
def main(canvas: tk.Canvas):
|
def main(c: tk.Canvas):
|
||||||
pass
|
global canvas, circle
|
||||||
|
|
||||||
|
# Ini
|
||||||
|
canvas = c
|
||||||
|
c.bind('<Motion>', motion)
|
||||||
|
|
||||||
|
# Test
|
||||||
|
circle = Circle(c, 50, 50, 100)
|
||||||
|
circle.decrement()
|
||||||
|
|
||||||
# Loop
|
# Loop
|
||||||
def loop(deltatime: float):
|
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