環境
- Mac OS X Yosemite ver.10.10.5
- Python 3.6.1 |Anaconda 4.4.0 (x86_64)を使用
参考書籍
「ゲームを作りながら楽しく学べるPythonプログラミング」
http://nextpublishing.jp/book/8501.html
こちらの本を先日購入しましたが、キー入力がなぜかターミナル上やエディターに実行され、肝心のゲームが一切動かないという事態が発生。
解決事例
調べてみるとpyenvをアンインストールし公式インストーラーからpython3をインストールし直すと正常に稼働するそうです。
またpygameのバージョンを変えることで解決した事例もあるようです。https://stackoverflow.com/questions/2718897/mac-os-x-pygame-input-goes-to-terminal-instead-of-python
解決
筆者の場合、Anacondaを使っているからなのか、pygameのバージョンを変えても上手くいきませんでした。
また同時に別作業でPython3を使っているためanacondaも使いたい、、、、
なのでまずpyenvをインストール。(pyenvはpythonのバージョンを簡単に切り替えることができるツールです。)
pyenvのインストールの仕方は下記サイトを参考にしました。
pyenvとvirtualenvで環境構築
そのあとpyenvを使い使用できるバージョンを確認。
$pyenv install --list
2.7.11
2.7.12
2.7.13 ← こいつらです
3.0.1
3.1
3.1.1
ここでたくさんのリストが表示されるので、上記の部分のpython2をインストールします。
$ pyenv install 2.7.13
と入力し実行。
インストールができたかは$pyenv versions
と打ち込めば確認できます。
このあとpygameを使ってゲームを製作しているディレクトリに移動し$pyenv local 2.7.13
と入力、実行。
この時$pyenv global -.-.-.
と打てば全体にpython2を適用できますが、いまさらpython2は必要ないので対象のディレクトリにのみ適用。
この時、localにpython2を適用したにもかかわらず、なぜかpython2が反映されず Python 3.6.1 |Anaconda 4.4.0 のままでしたが、一度再起動したら筆者の場合は解決しました。
もしそれでも直らない方は下記を参考されると良いかもです。
pyenvでPythonがSystemバージョンから切り替わらない時の対処
以上の処理で、筆者の場合はキー入力が可能になりました。
追記
ちなみにPython2の環境で運用すると、大抵の機能は問題なく動作しますが、
map, reduce, filterといった関数ははlist()などで囲む必要はありませんので、
この部分を削除すれば問題なく稼働します。