[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[WitchTech 00760] Re: 画面クリア
長久です。
2001/03/28 09:06:42 +0900に"Kazutoshi Fukui" <fukui.kazutoshi@canon.co.jp>さんに頂いた
「[WitchTech 00759] 画面クリア」への返事です。
>画面クリアの方法として、まず最初に考えたのが、
>wwc_clear_font ();の利用です。
>ウィッチ本を読むと、テキスト画面はキャラクタ番号8〜511までを表示している
>だけと書いてあったので、キャラクタフォントをクリアしてやれば画面もクリアでき
>る
>という安易な考えです。しかし、wwc_clear_font のところでプログラムが止まって
>しまいました。
>次に screen_fill_char を利用しました。
>カラー16色モードでタイトルを表示するときに使用した、白一色のキャラクタを利
>用しました。しかし、これもあえなく失敗…。現象は同じように screen_fill_char
>のところで
>プログラムが止まりました。
テキスト表示関係がカラーモードによって不具合があるとかいう未確認の情報は
知っていましたが、実際確認していなかったので、ちょっと見てみました。
魔女本10章のtest1c.cを以下の様に書き換えてみました。
test1c.c改------------------------------------
#include <sys/bios.h>
#include <sys/libwwc.h>
#include "maru.h"
void main() {
unsigned char x = 0, y = 0;
int i;
if(wwc_get_hardarch() == HARDARCH_WSC) {
wwc_set_color_mode(COLOR_MODE_4COLOR);
wwc_palette_set_color(12, 3, 0xf00);
wwc_palette_set_color(12, 2, 0xf77);
wwc_palette_set_color(12, 1, 0xfff);
}
else
palette_set_color(12, 0x7300);
display_control(DCM_SPR | DCM_SCR2);
text_screen_init();
sprite_set_range(0, 1);
font_set_colordata(0, 1, bmp_maru);
sprite_set_char(0, CFM_SPR_UPPER | (12 - 8) * 0x200 | 0);
sprite_set_location(0, x, y);
text_put_string(0, 0, "あいうえおかきくけこさしすせそ");
text_put_string(15, 0, "たちつてとなにぬねのはひふへほ");
text_put_string(0, 2, "1234567890ABCDEfghij");
while(1) {
i = key_press_check();
if(i & KEY_B)
break;
}
wwc_clear_font();
while(1) {
i = key_press_check();
if(i & KEY_START)
break;
}
}
------------------------------------------
これだと、wwc_clear_font()は動きます。
(但し、スプライトも消えるので、実用上つらいかも)
wwc_clear_font()をscreen_fill_char()に差し替えても動作が確認できます。
基本的に4色カラーでwwc_clear_font()、screen_fill_char()は動くようですから
環境を最新に更新していないなどの問題ではないかと思います。
FreyaOS、開発環境が最新のものになっているでしょうか?
なっている場合は、ソースを開示してもらわないとだめかも…
神楽坂酔っ払い研究所所長
長久 勝(ながく まさる)
mailto:mnagaku@cap.bekkoame.ne.jp
http://www.bekkoame.ne.jp/~mnagaku/
ML Archives