Точка не определена, хотя я импортировал графику
Так что это мой класс для игры под названием Zombie Dice.
Я импортировал графику, но я получаю эту ошибку, и я понятия не имею, почему. Пожалуйста, объясните некоторые возможности для меня.
"File "<pyshell#0>", line 1, in <module>
Game()
File "C:\Users\Brandon\Desktop\FinalProject3.py", line 17, in Game
Yellow = DieViewYellow(Gamewindow, Point(95,75),20)
File "C:\Users\Brandon\Desktop\DieViewYellow.py", line 83, in __init__
p1 = Point(x-25, y-25)
NameError: name 'Point' is not defined">
Вот мой класс просмотра Die, который дает мне проблему, даже если графика импортируется
#Die View Yellow
from graphics import *
class DieViewYellow:
def __init__(self, win, center, value):
"""Create a view of a die, e.g.:
d1 = GDie(myWin, Point(40,50), 20)
creates a die centered at (40,50) having sides
of length 20."""
# first define some standard values
self.win = win
#self.background = Color # color of die face
#self.foreground = Color2 # color of the pips
# create a square for the face
if value==0:
x, y = center.getX(), center.getY()
p1 = Point(x-25, y-25)
p2 = Point(x+25, y+25)
rect = Rectangle(p1,p2)
rect.draw(win)
rect.setFill('yellow')
if value == 1:
x, y = center.getX(), center.getY()
p1 = Point(x-25, y-25)
p2 = Point(x+25, y+25)
rect = Rectangle(p1,p2)
rect.draw(win)
rect.setFill('yellow')
self.Brain=Text(Point(95,75),'B')
self.Brain.draw(self.win)
elif value == 2:
x, y = center.getX(), center.getY()
p1 = Point(x-25, y-25)
p2 = Point(x+25, y+25)
rect = Rectangle(p1,p2)
rect.draw(win)
rect.setFill('yellow')
self.Brain=Text(Point(95,75),'B')
self.Brain.draw(self.win)
elif value == 3:
x, y = center.getX(), center.getY()
p1 = Point(x-25, y-25)
p2 = Point(x+25, y+25)
rect = Rectangle(p1,p2)
rect.draw(win)
rect.setFill('yellow')
self.Shotgun=Text(Point(95,75),'S')
self.Shotgun.draw(self.win)
elif value == 4:
x, y = center.getX(), center.getY()
p1 = Point(x-25, y-25)
p2 = Point(x+25, y+25)
rect = Rectangle(p1,p2)
rect.draw(win)
rect.setFill('yellow')
self.Foot=Text(Point(95,75),'F')
self.Foot.draw(self.win)
elif value == 5:
x, y = center.getX(), center.getY()
p1 = Point(x-25, y-25)
p2 = Point(x+25, y+25)
rect = Rectangle(p1,p2)
rect.draw(win)
rect.setFill('yellow')
self.Foot=Text(Point(95,75),'F')
self.Foot.draw(self.win)
else:
x, y = center.getX(), center.getY()
p1 = Point(x-25, y-25)
p2 = Point(x+25, y+25)
rect = Rectangle(p1,p2)
rect.draw(win)
rect.setFill('yellow')
self.Shotgun=Text(Point(95,75),'S')
self.Shotgun.draw(self.win)
1 ответ
Вы не показали весь свой код, но я считаю, что у вас есть что-то вроде этого в качестве оператора import:
import graphics
или же
from module import graphics
Вы пытаетесь использовать Point
учебный класс:
p2 = Point(x+25, y+25) # This fails.
Но Python этого не знает Point
живет внутри graphics
модуль. Вам нужно будет сказать, что всякий раз, когда вы используете Point
:
p2 = graphics.Point(x+25, y+25) # This works fine!
Вы можете импортировать Point
прямо из graphics
если вы хотите использовать его без graphics.
префикс.
from graphics import Point
p2 = Point(x+25, y+25) # This works fine now!
редактировать
Вопрос был отредактирован, поэтому этот ответ сейчас немного излишний. Я оставлю это все же.