2017-02-12 5 views
-1

поэтому ... я был в тупике по этой проблеме в течение некоторого времени. После изучения онлайн я не нашел ответа. когда я вызвать функцию: spawnLoc.getX1 от игрока нарисовать линию, я распечатать его, чтобы увидеть, что это и печатает это: и я ожидал, что это напечатать номер 30. Можно ли протянуть рукуpython возвращает имя функции не значение

import simplegui 

#charictor position decliration 
x1 = 30 
x2 = 30 
y1 = 35 
y2 = 35 

class Room: 
    def __init__(self, roomName, sizeX=0, sizeY=0): 
     self.roomName = roomName 
     self.sizeX = sizeX 
     self.sizeY = sizeY 

class player: 
    def __init__(self, name, spawnLoc): 
     self.name = name 
     self.spawnLoc = spawnLoc 

    def draw(canvas, spawnLoc): 
     print spawnLoc.getX1 
     print spawnLoc.getX2 
     print spawnLoc.getY1 
     print spawnLoc.getY2 
     canvas.draw_line((spawnLoc.getX1, spawnLoc.getX2), (spawnLoc.getY1,  spawnLoc.getY2), 6, 'Red') 

class spawn: 
    def __init__(self, spawnName, spawmX1,spawmX2, spawmY1, spawmY2): 
     self.name = spawnName 
     self.x1 = spawmX1 
     self.x2 = spawmX2 
     self.y1 = spawmY1 
     self.y2 = spawmY2 

    def getX1(self): 
     return x1 

    def getX2(self): 
     return x2 

    def getY1(self): 
     return self.y1 

    def getY2(self): 
     return self.y2 

#def Collisions(rooms, selectedPlayer): 
    #for Room in rooms 
    #if room.x == player.x 

rooms = [ 
     Room('Ticket Hall', 300, 500) 
     ] 

#spawns = [spawn('first', x1, x2, y1, y2)] 
spawn('first', x1, x2, y1, y2) 
player1 = [ player('one', spawn)] 
#player('one', spawns) 

# Handler to draw on canvas 
def draw(canvas): 
    #room draw 
    canvas.draw_line((0, 0), (0, 500), 6, 'Red') 
    canvas.draw_line((0, 0), (300, 0), 6, 'Red') 
    canvas.draw_line((300, 0), (300, 500), 6, 'Red') 
    canvas.draw_line((0, 500), (300, 500), 6, 'Red') 
    #player draw 
    #canvas.draw_line((x1, x2), (y1, y2), 5, 'Red') 
    player.draw(canvas, spawn) 

# Create a frame and assign callbacks to event handlers 
frame = simplegui.create_frame("Home", 600, 600) 
#frame.add_button("Click me", click) 
frame.set_draw_handler(draw) 

# Start the frame animation 
frame.start() 
+0

Не нужно использовать все эти методы 'get'. Просто получить доступ к атрибутам напрямую. – Daniel

ответ

1

Вы забываете круглые скобки.

spawnLoc.getX1 

Является функцией ручки.

spawnLoc.getX1() 

Вызывает функцию.

+0

Спасибо, что сделал. полностью изъято, тогда XD – Jhon122

Смежные вопросы