エレ玩 Konyaの開発記録

アクセスカウンタ

zoom RSS EGP01でロータリーエンコーダを使う2

<<   作成日時 : 2013/03/31 20:58  

驚いた ブログ気持玉 6 / トラックバック 0 / コメント 2

前回の続き、ロータリーエンコーダを使いブロック崩しを作ります。
クルクル回すコントローラー、パドル操作のゲームと言えば、まず思い浮かぶのがブロック崩しですよね。
初期のブレイクアウトやリメイクのアルカノイドが有名でしょうか?
二人同時プレイ可能で可愛いキャラのプランポップや、マージャンが題材の雀棒など個性的なゲームも多数ありました。

私が作るなら当然、レトロ風味なブロック崩しになります。
画像


タイトルはPACPON、ナムコレトロキャラのドット絵をパックマンをボールに見立て消していきます。
画像

画像

画像


動画です。
点滅するドット(ブロック)はパワーアップアイテムで、分裂または貫通パックマンになります。
全7ステージのクリアは比較的簡単です。
ミスを減らし、貫通を上手く使うことで高得点を目指します。


動画では最終面で点数表示がバグっています。
撮影後に修正ました。



ちょっとだけプログラムの説明です。

アーケードゲーム機のパドルは勢い良く回すと、手を離しても回り続けます。
これによりボールを跳ね返す"バー"を端から端へ高速に移動することができ、高速なボールにも対応できるようになっています。
しかし、本ゲーム機のパドル(ロータリーエンコーダ)は手を離すとすぐに止まるため、同じような操作はできません。
そのため、パドルを握り(つまみ)直さずにバーを端から端まで移動できるようにしないと、高速なボールに対応できなくなってしまいます。

握り直さずに回せるのは左右に約半回転づつくらい。
ロータリーエンコーダは1回転で24クリック。(前回記事参照)
液晶画面の横サイズは128ドット、バーの横サイズは32ドット。

よって、半回転で128-32=96ドットくらい移動する必要があり、
1クリックで、96[ドット]÷(24[クリック]÷2[反回転])=8ドット移動すれば良いことになります。

しかし、1クリックで8ドットの移動は、バー位置を微調整するときに移動しすぎです。
実際のゲームで操作を試し、バランスの良さそうな1クリック6ドット移動としました。

前回記事でも説明しましたが、ロータリーエンコーダの入力チェックはゲーム処理の隙間で行うため、
処理が重くなる程、操作の取りこぼしが発生します。
本ゲームでもパックマンが分裂し、高速で動いているときはバーの動きが鈍いように感じます。
今後の課題ですね。

さて、プロジェクトファイル一式を公開します。
左スティックの左右でも操作できるので、ロータリーエンコーダなしでもゲーム可能です。

 EGP01_PacPon00.zip

 プログラムファイル一覧

  EGP01.c      : メインプログラム
  EGP01_Asm.s   : アセンブラ記述のサブルーチン集
  EGP01_Asm.h   : アセンブラ記述の外部変数/関数の定義
  ChrData.inc    : 個別キャラクタ グラフィックデータ(数字フォント大)
  ChrDataCmn.inc : 共通キャラクタ グラフィックデータ(文字フォント等)
  SndData.inc    : 個別サウンドデータ  


以上です。


テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 6
驚いた 驚いた
面白い 面白い
ナイス ナイス

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(2件)

内 容 ニックネーム/日時
はじめまして、ケンケンと申します。
久し振りにチェックしてみたらブログが復活していたので、嬉しくなりました。
今回の記事とは関係ないですが、私はPICでビデオ出力の実験をしていて、
下記ページでパックマンを製作して公開しています。
その際にKonyaさんのプログラムを参考にさせていただきましたので、
遅くなりましたが、お礼と報告です。
http://www.ze.em-net.ne.jp/~kenken/pacman/index.html
今後もいろいろと参考にさせていただくことが多いと思いますので、
よろしくお願いします。
ケンケン
2013/04/03 23:37
ケンケンさん、はじめまして、Konyaです。
さっそく、見させて頂きました。
いいですね〜
8色表示、荒いドットが情緒溢れ、私好みです。
パックマンもいいですが、シューティングゲームもいい感じです。
画面はシンプルなのに敵キャラや砲弾の動きが素晴らしい!!
良い刺激を頂きました。
こちらこそ、今後いろいろと参考させて頂きます。
よろしくお願いします。
Konya
2013/04/06 01:42

コメントする help

ニックネーム
本 文
EGP01でロータリーエンコーダを使う2 エレ玩 Konyaの開発記録/BIGLOBEウェブリブログ
文字サイズ:       閉じる