Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python, Как сделать линию, которая соединяет центр экрана и курсор мыши?

Umeshka Ученик (220), на голосовании 2 месяца назад
Я использую python. Мне нужен скрипт, рисующий красный отрезок, который соединяет центр экрана и координаты курсора мыши. Отрезок перемещается при смене координат мыши. Линии, которые были до движения мыши, не должны оставаться. (грубо говоря старые линии пропадают, только перемещение)

Для меня главное, чтобы скрипт не мешал другим приложениям. То есть я хочу иметь возможность свободно пользоваться клавишами на клавиатуре и мышке. Например: я открываю браузер и могу свободно пользоваться им, но я также вижу и линию, которая следует за курсором мыши.

Также желательно, чтобы линия рисовалась не до мышки, а шла до конца экрана.

Мне нужен этот скрипт для 2D-игры. Этот скрипт служит для меня линией обзора персонажа, это для удобства.
Голосование за лучший ответ
꧁Tester꧂ ︎ Мудрец (19146) 3 месяца назад
Я не пойму. Линия должна быть в самом приложении или вообще отдельно?
Просто это две разные задачи по сложности.
В окне если то вот например.


 import pygame 
import pyautogui

pygame.init()

# Размеры экрана
screen_width, screen_height = pyautogui.size()
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Линия обзора")

# Цвет линии
line_color = (255, 0, 0) # Красный

# Основной цикл игры
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

# Получение координат курсора мыши
mouse_x, mouse_y = pygame.mouse.get_pos()

# Центр экрана
center_x = screen_width // 2
center_y = screen_height // 2

# Определение направления линии
if mouse_x > center_x:
end_x = screen_width
else:
end_x = 0
if mouse_y > center_y:
end_y = screen_height
else:
end_y = 0

# Очистка экрана
screen.fill((0, 0, 0)) # Черный фон

# Рисование линии
pygame.draw.line(screen, line_color, (center_x, center_y), (end_x, end_y), 2)

# Обновление экрана
pygame.display.flip()

pygame.quit()
UmeshkaУченик (220) 3 месяца назад
Я на pygame тоже пробовал, но я не могу вывести это окно нормально.
Приведу пример:
Я запускаю код, появляется отрезок с прозрачным фоном, который работает, как я описал выше. Я могу зайти в браузер и что-то в нём делать (как-то взаимодействовать), а сама эта линия никуда не пропадает (не уходит за окно браузера)
Чтобы было примерно так:
꧁Tester꧂ ︎ Мудрец (19146) Umeshka, попробуй в ткинтере сделать. Там можно указать в атрибутах окна прозрачный цвет, к примеру черный. Причем он не просто прозрачный будет, а именно что насквозь, что даже мышкой не тыкнешь. Я так к примеру гифки сделал, чтобы можно было по экрану водить. Показать?
꧁Tester꧂ ︎Мудрец (19146) 3 месяца назад
Umeshka Ученик (220) ꧁Tester꧂ ︎, попробовал сделать, заготовка была, так как на tkinter тоже пробовал) Но у меня работает эта фигня, только когда я мышку увожу в край экрана. Если по другому приложению буду водить мышкой, то ничего не работает)
Похожие вопросы