PDAのひとりごと

黄昏時、携帯情報端末は薄闇の向こうに何を見るのか

ポポペのプロ~2.アイデアを練る

2004-06-27 21:21:38 | Lesson
 あなたには何か作りたいプログラムがありますか?
 もしあればそれを作れば良いのですが、とりあえず何か作りたいという漠然とした欲求を抱えている場合、まず何を作るのか考えなければなりません。
 ここでは、ゲームを考えます。ゲームは「遊ぶためのもの」という明確な目的があるので難しく考えなくてもいいし、作ったものもより多くの人に使ってもらえる利点があります。
 今回作成するのは、インベーダーゲームもどきです(笑)。この「もどき」がつかないとまずい気がする・・・というのは置いといて、処理を簡単にするためインベーダーは1匹、画面上の弾も1発とします。
 動作については、左右に動きまわり弾を落としてくるインベーダーを砲台から弾を発射して打ち落とす、という感じになります。
 次に、画面構成を考えます。
 画面を考える際、そのサイズを考慮しなければなりません。WindowsCEの場合、画面サイズは480x240、640x240、640x480、800x600、240x320とバラエティに富んでいますが、肝心のポポペはというと 320x240 となっています。このサイズはCEマシンとして特殊なため、ポポペで既存のソフトが使えない原因の一つとなっています。
 しかし、巷のソフトが使えなくても、自分で作るとなれば話は別です。どんなサイズであっても自分でそれにあわせて作ってしまえば良いのですから。
 画面いっぱいに使うことを考え、大ざっぱに縦横を10分割すると、1キャラクタのサイズは32x24となります。もちろんこのサイズである必要性はありませんが、今回はこれで行きましょう。インベーダーと砲台、弾と得点表示用の数字、それにゲームとは関係ありませんがアクセサリとしてシールドも作っておきましょう。
 なんだか絵ができると、プログラムも簡単に作れる気がしませんか?プログラミングで重要なのは、完成したものをリアルに思い浮かべることです。プログラミングというのは、あなたの頭の中にあるものをコンピュータを通じて現実とするための手段なのです。
 とはいえ、今回は私の頭の中にあるものを作っているので、あなたが今、完成したものを想像できないとしても仕方のないことです。そこは私が、頭の中身を徐々に目に見える形にしていきますので、段階を追ってどんなものになるのか確認してください。
 絵が決まれば、あとはそれをどう動かすかで、内容が固まります。
 動きは、インベーダーが一定の動作で砲台に近づいてくるようにします。まず、右上に出現し、そこから左へ動きます。左端にきたら一段下がり、今度は右へ動きます。右端にきたら、また一段下がって、左へ動きます。砲台と同じ高さまできたら、砲台を一つ失うこととします。
 インベーダーは、弾を発射します。弾は一定間隔で下へ降りていき、一番下へ落ちると消えます。この時、砲台に弾が当たるとその砲台は破壊されます。
 砲台は、弾を発射することができます。弾は下から上へと昇っていき、一番上までいくと消えます。この弾がインベーダーに当たるとインベーダーが消え、得点になります。
 砲台は、最初3つあり、それらがすべて破壊されるとゲームオーバーです。
 こんなところでしょうか。


めざせ!ポポペのプロ 1

2004-06-20 20:02:42 | Lesson
めざせ!ポポペのプロ
~ポポペのゲームをつくってみませんか?~

 ポポペのゲームを作ります。ポポペのプログラムを作る、略して「ポポペのプロ」の始まりです。

1.まずはやっぱりHelloかな?

 最初は、ウィザードで基となるプログラムを作ります。
 ポポペのプログラムをつくるには eMbedded Visual Tolls 3.0 の中の eMvedded Visual C++ 3.0 (以下eVC)を使用します。ポポペのプログラムは、Windowsパソコンで作るのです。ちょっと不便ですね。
 まず、スタートメニューから「eMvedded Visual C++ 3.0」を起動します。
