[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[WitchFan 00402] Re: サンプル
こにちは、ろんです
>JUESSです。
>画像表示についてなのですが、
>下記のプログラムでは誤動作します。
>キャラクタ表示とスプライト表示を
>一つずつ行うつもりで書いたものですが、
>どこがどういう風に違っているのでしょう?
>どなたか教えてください。
多分、キャラクタ設定などに関してかなり混乱していらっしゃいますね
あちこちにつっこみどころがあって全部説明できませんので
ソースで許してください。
アンド、何をどう表示したいのかよくわからなかったので
推測でコード足しました。
下のコードはとりあえず(JUESSさんの意図したものかわかりませんが)動作します。
いろんなところをコメントアウトしたりして実験してみてください。
きっと、「ああ、そういうことか」となります。
# キャラクタデータが
# キャラクタ1個分の画像ではないのが問題かなぁ
/*-----------------------------------------------------------------*/
#include <sys/bios.h>
void main()
{
/* キャラクタ番号 */
static int no1=1, no2=2, no3=3, no4=4;
/* キャラクタデータ1(2個分のデータ)*/
static int bmp1[] = {
0xff, 0xff, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xff, 0xff,
};
/* キャラクタデータ2(2個分のデータ)*/
static int bmp2[] = {
0x00, 0x00, 0x3c, 0x3c, 0x7e, 0x7e, 0xff, 0xff,
0xff, 0xFF, 0x7e, 0x7e, 0x3c, 0x3c, 0x00, 0x00,
};
/*----------画面表示準備するだ----------------*/
display_control(DCM_SCR1 | DCM_SPR); /* スクリーン1とスプライトを使用 */
lcd_set_color(0x7530,0xfdb9);
/* Megが使っていた0番キャラクタを利用して画面を真っ白にするだ */
screen_fill_char(SCREEN1,0,0,28,18,0x00);
/* キャラクタ登録。というか設定というべきか */
/* 0番は画面まっしろにつかったからそっとしておくべ・・ */
font_set_colordata(1,1*2,bmp1); /* データ1の2個をキャラクタ1・2番に登録 */
font_set_colordata(3,1*2,bmp2); /* データ1の2個をキャラクタ3・4番に登録 */
/* 登録したキャラクタをそれぞれ表示 */
screen_set_char(SCREEN1,11,11,1,1,&no1);
screen_set_char(SCREEN1,11,12,1,1,&no2);
screen_set_char(SCREEN1,11,13,1,1,&no3);
screen_set_char(SCREEN1,11,14,1,1,&no4);
/* スプライト登録 */
sprite_set_char(1,1); /* スプライト1番にキャラクタ1番を登録 */
sprite_set_char(2,2); /* スプライト2番にキャラクタ2番を登録 */
sprite_set_range(1,2); /* スプライトの1番から2番を表示許可する */
sprite_set_location(1,0,0); /* スプライト1番表示 */
sprite_set_location(2,0,8); /* スプライト2番表示 */
key_wait();
}
/*------ WonderWitch関数リファレンス更新中 ------*/
/* http://ron-ron.cha.to/WW/reference.html */
/* ron-ron@ma.neweb.ne.jp */
/*-----------------------------------------------------------------*/
ML Archives