地色が透明なCanvasを作成したい。Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。地色が透明な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(ゲーム背景専用、キャラークター専用そして手前側オブジェクト専用)で作成すれば問題は解決できると思うんです。いう感じになると思うんです。実は、Canvasを作成するときには、Canvasの地色も設定しないといけないのですが、この地色が問題なのです。地色を透明に出来れば、下に来るCanvasのアイテムも見れるようになるのですが、透明になれなければ下のCanvasを覆いかぶさなってしまいます。個の銅バッジマルチポスト先でも未解決の模様です。pack_forgetまたはgrid_forgetを使用すること。liftとlowerを使用することです。ウィジェットの積み重ね順序が変更されます。正味の効果は、兄弟ウィジェット(または兄弟の子孫)の後ろにウィジェットを隠すことができることです。目に見えないようにしたいときはlowerします表示順番対策としてモノになるかは不明ですし、Canvasではありませんが、ウインドウの透明バックグラウンドの記事があります。応用できるかもしれません。「クロスプラットフォームな方法は無い」と回答が付いています。それぞれ用の方法が提示されています。"white")label.pack()label.mainloop()他に後から追記されてそうな簡単な回答がありましたが、上記を含めて動作確認はしていません。"somecolor")他にゲームでは使え無さそうですが、こんな記事があります。多角形(図形)を半透明に重ねる方法を教えてください。個の銅バッジほう・・なるほど。これはとても面白いのですが・・・残念ながらこれを対策として使う方法をイメージできません・・・。ネットで調べてもあんまり情報出なかったから、無理なのかなぁ・・・・。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。