Нужно передать значение playerX и playerY из фунуции joysic файла virtjoysic в файл main.py что бы прверять находится ли игрок на определённой клетке

как это сделать? вот весь код

main.py

import pygame as pg        
import math                 
import random
from pygame import image
from virtjoystick import joystic
sc = pg.display.set_mode((1720,1080), pg.FULLSCREEN | pg.SCALED)

istouch = False     #Создаем переменную чтобы знать нажата мышь\палец или нет
mouse2 = (-1000,-1000)      #Переменная для фиксированого значения мыши

playerX = 200
playerY = 200
while running: 
    mouse = pg.mouse.get_pos()
    for backend in range(30):
        for img in range(35):
            back_rect = back.get_rect(
            bottomright=(img*47, backend*47))
            sc.blit(back, back_rect)
    for event in pg.event.get():
        if event.type == pg.QUIT:
            running = False
        if event.type == pg.MOUSEBUTTONDOWN:        #Если мышь\палец нажата
            istouch = True      #Присваиваем истину
            mouse2 = mouse 
        elif event.type == pg.MOUSEBUTTONUP:        #Если мышь\палец отпускаются
            istouch = False     #Присваиваем ложь
    sc.blit(player, player_rect)
    sc.blit(hud_surf, hud_rect)
    joystic(istouch,sc, mouse, mouse2, playerX, playerY)
    player_rect = player.get_rect(
        bottomright=(ЗНАЧЕНИЯ playerX,playerY ПЕРЕДАННІЕ ИЗ ФУНКЦИИ joystic ))
    clock.tick(60)          #Ограничиваем кадры в секунду до 60
    pg.display.update()     #Обновляем поверхность экрана

#main.py

import pygame as pg         
import math                 
import random
from pygame import image
from virtjoystick import joystic
sc = pg.display.set_mode((1720,1080), pg.FULLSCREEN | pg.SCALED)

istouch = False     #Создаем переменную чтобы знать нажата мышь\палец или нет
mouse2 = (-1000,-1000)      #Переменная для фиксированого значения мыши

playerX = 200
playerY = 200
while running: 
    mouse = pg.mouse.get_pos()
    for backend in range(30):
        for img in range(35):
            back_rect = back.get_rect(
            bottomright=(img*47, backend*47))
            sc.blit(back, back_rect)
    for event in pg.event.get():
        if event.type == pg.QUIT:
            running = False
        if event.type == pg.MOUSEBUTTONDOWN:        #Если мышь\палец нажата
            istouch = True      #Присваиваем истину
            mouse2 = mouse 
        elif event.type == pg.MOUSEBUTTONUP:        #Если мышь\палец отпускаются
            istouch = False     #Присваиваем ложь
    sc.blit(player, player_rect)
    sc.blit(hud_surf, hud_rect)
    joystic(istouch,sc, mouse, mouse2, playerX, playerY)
    player_rect = player.get_rect(
        bottomright=(ЗНАЧЕНИЯ playerX,playerY ПЕРЕДАННІЕ ИЗ ФУНКЦИИ joystic ))
    clock.tick(60)          #Ограничиваем кадры в секунду до 60
    pg.display.update()     #Обновляем поверхность экрана

#virtjoystick.py

import pygame as pg
import math
def joystic(istouch,sc, mouse, mouse2, playerX, playerY):
    if istouch:     #Если мышь\палец нажаты
        pg.draw.circle(sc, (100,100,100), mouse2, 60)       #Рисуем круг в нажатом фиксированом месте
        cur_mouse = mouse[0] - mouse2[0], mouse[1] - mouse2[1]      #Определяем позицию мыши\пальца относительно середины джойстика
        angler = math.atan2(cur_mouse[0], cur_mouse[1])     #Определяем угол курсора джойстка относительно середины джойстика в радианах
        distance  = math.sqrt(pow(cur_mouse[0], 2) + pow(cur_mouse[1], 2))      #Определяем расстояние от середины джойсткеа до курсора джойстка
        joy_pos = mouse2
        if distance > 55:       #Если расстояние от середины джойстика до курсора джойстика больше 80
            si = math.sin(angler)       #Определяем синус угла курсора относительно середины джойстика
            co = math.cos(angler)       #Определяем косинус угла курсора относительно середины джойстика
            joy_pos = (math.degrees(si)*1+mouse2[0], math.degrees(co)*1+mouse2[1])      #устанавливаем позицию курсора джойстика с множителем 1.4
            distance = 55       #Устанавливаем расстояние до курсора джойстка относительно середины джойсткка 80
        else:
            joy_pos = mouse
        pg.draw.circle(sc, (234,234,234), joy_pos, 25)      #Рисуем курсор джойстика на экране по позиции переменной joy_pos
        playerX += math.sin(angler)*distance/10
        playerY += math.cos(angler)*distance/10

Ответы (1 шт):

Автор решения: CrazyElf

Можно же возвращать из функции всё, что хотите, и получать это в месте вызова функции:

playerX, playerY = joystic(istouch,sc, mouse, mouse2, playerX, playerY)
...
def joystic(istouch,sc, mouse, mouse2, playerX, playerY):
    if istouch:     #Если мышь\палец нажаты
    ...
    return playerX, playerY
→ Ссылка