Как получить координаты центра изображения в pygame

Я делаю игру 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)

См. также:  Вывод Console.WriteLine из приложений Windows WPF в фактическую консоль
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. PradMaster

    Поскольку у вас уже определены ширина и высота, вы можете: self.x + self.width / 2 и self.y + self.height / 2

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: