プロジェクトが終わったので
たまった有給をまとめて消化したと思ったら、
震災関連で急に休暇になったりで、
気がつけば30連休中のTINY野郎です。
今、私の中では、
3/9にDSiWareとして配信された「プチコン」がアツいです。
http://smileboom.com/special/petitcom/index.html
初めて触れた言語がBASICだった
アラフォー世代にはたまりません。
早速、プチコン関連の動画をニコ動にアップしました。
http://www.nicovideo.jp/mylist/24407540
これがBASICで動くというのが感動です!
さて。
プチコンには、サンプルツールとして、
"CHRED"というキャラクターエディタが付属しており、
このツールを使うことで
簡単にゲームのキャラクターなどを作成することができます。
ツールの使い勝手自体は悪くはないのですが、
いくつか仕様上の問題点があり、
特にスプライトを使う場合は致命的だったりします(;_;)
というわけで、
せっかくリストが公開されているので、
使いやすく変更してしまいましょう。
■SPRITE用カラーパレットが変更および保存できない
→パレットデータは、BG用とSPRITE用のリソースを分け、
編集・保存・読み込みが別々にできるようにします。
■パレット変更が上画面のキャラクターに即座に反映されない
→パレットを編集しても実物大でチェックできないのは不便なので、
上画面にもリアルタイムに反映されるようにします。
■その他
→ページ切り替え忘れなど、バグと思わしき場所を修正します。
そんな感じで修正したのが以下の箇所になります。
公式サイトの"CHRED2"への修正は終わっていることを前提として、
赤字が新規追加部分、青字が修正部分です。
BGとSPRITEのパレットを別に扱うための準備。
色バンク名の文字列を定義する。
| 13 DIM CBANK(2),CBMAX(2),CSTR$(2),CBK$(2) 16 DATA "BGU",4,"BG" 17 DATA "SPU",8,"SP" 19 READ CSTR$(I),CBMAX(I),CBK$(I) |
BGモードとSPRITEモードを切り替えた際に
パレットも切り替えて画面に反映する。
3行をコメントアウトすることでRETURNをスルーし、
モードを切り替えるたびに@SETCOLORするように。
| 577 'IF SBIX>9 GOTO @SETCOLOR 578 'GOSUB @CHRALL 579 'RETURN |
ページ切り替え忘れ修正。
| 586 C$="":BGPAGE 0:SPPAGE 0 |
下画面のエディタには必ずBG用パレットが読み込まれていたので、
SPRITEモードの場合はSPRITE用パレットを読むように修正。
| 587 COLREAD(CBK$(CTYPE),P),RGB(0),RGB(1),RGB(2) |
上画面にもリアルタイムにパレットを反映させるために、
GRP面(上画面のキャラはここに描いている)のページも
切り替えるように修正と、SPRITE対応。
| 603 SPPAGE 0:BGPAGE 0:GPAGE 0 604 COLSET CBK$(CTYPE),P,C$ 606 SPPAGE 1:BGPAGE 1:GPAGE 1 |
BG用パレットとSPRITE用パレットを
別々に保存・読み込みができるように修正。
現在のモードのデータを保存・読み込みする。
ちなみに、COL0はBG用、COL1はSPRITE用。
| 669 PRINT"ヨミコムナマエ(COL";CTYPE;"):";:INPUT K$ 670 K$="COL"+CHR$(CTYPE+48)+":"+K$:PRINT K$ 679 PRINT"ホゾンスルナマエ(COL";CTYPE;"):";:INPUT K$ 680 K$="COL"+CHR$(CTYPE+48)+":"+K$:PRINT K$ 681 BGPAGE 0:SPPAGE 0:SAVE K$ |
ソースを解析しながら修正したので、
あまり自信はないです。
不具合がある可能性はおおいにあります(^_^;)
バグ等を見つけた方はぜひコメントください。
それにしても、プチコン、楽しいです!
3DSがDSiWareに対応するのは5月とのことですが、
DSi/LLをお持ちの方で、
昔BASICを触っていたような方は、
ぜひダウンロードしてみてください!