Использование метода перемещения из Canvas на объекте, созданном из другого классаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Использование метода перемещения из Canvas на объекте, созданном из другого класса

Сообщение Anonymous »

Я создал класс под названием Player в файле Player.py. Класс создает прямоугольник при вызове, и я пытаюсь использовать Canvas.move, используя созданный объект в моем файле Main.py. Поэтому я создал объект как player1 = player.player (). Я прохожу в координатах и ​​цвете, и объект создается просто отлично, но когда я пытаюсь использовать метод движения от игрока, он говорит, что Canvas не находится в движении. И ничего не примет. < /P>
from player import *
from tkinter import *
colors = ["blue","red","yellow","purple","black","gray"]
positions = [(10,20,30,40),(100,110,120,130),(200,210,220,230),(300,310,320,330),(400,410,420,430)]
other_positions = [(600,610,620,630),(700,710,720,730),(800,810,820,830),(900,910,920,930),(1000,1010,1020,1030)]

xx, yy = 0, 0

window = Tk()
canvas = Canvas(width=1200,height=1000,bg="green")

canvas.pack()
text = 10
xx,yy = 0,0

player1 = Player()
player1.player(canvas,10,20,30,50,colors[4])
plays = canvas.bbox(player1)
#player1.moved(player1,100,200)
canvas.move(player1,500,500)

from tkinter import *
from PIL import Image,ImageTk
import random
from tkinter import ttk
from pynput.mouse import Button, Controller,Listener

class Player:

def __init__(self):
# self.color = self.colors[c]
# self.positon = self.positions[p]
self.x = 0
self.y = 0

def on_click(selfx,y,button,pressed):

def on_click(x, y, button, pressed):
global xx, yy
xx, yy = x, y
print('{0} at {1}'.format(
'Pressed' if pressed else 'Released',
(x, y)))
if not pressed:
# Stop listener
return False

with Listener(on_click=on_click) as listener:
listener.join()
# here you can read xx and yy

def player(self,canvas,x,y,xx,yy,color):
canvas.create_rectangle(x,y,xx,yy,fill=color)
def moved(self,x,y):
canvas.move(player,x,y)
def position(self, pynput=None):

# with Listener(on_click=self.on_click) as listener:
#listener.join()
mouse = Controller()

< /code>
Я пытался использовать Self.canvas и пытался использовать переменную в качестве координат, но не повезло. Если я создаю функцию в main.py, чтобы создать прямоугольник и переместить ее, это нормально.

Подробнее здесь: https://stackoverflow.com/questions/797 ... ther-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»