前提・実現したいこと
課題で、pythonを使ったシューティングゲームの制作をしています。
現在ビューにあたるクラス内にTkinterのCanvasウィジェットを配置しようとしています。ゲームの完成形は大体このような感じです。
![
(敵の発生はランダムです。自機は、敵テーブルを回転させ敵を打ちます。上に長いタイトルがあります。)
予めビューの実装用のクラスが概念クラス合わせて4つ用意されておりそれを必ず使う必要があります。
まず、プレイ画面(左の自機や敵がある所)を表すCanvasを展開したいと思っています。
発生している問題・エラーメッセージ
Canvasの定義と展開を行ったのですが、Canvasが表示されません。
該当のソースコード
python
1<入力> 2class PlayScreen(Parentclass): 3 def __init__(self, root, size, width, height, **kwargs): 4 self._root = root 5 self._play = tk.Canvas(root, width = 7, height = 7, text = "テスト") 6 self._play.pack(side = tk.WEST, bg = "grey") 7 8 def grid_paint(self, entities): #いったんplayの定義と展開を__init__に入れました。 9 pass 10 11 def player_paint(self): 12 self._play.create_text(position = (3,1), text = "自") 13 14... 15... 16 17def ma_in(): 18 root = tk.Tk() 19 root.title("シューティングゲーム") 20 app = start_game(root) #ゲームを開始するために教材側から渡されているものなので、間違いはないと思います。ま 21 root.mainloop() た、今回の質問に直接の関係はないです。 22 23 24<出力> 25空白
試したこと
テスト用のテキストを載せたり、背景色を変えてCanvasの存在を分かりやすくしたりしてみたのですが出力画面は真っ白なので、Canvasの定義か展開時に何か間違いが起きているのだと思います。自分なりに構文を調べても特に手本と間違った箇所は見つかりませんでした。
尚、同じTkinterのウィジェットであるLabelで作ったタイトルはきちんと表示されましたので、Tkinterのインポートが上手くいってないという線は薄いと思います。
補足情報(FW/ツールのバージョンなど)
使用環境:IDLE Python3.9 64-bit
Pythonのバージョンも3.9
ビュー実装に使うよう指定されている4クラスは
<場>(概念クラス。子クラスに継承させる。指定曰くCanvasを継承させる?Canvasを継承しようとするとエラーになるので詳しくは不明です...。)
<プレイ画面>
<得点バー>
<タイトル制御>
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー