質問がありますが、どの言語を使用すればよいかわかりません。グローバルを使用せずに、他のモジュールからメイン ドライバー モジュールで定義されたキャンバスにアクセスする方法について、少し混乱しています。たとえば、driver.py でキャンバスをインスタンス化しましたが、Level.py から描画しようとしています。コンテキストとしては、最終的にはテキスト ファイルを読み取り、そこから抽出したデータに基づいて RPG 風のゲーム用にマップを描画します。これが私のコードです:
Driver.py:
import tkinter
import Level
HEIGHT = 1024
WIDTH = 800
TILE_SIZE = 32
VERTICAL_TILES = HEIGHT//TILE_SIZE
HORIZONTAL_TILES = WIDTH//TILE_SIZE
root = tkinter.Tk()
root.title("RPG Land")
window = tkinter.Canvas(root,width= WIDTH, height=HEIGHT )
lev = Level.LevelMgr()
lev.loadLevel()
lev.drawLevel()
window.pack()
root.mainloop()
Annnd Level.py:
import tkinter
from driver import window
class LevelMgr:
def __init__(self):
self.levelData = []
self.visibleLevel = []
self.tileColors = {
0 : 'empty',
1 : 'wall',
2 : 'bush' }
def loadLevel(self):
fyle = open('levels/level1','r')
count = 0
for lyne in fyle:
self.levelData.append(lyne)
count += 1
def drawLevel(self):
currentY = 0
currentX = 0
for col in self.levelData:
currentY += 32
for t in col:
window.create_rectangle(currentX, currentY, 32, 32, fill="blue")
currentX += 32
プログラムをより適切に構成する方法についてのアドバイスもいただければ幸いです。他の名前空間にアクセスする場合、適切な方法は何ですか? level.py に「ドライバーをインポート」するだけでなく、driver.py に「レベルをインポート」する必要がありますか? そのようなプログラムの基本的な構造について、私は少し混乱しています。