PIC AVR 工作室->TopPage->AVRの工作->スプライトデモ

スプライトデモ

スプライトデモ概要

スプライトデモサムネイル

AVRスプライトAVR背景表示器 を使ったデモ作品です。昔懐かしい感じのゲームを真似た画面が次々表示されるデモです。(プレイできません)

スプライト表示と背景表示の動作確認も兼ねて、30分くらいで適当にでっち上げたプログラムです。 簡単なサンプルなので、ソースを見ればどんなことをしているかすぐに解ると思います。

製作したPLAYERがちゃんと動くかどうかの確認に使うとか、 何かオリジナル品を作るときにこのソースから切ったり貼ったりといった用途にお使いください。

サンプルムービー:スプライトデモのキャプチャ画面

キャプチャー画面をフラッシュムービーにしました。画面をクリックすると再生します。
フラッシュで再生すると、なんかちょっとカクカクする時ありますが、 実物はちゃんとスムーズに動きます。念のため。

使い方

PLAYER用のプログラムです。 スプライト表示には 「AVRスプライトV4」を、背景表示には 「AVR背景表示器V2」を使います。PLAYER上のそれぞれのtiny2313に書き込んでおいてください。

メインCPUにはMEGA48を想定していますが、それ以上のメモリを持つ88や168ならソースはそのまま動作可能だと思います。

下のダウンロードからアーカイブをダウンロードし、hexファイルを書き込んでください。 あとはRCA端子をテレビに繋ぐだけで画面が表示されます。

デモの内容は、以下のとおり。

デモとデモの間はボタンの入力待ちになってます。上下左右でもABボタンでもなんでもいいので 適当にボタンを押すと次のデモに進みます。すべて終るとまた最初に戻ります。ただそれだけのプログラム。

…でも、コンパイラってたったこれだけの処理させるのに4kBのメモリほとんど食っちゃうのね…。コンパイラって大食いです。

コメント

ご覧のとおり、大した内容は盛り込んでません。(というか、MEGA48は4kBぽっち。メモリが少なすぎてこれ以上入らない)

見ていただきたいところは、まずは一度に表示できるスプライトの数とその速度。 潜水艦のデモを見ていただければお判りのとおり、結構な数のスプライトを同時に高速に動かせます。(これでも相当ウェイトを入れてます)

1つのスプライトの座標とスプライトパターンを設定するには「X座標」「Y座標」「スプライト番号」の3つの指定で6バイトの転送が必要。 (スプライト表示器経由で3バイト転送する場合です。スプライト表示器の仕様上そうなります)

で、スプライト25個なら6×25=150バイト。150バイトをUART送信する時間は約0.013秒(115.2kbsで計算)。 なんだかんだでこれだけの速度でスプライトを動かせるなら、実用には充分耐えるでしょう!(で、実用って何?)

ダウンロード

スプライトデモ用アーカイブ(クリックすると開きます)

(注)PLAYER上で動作します。スプライト表示器はV4を、 背景表示器はV2を使用してください。