Я делаю игру Tower Defense в pygame, где я пытаюсь создать интерфейс Drag & Drop, где игрок может выбрать башню и разместить ее в любом желаемом месте. Затем я продвинул игру, обведя каждую башню кружком, обозначающим ее дальность. Проблема в том, что мне нужно, чтобы круг был в центре. Поскольку я использовал классы для башен, добавление координат x и y не помогло, потому что у меня были башни разного размера. Мне просто нужно знать, как найти центр изображения в pygame. Помощь будет оценена. Спасибо!
Вот часть моего кода классов
class DragProperty():
def __init__(self, img, x, y):
self.img = img
self.x = x
self.y = y
self.width = img.get_width()
self.height = img.get_height()
self.dragging = False
def draw(self):
screen.blit(self.img, (self.x, self.y))
def startdrag(self):
x = self.x
y = self.y
if mousex > self.x and mousex < self.x + self.width:
if mousey > self.y and mousey < self.y + self.height:
self.dragging = True
self.offset_x = x - mousex
self.offset_y = y - mousey
def beingdragged(self):
if self.dragging:
self.x = mousex + self.offset_x
self.y = mousey + self.offset_y
def stopdrag(self):
global balance
global canDrag
self.dragging = False
canDrag = False
balance -= 250
class AttackModule(DragProperty):
def EnenmyinRange(self):
pygame.draw.circle(screen, (0, 0, 0, 0), (self.x + 20, self.y + 20), 100)
def attack(self):
global balance
balance += 50
#objects
MenuArcher = AttackModule(archertower, 5, 580)
Поскольку у вас уже определены ширина и высота, вы можете:
self.x + self.width / 2
иself.y + self.height / 2