Я работаю над проектом, который позволяет вам выбирать тип ниндзя, перемещаться и атаковать врагов. У меня есть выбор ниндзя, но я не уверен, как перемещать все объекты, которые создают ниндзя. Я положил несколько объектов в функцию c.move, но я получаю эту ошибку:Я пытаюсь переместить все объекты сразу, без успеха
c.move(self.hair,self.hair2,self.head,self.neck,self.chest,self.leg1,self.leg2,self.arm1,self.arm2,0,-5)
File "C:\Users\mrden\AppData\Local\Programs\Python\Python35\lib\tkinter\__init__.py", line 2431, in move
self.tk.call((self._w, 'move') + args)
_tkinter.TclError: wrong # args: should be ".2417470327664 move tagOrId xAmount yAmount
Вот мой пример кода:
#Ninja Game
from tkinter import *
root = Tk()
c=Canvas(width=800,height=600)
c.pack()
d = ""
class Ninja:
def __init__(self,clan,):
self.clan = clan
if self.clan == "Uchiha":
self.hair = c.create_polygon(52,485,52,452,99,452,99,485)
self.head=c.create_rectangle(55,455,95,495,fill="white")
self.hair2= c.create_polygon(74,452,83,477,99,452,fill="black")
if self.clan == "Uzamaki":
self.hair = c.create_polygon(52,485,52,452,99,452,99,485,fill="#FF3232")
self.head=c.create_rectangle(55,455,95,495,fill="white")
self.neck = c.create_rectangle(59,495,91,499)
self.chest= c.create_rectangle(55,499,95,555)
self.leg1 = c.create_rectangle(55,555,71,599)
self.leg2 = c.create_rectangle(78,555,95,599)
self.arm1=c.create_rectangle(42,499,55,555)
self.arm2=c.create_rectangle(95,499,108,555)
def move(self):
if d == "U":
if self.clan == "Uzamaki":
c.move(self.hair,self.head,self.neck,self.chest,self.leg1,self.leg2,self.arm1,self.arm2,0,-5)
if self.clan == "Uchiha":
c.move(self.hair,self.hair2,self.head,self.neck,self.chest,self.leg1,self.leg2,self.arm1,self.arm2,0,-5)
n = Ninja("Uchiha")
def move_p(event):
global d
if event.keysym == "Up":
d = "U"
n.move()
c.bind_all("<KeyPress-Up>",move_p)
Oakley @ Брайан Спасибо! –