地色が透明なCanvasを作成したい。
問題点
今tkinterのCanvasを使ってゲームを作っています。
しかし1つ問題があり、canvasではオブジェクト同士が重なると、新しく作成されたオブジェクトのほうが上の様に来るようになります。
例えば、ゲーム内の画面では、背景の上にキャラクターが来て、キャラクターの前に手前側オブジェクトが来る、といった仕組みになっているのでこれを作成しようと思えば・・・
canvas=tk.Cancas.....
ゲームの背景=canvas.create_image.....
キャラクター=canvas.create_image.....
手前側オブジェクト=canvas.create_image.....
といった順番で作成されます。
しかし、ゲーム中で新しいキャラクターを登場させることになれば、それは手前側オブジェクトよりも新しく作成されることになるので、その新しいキャラクターとオブジェクトが重なったら、キャラクターが手前側に来てしまいます。
つまり、
手前側オブジェクト=canvas.create_image.....
の後で
キャラクター2=canvas.create_image.....
をすると、キャラクター2が手前側オブジェクトの前に来てしまう。
考えてみた対策方法
そこでこの問題を解決するには、1つのCanvas上に画像を生成するのではなく、ゲーム背景専用、キャラークター専用そして手前側オブジェクト専用のCanvasを作成して、Canvasを重ね合わせて、それぞれのオブジェクト(ゲーム背景、キャラクター、オブジェクト)をそれぞれの対応するCanvas(ゲーム背景専用、キャラークター専用そして手前側オブジェクト専用)で作成すれば問題は解決できると思うんです。
Back_Ground_Layer=tk.Cancas.....
Character_Layer=tk.Cancas.....
Object_Layer=tk.Cancas.....
ゲームの背景=Back_Ground_Layer.create_image.....
キャラクター=Character_Layer.create_image.....
手前側オブジェクト=Object_Layer.create_image.....
つまり、1つのCanvasの上にすべての画像を作成しようとすると、新しいもの順に表示されてしまうけど
それぞれのCanvasで新しい画像を生成しても、その上にはほかのCanvasがあるからしっかりと期待した順番に表示される という感じになると思うんです。
しかしそこで他の問題がありまして・・・
実は、Canvasを作成するときには、Canvasの地色も設定しないといけないのですが、この地色が問題なのです。
地色を透明に出来れば、下に来るCanvasのアイテムも見れるようになるのですが、透明になれなければ下のCanvasを覆いかぶさなってしまいます。
そこで、Canvasの地色を透明にする方法を探しているのですが・・・どうすればいいでしょうか?
また、他の解決方法などはありますでしょうか?