質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Pygame

Pygameは、ビデオゲームの製作用に設計されたクロスプラットフォームのPythonモジュールセットです。Pythonでコンピューターグラフィックスと音声を扱うためのライブラリが含まれています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

220閲覧

python Visual Studio Esckyeを押しても反応がないです

gabi-n

総合スコア1

Pygame

Pygameは、ビデオゲームの製作用に設計されたクロスプラットフォームのPythonモジュールセットです。Pythonでコンピューターグラフィックスと音声を扱うためのライブラリが含まれています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2024/09/13 04:29

編集2024/09/13 04:51

スクリーンをEscキーで閉じれるようにしたい

前提

〇×ゲームのコードが書けるyoutubeを見ながらvisual studio、pythonでコードを書いています。
閉じる(×)ボタンだけでなく、Ecsキーを押した際にもスクリーンを閉じられる機能を実装中です。
コードを実行すると、きちんとスクリーンが出てくるのですが、Escキーを押しても画面が閉じません。

実行したコード

from encodings.utf_8 import encode import pygame pygame.init() #ウィンドウの作成 screen_width=600 screen_height=600 screen=pygame.display.set_mode((screen_width,screen_height)) pygame.display.set_caption("marubatugame")#日本語で〇×ゲームだと実行できなかった。 #メインループ========================================= run=True while run: #イベントの取得 for event in pygame.event.get(): if event.type == pygame.QUIT: run = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE:←問題の箇所です””””””””””” run = False #=============================================== pygame.quit()

該当のソースコード

if event.key == pygame.K_ESCAPE:

youtubeの動画のコードを見よう見まねで書いてます。
その方は全く同じコードでEscキーで閉じれていました。

分かりづらくてすみません。
教えていただきたいです(><)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fana

2024/09/13 04:44 編集

私は Python を知りませんが,どうやらインデントが文法要素の一部であるようです. そうあれば,コードを提示するにあたっては実際のインデントの具合を提示しなければならないでしょう.(:インデントが崩れてしまっていると物事が正しく伝わらないのではないか? と想像します.) 御一考ください.
TakaiY

2024/09/13 04:46

これではコードが読めないので、質問を編集して、</> ボタン(コードの挿入)を押して出てくる、```と```での間にコードを入れてください。 タグにVisual Studioとありますが、Visual Studio Code(VSCode)の間違えではありませんか? これらは別物です。
gabi-n

2024/09/13 04:56

TakaiYさん> ご指摘ありがとうございます。修正しました! vscodeではなくvisual studio commnity2022を使っています。 fanaさん> どこのインデントが崩れていますか?><
TakaiY

2024/09/13 05:10

> どこのインデントが崩れていますか?>< 僕が指摘したように、インデントが保存されないような提示のしかただと、もしインデントが違っていてもそれがわからないので、インデントが崩れていてもそれが原因だと指摘できませんよ、という意味でしょう。
guest

回答1

0

ベストアンサー

質問のコードが実際のもの の通りであれば、インデントが間違えているのが原因です。

python

1from encodings.utf_8 import encode 2import pygame 3 4pygame.init() 5 6#ウィンドウの作成 7screen_width=600 8screen_height=600 9screen=pygame.display.set_mode((screen_width,screen_height)) 10pygame.display.set_caption("marubatugame")#日本語で〇×ゲームだと実行できなかった。 11 12 13#メインループ========================================= 14run=True 15while run: 16 #イベントの取得 17 for event in pygame.event.get(): 18 if event.type == pygame.QUIT: 19 run = False 20 if event.type == pygame.KEYDOWN: # ★ ここ以降 21 if event.key == pygame.K_ESCAPE:←問題の箇所です””””””””””” 22 run = False 23#=============================================== 24pygame.quit()

コードの「★ここ以降」としたところ以降のインデントが多すぎます。

pythonはインデントでプログラムの構造を定義しますので、インデントが間違えていると正常に動きません。

インデントが違うのになぜエラーにならないとか、どういうことだったのかについてよく考えてみると今後のスキルが向上すると思います。

投稿2024/09/13 04:58

TakaiY

総合スコア13687

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gabi-n

2024/09/13 06:45

実行できました!丁寧にありがとうございます。 インデントが違うのになぜエラーにならないのか分からないので、調べたいと思います。
TakaiY

2024/09/13 06:58

インデントを修正する前と後で、キーを入力したときにどのような流れで判定が行なわれるか追ってみるのがいいでしょう。
fana

2024/09/13 08:22

> インデントが違うのになぜエラーにならないのか while だの for だので繰り返す範囲, if の条件次第で実行する範囲 みたいなのがインデントで決まるという話みたいですから, インデントが違ったら「実行する条件が想定してたのと異なることになる」という話ですよね. 「なんか想定とは異なる動きをするプログラムができた」という話になるだけなので,それだけが理由で「エラー」とはならないですよね.
TakaiY

2024/09/13 08:34

いただいたコメントの主旨がよくわからないので、こちらのコメントをちょっと補足 初心者の人を見ていると、インデントを間違えるとエラー(文法エラー)が発生すると思っていたが、インデントが間違えていてもエラーにならない場合があるのはなぜか、というようなことを感じていたりします。 インデントは間違えていても、文法的に正しい文になることがあり、その場合、論理的に間違えているので、正しい実行結果が得られない場合があるよ、というようなことを伝えます。 今回の件も同様なので、そういうことに気付いていただければいいなと思った次第。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問