Pygameをいじりつつ

何を思ったかシューティングゲーム(STG)を作ろうとしています。

この発端はPythonのゲーム用フレームワークのPygameというものを昨年末あたりに知り、ちょっとずつ色々な機能のサンプルを作ってみたりしてはいたのですが、正直ゲームという物を作るには至っていなかった為、Pygameの習得も兼ねてやってみようと思ったのがきっかけです(後、自分でどれくらいできるのかを試したいという理由もありますが)。

STGを選んだ理由は正直「そのときの勢い」が一番強いのですが、2Dのゲームをプログラムする際のエッセンス(サーフェスとかRectの扱い等)が結構詰まっているかなと思ったのもあります。

一時期はノベルゲームというのも考えたのですが、プログラム自体よりもシナリオだったりグラフィックだったりの手間が明らかに多いので、Pygameを習得していくという目的から外れる可能性があったのでやめました。

Pygame サンプル001
とりあえず始めたばかりの2日間では、まずSTGを作るための下準備として、Pygameのおさらいと、当たり判定や動きの実験をしてみました。 もう少し実際のゲームで使う部分をどう実装していくかという実験をしながら、徐々に一通りのゲームになるようにしていこうかと思っています。

Pygameを使うに当たっては、Pygameは日本語のドキュメントが非常に不足している事が難点と感じましたが、下記の2つのサイトにわかりやすくまとまっているので、非常に参考になりました。

Python2.5 Windows CE Port

Python Windows CE portが10月12日に今までのPython2.4.3からPython2.5にアップデートされていたので早速W-ZERO3[es]にインストールしてみました。

前回同様、インストール用のexeファイル/cabファイルが用意されていたので、cabファイルの方をダウンロードしてW-ZERO3[es]のminiSDカードエリアにインストールしました。

また、今回のパッケージではexeまたはcabファイルからインストールした場合、Tkinterのモジュールが入っていないので、Tkinterを使う場合は、ダウンロード先にインストール用バイナリと一緒に公開されている「PythonCE-2.5-20061012-_tkinter.zip」 というアーカイブ内の「_tkinter.pyd」をPythonのインストール先の「DLLs」フォルダにコピーする必要があります(もちろん以前の記事に掲載した、Python2.4.3インストール記事と同様に、別途tkinter用のDLLはインストールする必要があります)。

加えて、Python2.5から標準モジュールに組み込まれたSQLiteのモジュールも別になっており、使うにはTkinterモジュールと同様、「PythonCE-2.5-20061012-pysqlite.zip」ファイルをダウンロードして、アーカイブに含まれている「sqlite3.dll」をPythonのインストールフォルダ(python.exeやpython25.dllが置かれているフォルダ)にコピーし、「_sqlite3.pyd」を「DLLs」フォルダにコピーすることで使うことが出来ます。

思っていたよりも早くPython2.5がCEで動くようになったので、ちょっとしたコードのテストなどをPCと同じバージョンで行えるようになったのでうれしい限りです。

蛇足ですがPyJUGの記事から、技術評論者の雑誌・SoftwareDesign11月号にPythonの特集が組まれているそうです。

Software Design (ソフトウエア デザイン) 2006年 11月号 [雑誌]Software Design 2006年 11月号

Python2.5リリース

Python2.5がリリースされていたので早速インストール。

このバージョンから標準でSQLiteが使えるようになったので早速実験(以前のバージョンでもSQLiteとpysqliteモジュールを使えば利用できましたが、2.5リリース記念ということで)。

オンライン上のPython Library Referenceを見ながらエディタで編集し、動かしてみました(テストする為だけのソースコードなので、全然まとまってませんが:oops:)。

[ソース]Python2.5 SQLite Test

一通り動いたものの、SQLiteについてはさっぱりなので、まずSQLiteについて調べてから、また色々やってみようかと思います。

W-ZERO3[es]にPythonインストール

またまたPythonネタですが、W-ZERO3[es]上でもPythonを使うことができます。

ご存知の方はまぁ何を今更という感じでしょうが:oops:、SourceForgePython Windows CE portとして公開されています。

以前Sigmarion3、初代W-ZERO3でもインストールして使っていましたが、その頃は一般的なOS(WindowsやMac、Linux)などで出ていたバージョンよりも古いものしかなく、正直ほとんど入れても使うことも無くディスクの肥やしになっていたので、W-ZERO3[es]にインストールするのは見送っていました。

1つ前の記事で書きましたが、またPythonへの情熱が戻ってきたこともあり :D、改めてSourceForgeからダウンロードしようとしたところ、現行バージョンのPython2.4.3が移植されており、しかもインストーラも付属となっていたので、早速インストールしました。

また、このままではTkinterを使うことが出来ないので、http://fore.validus.com/~kashtan/よりダウンロードできる、CE用のTkinter binariesから、アーカイブに含まれている「tcl8.4.3」フォルダをesのルートディレクトリにコピーし、これもまたアーカイブ内の「Windows」フォルダに入っている「celib.dll」、「tcl84.dll」、「tk84.dll」をesのWindowsフォルダにコピーすることで動くようになりました。

Python2.4以降になって日本語コーデックが標準で含まれているので、追加のコーデックのセットアップをしなくて済みますので、標準的な環境構築はかなり楽にできました。

その後、サンプルを動かしている時にちょっと気づいた事ですが、

  • timeモジュールでtime.time()を呼び出したとき、小数点以下が0となって切り捨てられてしまっている(time.time()を使ったストップウォッチのサンプルスクリプト等は、秒数の小数点以下が0のままで、1秒単位ですすんでしまう)
  • urllib2やpoplibなどのネットワークを使う前には必ず通信状態にしておく事(当たり前といったら当たり前ですが、普段常時接続のPCでやっていると忘れてしまうので ;))
  • 付属のコンソールではやっぱり日本語が表示できない
  • QVGAで動いているので、tkでウィンドウを作るとデカイ

こんなところです。

みんなのPython」に掲載されているTkinterのサンプル(真ん中)も動いています。

Pythonインタラクティブシェル みんなのPython掲載サンプル こんにちは Python CE

[サンプル] tkhello.py

[みんなのPython]やっと読み終わりました

みんなのPython 通勤電車の中で読んでいた「みんなのPython」をやっと読み終わりました。

日本の著者が書かれたPython本ということで、今までの復習も兼ねて読んでみましたが、しばらくPythonに触れていなかったのと、つい最近書かれたものであるため、Python2.4で標準のモジュールに新しく追加された機能についても書かれており、今まで知らなかった事も確認できて、新鮮な感じで読めました。

今までPython関係の本は国内で出版されているものは極わずかでした。しかも一部は結構内容が古いものもあり、実際に最近のバージョンでも参考になりそうなものは限られていた状況でしたので、この本が出たおかげでまたPythonに触ろうという意欲が沸いてきました。

Pythonをはじめたい、良く知りたいという人へのまず第一歩の本として、しばらくの間はスタンダードな本になると思います。これを機に、Pythonがもっと認知されて、書籍なども増えていってくれればいいなと望みつつ、まず読まずに積んであるPython関連の本も読んでおかないとな、と思ってる次第です 8)。