我试图创建一个地牢开发程序,我有许多模块,我正在使用。我有一个主模块,一个地板模块,一个房间模块,和一个瓷砖模块。地板是房间的网格,是瓷砖的网格。在我的楼层模块中,我导入了Room,这样我就可以存储一个二维的房间列表,但是我一直收到错误:
Traceback (most recent call last):
File "C:\Users\Rishabh\workspace\Bonding\Bonding\src\MainWork.py", line 15, in <module>
floor = Floor.Floor()
File "C:\Users\Rishabh\workspace\Bonding\Bonding\src\Floor.py", line 6, in __init__
rooms = [[Room.RoomClass(i, j) for i in range(7)] for j in range(7)]
File "C:\Users\Rishabh\workspace\Bonding\Bonding\src\Floor.py", line 6, in <listcomp>
rooms = [[Room.RoomClass(i, j) for i in range(7)] for j in range(7)]
File "C:\Users\Rishabh\workspace\Bonding\Bonding\src\Floor.py", line 6, in <listcomp>
rooms = [[Room.RoomClass(i, j) for i in range(7)] for j in range(7)]
NameError: global name 'Room' is not defined我的代码如下。
Mainwork.py
import Enemy
import Player
import Ribbon
import random
import Floor
import Room
import pygame as pyg
pyg.init()
screenWidth = 1280
screenHeight = 720
Player.health = 100
FPS = 60
floor = Floor.Floor()
floor.printgrid()
def mainLoop():
passFloor.py
class Floor(object):
import Room
def __init__(self):
rooms = [[Room.Room(i, j) for i in range(7)] for j in range(7)]
current = [0, 0]
roomStack = []
totalRooms = 49
visitedRooms = 1Room.py
class Room(object):
import Tile
def __init__(self, floorx, floory, layout=[[0 for i in range(13)] for j in range(7)]):
self.floorx = floorx
self.floory = floory
self.doors = [False, False, False, False] # N,S,E,W
for i in layout:
for j in i:
self.layout[i][j] = Tile.Tile(layout[i][j])Tile.py
class Tile(object):
def __init__(self, state):
self.state = state我根本不知道会有什么问题。提前感谢
发布于 2014-06-22 17:51:50
在Floor.py中,import Room是一个class属性,因此您必须使用类对象来访问它。试着用..。
import Room
class Floor(object):
def __init__(self):
# other code goes here ....https://stackoverflow.com/questions/24353960
复制相似问题