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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

解決済

1回答

3422閲覧

pygameを使ってプログラムを走らせるとずっとロードしてしまい、プログラムが終了できない

S.K.

総合スコア11

Pygame

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

0クリップ

投稿2018/09/16 04:47

編集2018/09/16 05:04

pygameを使って四目並べのゲームを作りたいのですが、試しにマス目だけ作ってプログラムを走らせてみたところ、ずっとマウスポインタのアイコンがロード中の表示になってしまい、四目並べのウィンドウの閉じるボタンをクリックしても、escキーを押してもプログラムが終了できませんでした。
そこで、IDLEのインタラクティブシェルの閉じるボタンを押したところ、プログラムはなんとか終了することができました。
原因もわからず、どうしたらよいか困っています。原因を教えていただきたいです。

使用環境はPython3.6.5です。

四目並べのウィンドウ
インタラクティブシェル

以下ソースコードです。

python3

1#! usr/bin/env python3 2 3import pygame 4import sys 5 6LINE_VERTICAL = [[(80,0),(80,480)],[(160,0),(160,480)],[(240,0),(240,480)],[(320,0),(320,480)],[(400,0),(400,480)],[(480,0),(480,480)],[(560,0),(560,480)]] 7LINE_HORIZONTAL = [[(0,80),(560,80)],[(0,160),(560,160)],[(0,240),(560,240)],[(0,320),(560,320)],[(0,400),(560,400)]] #縦線の座標 8COMMAND_LINE = [[(560,180),(660,180)],[(560,300),(660,300)]] #横線の座標 9CIRCLE_RADIUS = 30 #碁石の半径(ここでは使用していない) 10CIRCLE_POS = [((40+80*x),(40+80*y)) for x in range(6) for y in range(7)] #碁石の中心座標(ここでは使用していない) 11BLACK = (0,0,0) #黒色 12 13def main(): 14 pygame.init() 15 screen = pygame.display.set_mode((660, 480)) 16 pygame.display.set_caption('四目並べ') 17 18 while 1: 19 screen.fill((128,128,128)) 20 for coord in LINE_VERTICAL: 21 pygame.draw.line(screen,BLACK,coord[0],coord[1],1) #縦線描画 22 for coord in LINE_HORIZONTAL: 23 pygame.draw.line(screen,BLACK,coord[0],coord[1],1) #横線描画 24 for coord in COMMAND_LINE: 25 pygame.draw.line(screen,BLACK,coord[0],coord[1],1) #自分と相手のターンを表示するコマンドの部分 26 pygame.display.update() 27 28 for event in pygame.event.get(): 29 if event.type == QUIT: 30 pygame.quit() 31 sys.exit() #閉じるボタンを押すと終了 32 if event.type == K.ESCAPE: 33 pygame.quit() 34 sys.exit() #escキーを押すと終了 35 36if __name__ == '__main__': 37 main()

【追記】
・ロード中というのはカーソルがレインボーカーソル(↓)になることです、説明能力がなくて申し訳ありません。

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

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

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

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

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

guest

回答1

0

ベストアンサー

追加すべき点

python

1import pygame 2from pygame.locals import * 3import sys 4

のようにfrom pygame.locals import *を追加してください。

訂正すべき点

python

1if event.type == K.ESCAPE:

となっていますが、

python

1if event.type == K_ESCAPE:

に変えてください。Kのすぐ後ろは.ではなく_です。

投稿2018/09/16 06:01

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

S.K.

2018/09/16 06:09

変更したところ、改善されました!初歩的なミスを丁寧に指摘していただき大変助かりました!ありがとうございます!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問