eVC
 新しいプロジェクトを作成するので、メニューバーの[ファイル(F)]-[新規作成(N)]で「プロジェクト」タブの「WCE Application」を選び、「プロジェクト名」に任意の名前を入力します。ここでは「hello 」としておきます。「位置」は、プロジェクトを置いておくフォルダになります。「CPU」の欄は作成する対象のCPUを選択できるよう
になっています。ポポペのCPUはMIPSなので「Win32 (WCE MIPS)」のチェックを外さないように注意してください。また、WindowsNT/2000/Xpではエミュレータが使えるので、「Win32 (WCE x86em)」のチェックも付けておくようにしましょう。デフォルトですべてにチェックが入っているので、通常は何も触らなければ大丈夫です。設定が終わったら[OK]をクリックします。
新規作成
 「WCE Application - ステップ 1/1」画面では「標準的な"Hello World!"アプリケーション(W)」が選択されているので、そのまま[終了(F)]ボタンをクリックします。すると、「新規プロジェクト情報」が表示されるので、[OK]ボタンをクリックしてウィザードを終了します。これで、「Hello World!」を表示するプログラムが完成です。
プロジェクト
WCE Application
 ソースを見る前に、まずビルドしてみます。
作成されたプロジェクト
 まず、メニューバーの「アクティブなWCE構成を選択」が「H/PC Pro 2.11」になっていることを確認し、「アクティブな構成の選択」を「Win32 (WCE x86em) Debug」に変更します。
アクティブな構成の選択
 次に、メニューバーの[ビルド(B)]-[ビルド(B) hello.exe]として、エミュレータ用の実行ファイルを作成します。
ビルド
 今は、何もいじっていないので、エラーは出ないはずです。アウトプットウインドウの「ビルド」タブで「hello.exe - エラー 0. 警告 0」と表示されたら実行ファイルの作成は終了です。そのままエミュレータが起動して、プログラムが実行されます。
ビルド終了
 今回作成したプログラムには、メニューバーもあり、ヘルプも表示でき、プログラムの終了もできます。実は、とても高機能なプログラムなのです。
エミュレータで実行
 次回は、PCからはなれてゲームのアイデアを練ります。

難しいなぁCE1

2004-06-20 00:12:30 | PDA
 今日も環境を消したり入れたりしてみましたが、すっかりビルドが通らない状態に陥ってしまいました。何なんでしょう?この開発環境は。

 VC++ 5.0 と VC++ for WinCE でビルドできるのは確かなので、一旦、for CE をアンインストールし、次に VC++ をアンインストール、再起動してまた VC++ をインストールして for CE をインストール。この状態で、なぜか、ビルド時にCLのエラーが出ます。

 CE1のプログラムはあきらめかな?

 ということで、次はポポペ用プログラムを作ろうコーナーをはじめようかな(笑)。@風さんの邪魔をするつもりはないので、とりあえずここで、細々と行きましょう。

 用意するのは、Windows搭載のPCと eMbedded Visual Tools 3.0(eVT)、それに、紙と鉛筆です。あと、電卓もあるといいですね。私はポポペの電卓も使ってます。

 eVTはここらへん。
http://www.microsoft.com/japan/windows/embedded/ce/tools/emvt30order.asp

 ダウンロードで済ませたい人は、英語版になります。
http://www.microsoft.com/downloads/details.aspx?FamilyId=F663BF48-31EE-4CBE-AAC5-0AFFD5FB27DD&displaylang=en
 SDKもなければいけません。
http://www.microsoft.com/downloads/details.aspx?FamilyID=14239ce2-add0-48cf-b9d2-5bb89a0a58d7&DisplayLang=ja

CE1プログラムその後

2004-06-12 00:23:32 | PDA
WinCE Toolkit for VC++ 5.0とVC++ for WinCEを
入れたり消したりして分かったのは、

Visual C++ 5.0 Professional Edition
Visual C++ for Windows CE

