不惑にしてまだ何者でもない者のブログ

Arduino関連、Raspberry Pi関連、プログラミング学習

「ゲームを作りながら楽しく学べるPythonプログラミング」をやってみた(その2:Cave)

2020-08-07 21:31:54 | Python
田中 賢一郎氏著「ゲームを作りながら楽しく学べるPythonプログラミング」
を写経して作成したゲームのつづきである。

ちなみに、プログラム(スクリプト)は写経しなくても、
著書に示されたURLからダウンロードすることができるので、
すぐに実行することも可能である。

 
Pythonのプログラミング環境が整い、
ようやくゲームが作れると思ったら、
意外に基礎編が6章からなり、Pythonの基礎がみっちり叩き込まれることになる。
Pythonに関しては、ちょいちょい使ってはいたが、
よく知らなかったことについても書かれており、結構勉強になった。

そして、ようやく最初のゲームCaveという横スクロールゲームを写経して実行してみた。

真ん中のスペースシャトルをスペースキーで操作するゲームだ。
スペースキーを押しっぱなしにすると、上方向に加速度がかかり、
スペースキーを離すと、下方向に加速度がかかるようになっている。
上や下の緑の部分(これがCaveつまり洞窟の壁)にぶつかるとゲームオーバーで、
スペースキーを押す長さで壁に当たらないように調整する。
ぶつからずに長く進むほど、右上のScoreも増えていく。


このCaveは、実行と同時にゲームが始まるので、
最初からスペースキーを押しておかないと、
すぐに下に落ちてゲームオーバーとなってしまう。
そして、ゲームオーバーになったらWindowを閉じて、
再度Pythonスクリプトを実行しないといけない。

とはいえ、Pythonでこのようなゲームが作れるのがわかったので、
なかなか楽しいものである。

今後のアレンジとしては、リスタート機能を付けてみるなどすれば、
より勉強になるだろう。

「ゲームを作りながら楽しく学べるPythonプログラミング」をやってみた(その1:Ubuntuでの環境構築)

2020-08-07 20:58:14 | Python
昨日書こうとして、やはり先延ばしになってしまったが、
田中 賢一郎氏著「ゲームを作りながら楽しく学べるPythonプログラミング」
を写経して作成したゲームについて書いてみる。


先日久々に起動したデスクトップのWindowsマシンのHDDがクラッシュしてしまったので、
うちにあるWindowsマシンは、非力なノートPCしかない。

非力なノートPCでプログラミングするのも大変だと思い、
デスクトップPCのHDDをSDDに換装したものの、
Windows OSのリカバリディスクがどこにあるのかよく覚えていない。

折角のいい機会なので、このデスクトップPCに、
Ubuntu 20.04 LTSを入れてみた。
設定で色々わからないことも多いが、
最近のLinuxは使いやすくなってきたと思う。

そして、Pythonのプログラミング環境を構築するため、
を参考に、Anacondaをインストールしてみた。
Windowsの場合は、Anacondaをインストールすると、
Navigatorという管理GUIもインストールされ、
PythonのIDEであるSpyderもインストールされたはずである。
Ubuntuの場合は、管理もCUIで行う必要があるし、
Spyderも別途インストールする必要があるみたいだ。
といってもインストールは、簡単で、
sudo apt intall spyder
をターミナルで実行すればよい。

とりあえずこれでPythonのプログラミング環境は整ったが、
ゲーム開発用Pythonの仮想環境をAnacondaで作ってみた。

conda create -n pygame-env python=3.6 anaconda

を実行して、pygame-env という仮想環境を構築した。
Anacondaにどのような仮想環境が存在するかは、以下のコマンドで確認できる。

conda info -e
>>
# conda environments:
#
base * /home/username/anaconda3
openai_gym /home/username/anaconda3/envs/openai_gym
pygame-env /home/username/anaconda3/envs/pygame-env

pygame-envが構築されていることや、
baseに*がついていてこれが今アクティブであることがわかる。
そこで、仮想環境を切り替えるため、以下のコマンドを実行する。

conda activate pygame-env

これでようやくスタートラインに立つことができた。