AitendoのOLED in FRISK その4 「インベーダゲーム化」
懐かしいインベーダゲームを作ってみました。
動きとかキャラクタとか適当に作りましたが、こんな感じでしたっけ?
ご参考用にソフトウェアを公開します。サイズが大きくなってきたので、圧縮ファイルです。
※2013/10/06 ファイル誤りが有り差し替えました。
突貫で結構冗長に作っています。昔のマイコンでこんな作りだと遅くて仕方なかったなあ、という感じですが、今のPIC24Fだと全然問題なしです。むしろウェイトを入れて調整しているくらいです。
クロックもメモリサイズも段違いだし当然と言えば当然ですね。しかしこんなものが安く手に入り、開発環境も無料で充実していているとは、良い時代になった物です。
ハードは特に変えていませんので、回路図などは前の記事をご確認ください。
それではまたです。
PUP様。こんにちは。ご連絡ありがとうございます。
ソース見たらハイスコア更新はしているのですが、次のゲーム開始時に初期化してしまっていました。
ソースの13行あたりにあるgl_high=0;を、その上にあるwhileの外(上)に出してやれば治ると思います。
(今物がないので実機確認できずすみません。)
投稿 見習職人 | 2014/08/30 12:51
見習職人さん、お久しぶりです。
前から一度試したいと思っていました、本記事のインベーダーゲームですが、部品が届きましたので早速ブレッドボードで組立しました。
なんとか、ビルドもできたようでゲームを楽しんでいます。
こんな簡単なハードでインベーダーゲームができるとは、子供のころには想像もつきませんでした。
(見習職人のプログラムがあってこそですが・・・。)
PS
なぜか、ハイスコアーが更新されませんので、ソースを眺めています。
・・??
もしかすると、私の環境がおかしのかな?
投稿 pup | 2014/08/24 15:08
akio 様。こんにちは。
ご連絡ありがとうございます。他でも動いているというのはちょっと嬉しいです。なお私も家族には見せないです。(^^;
今日テトリスをアップしましたので、よければお試し下さい。
投稿 見習職人 | 2013/10/12 23:06
おかげさまで、無事にフリスクのケースに内蔵させる事が出来ました^_^
ただ、家族で、理解してくれる人が居ないのが、残念ですが^_^;
プログラムは、全くと言っていいほど、解りませんので、今後も、発展系に期待しております。
投稿 akio | 2013/10/10 20:22
akio様。こんにちは。無事動いたと聞いてほっとしました。
OLEDの表示中々綺麗ですよね。Aitendoでカラーのも売らないかなあ、と期待しているのですが、当分出ないですかね。高くなりそうだし。
投稿 見習職人 | 2013/10/08 21:59
どうも、わざわざ、UPして頂き、有難うござます。
MCWファイルで、ソースファイルの1個がOSC_MSIN.cになっており、
これをリムーブして、GAME1_MAIN.cを追加することで、無事にコンパイル
出来ました。
電流は25mAぐらい流れておりました。
今回は本当に、ご丁寧な対応、感謝しております。
OLEDは、初めて使いましたが、綺麗ですね。
今後とも、よろしくお願いいたします。
フリスクケースを使った、色んな物を作成して、遊んでおります^^
投稿 akio | 2013/10/06 21:41
akio様。
いまZIPファイルを確認したら、INVADERではなくその前のテスト表示のソースだったため差し替えました。申し訳ありませんでした。
しかし、ビルドについては古い方ファイルでも私の環境ではできましたので、何か別問題と思われます。
差し替えたZIPにMCPファイルも入れておきましたので、それで試していただけますか?
投稿 見習職人 | 2013/10/06 19:13
ご回答有難うございます。
解凍したファイルを全部、プロジェクトに追加して、ビルドしてみましたが、以下のメッセージが出て、コンパイルがNGになってしまいました。
Executing: "C:\Program Files\Microchip\MPLAB C30\bin\pic30-gcc.exe" -mcpu=24FJ64GA002 -x c -c "graphics.c" -o"graphics.o" -D__DEBUG -g -Wall
graphics.c: In function 'GR_PUTNUM':
graphics.c:56: warning: unused variable 'v0'
A language-plugin exception occurred and was logged.
----------------------------------------------------------------------
Debug build of project `C:\INVADER\INVADER.mcp' failed.
Language tool versions: pic30-as.exe v3.31, pic30-gcc.exe v3.31, pic30-ld.exe v3.31, pic30-ar.exe v3.31
Preprocessor symbol `__DEBUG' is defined.
Sun Oct 06 16:52:44 2013
----------------------------------------------------------------------
BUILD FAILED
ちなみに、インベーダ関連を除いて、コンパイルすると成功し、無事にOLEDに表示させる事が出来ました。
お忙しい中すいませんが、宜しければ、ご教授願えますでしょうか?
よろしくお願いいたします。
投稿 akio | 2013/10/06 16:56
akio様。こんにちは。
MPLABとコンパイラC30が必要です。どちらも無料です。
インストールについては以下のサイトが詳しいです。
http://www.crystal-creation.com/robot/technical-information/microcomputer/pic/development-environment/mplab-ide/install/
http://www.crystal-creation.com/robot/technical-information/microcomputer/pic/c-compiler/mplab-c30/install/
コンパイルと書込みについては、MPLABで以下の手順により可能です。
・ProjectWizardでPIC24FJ64GA002用のProjectを作る。
LanguageはC30とする。
・このページにあるZIPを解凍したソースとヘッダファイルを
すべてAddする。
・Project → Build All
・Programmer → program
投稿 見習職人 | 2013/10/05 05:18
初めまして。
当方も、同じモジュールを手配して、製作しようと思っておりますが、
コンパイルは、MPLAB V8.8のフリーソフトの環境で出来るものなのでしょうか?
出来ましたら、コンパイルの方法を、教えて頂ければ幸いです。
宜しくお願い致します。
投稿 akio | 2013/10/04 14:38
通りすがり様。こんにちは。
バッテリはCR2032で、ちゃんとはかっていませんがいまのところ累積で20分くらいは動いていると思います。
まだ使い切るところまで動かしていませんのでMAXはわかりません。
デバッグ中はデバッガからの電源供給にしていますので、バッテリ単体で長時間は動かしていないのです。
計算上は。。。すみません計算していません。 (^^;
投稿 見習職人 | 2013/09/28 08:49
このゲームを動作させて、電池はどのくらい持ちますか?
投稿 通りすがり | 2013/09/28 00:35