の組み合わせでないと CASSIOPEIA A-11 (WinCE1.0)で
動作するプログラムが作れません。

Toolkitの方でも WindowsCE 1.01 のプログラムが作れますが、
それはA-11では動かないようです。こんなツールでWindows
プログラミング初心者に動くプログラムを作れと言うのは
無理な話です。

CE2.0以降は、eVC++3.0を使った方がはるかに楽にプログラムが
作れるので、事実上Toolkitを購入したのはまったくのムダ!!
ということになりました。ムダどころか、その後の混乱を考える
と有害としかいえません。

とはいえ、A-11などという特殊なマシンを買ってしまった事が
そもそもの発端ではあるのですが・・・。

それにしても、A-11購入から、それで動くプログラムの作成まで
7年以上を要しているのだから、我ながら執念深いというか
のんきというか・・・。

仕事と絶版本

2004-06-10 22:57:41 | Weblog
 仕事で調べ物をしていて、肝心のプログラムがCQ出版のアルゴリズム教科書にあるという記述があり、調べたところ絶版になっていることが分かりました。
 結局入手はあきらめていたのですが、今日ふと自宅の本箱を見ていたら・・・ありました(^^;
 そういえば、かなり前に買ったのですが、DOSの時代に見ていた本だったのですっかり忘れていました。当時私が欲しがっていたアルゴリズムは、文字列処理が中心でした。ちょうどSITOを作っていた頃で、計算式やプログラムの解釈部分を考えていて、その参考のひとつにしていたのでした。
 その同じ本にちょっと前に悩んでいた最小二乗法や等高線描画、FFTなどが載っています。OSが変わっても必要なアルゴリズムは変わらないものですね。

続々WinCE 1 のプログラム

2004-06-10 00:06:06 | PDA
 さっきダメだったと言った舌の根も乾かない間に、動いてしまいました。

 結局、WinCE Toolkit for VC++ 5.0 の方はアンインストールして、VC++ for WinCEに入れ換えたのですが、それよりも言語を日本語から英語に変更したことが効いたのかもしれません。A-11のWindows CE 1.0って英語版だし。

 写真は、プチビンゴマシーンが動作しているところです。音も出ています。CEって意外と互換性があるんですね。

続WinCE 1 のプログラム

2004-06-09 22:58:03 | PDA
 CASSIOPEIA A-11 を持ち出して実行ファイルを動かしてみたところ、全然ダメでした。(>o<>
 ということで、いろいろあがいてみたけれど、やっぱりうまくいかないので、アンインストールして、VC++ for WinCEからやり直しかな?

 やっぱり、WinCE1.0への道は険しく遠いのでした。

WinCE 1 のプログラム

2004-06-09 00:03:54 | PDA
 会社で調べ物をしている最中に、ソフトバンクが刊行していた雑誌Inside Windows が参考文献にあったので、ちょっと見ているうちに、WindowsCEの開発キットに関する記述に目が行き、改めて目を通してみました。
 今までも何度かCE1の開発を試していたのですが、なかなかうまくいかず、そのうちエラーが出て開発環境が使えなくなるという状況だったので、今まであきらめていたのですが、読んでいるうちに試してみたくなり、自宅で開発環境のインストールに挑戦してみました。

 相変わらずプロジェクト作成時にエラーは出るものの、驚いたことに、今までダメだと思っていたプログラムまですんなりビルドでき、エミュレーション環境であっさりと動作してしまいました。

 いまさら時代に逆行してCE1のソフトなど作っても仕方がないとは思いますが、せっかくなので、公開していきたいと思います。今日は時間がないので、また週末頃にでも。

WindowsCE1用プログラム開発環境
Visual C++ 5.0 Professional Edition
Windows CE Toolkit dor Visual C++ 5.0


 逆に、eVT3の方は、なぜかPsPCのエミュレータが動作しなくなり、デバッグに困っています。実機があるのでそっちで動作確認はできるのですが、エミュレータがないとやっぱり不便です。