ホームに戻る
 画面系

1、語句
2、準備
3、ディスプレイの設定
4、スクリーンの設定
5、LCDカラーマップの作成
6、パレットの設定
7、キャラクターの設定
8、スプライトの範囲の設定
9、スプライトの設定
10、キャラクターの表示
11、スプライトの表示
12、ディスプレイイメージ
13、メモ


 1、語句

ディスプレイ
 ディスプレイはWonderSwanを横に持って横224×縦144ドット
 キャラクターに直すと横28×縦18キャラクター

スクリーン
 スクリーンは全部で2枚
 1スクリーンは32キャラクター×32キャラクター
 スクリーン1とスクリーン2がありスクリーン2が手前
 スクリーンにはキャラクター、スプライトを置ける
 スクリーン以外に背景が1枚
 スクリーン1、スクリーン2がともに透明の場合背景が表示される
 背景は1色のみでキャラクター、スプライトは置けない
 スクリーンはドット単位でスライドが可能

キャラクター
 8ドット×8ドットで1キャラクター
 1キャラクター内で表示可能な色は4色
 最大512個まで同時使用できる
 ドット単位でのスクリーンへの表示はできない

スプライト
 8ドット×8ドットで1スプライト
 1スプライト内で表示可能な色は4色
 最大128個まで同時使用できる
 (ただし同水平座標上には最大32個)
 いったんキャラクターに設定したものをスプライトに登録するという形をとる
 ドット単位でのスクリーンへの表示ができる
 スクリーン2については奥と手前の選択が可能

LCDパネル
 画面上で表示可能な最大色数は16色
 モノクロでは0(白)かららF(黒)まで

LCDカラーマップ
 実際表示できるのはLCDパネルから8色のみ
 LCDパネルからLCDカラーマップに8色を選択する

パレット
 パレットはパレット番号0〜15まで存在
 1パレットにつき4色を持つ
 パレットの色はLCDカラーマップから選択する
 パレットはパレット番号により性質が違う
 パレット0〜3番はキャラクター用で透明無し
 パレット4〜7番は同じくキャラクター用で透明色を持つ
 パレット8〜11番はキャラクター、スプライト用で透明無し
 パレット12〜15番はキャラクター、スプライト用で透明色を持つ
 透明色を使う場合パレットの下位4ビットの色が透明色に割り当てられる

 2、準備

まずディスプレイの設定
次にスクリーンの設定
次にLCDパネルからLCDカラーマップを作成する
次にパレットを作成する
次にキャラクターを設定する
次にスプライトを設定する

 3、ディスプレイの設定

display_control(0x0007);

スクリーン1、スクリーン2、スプライト使用可

bit0   :1でスクリーン1が使用可能
bit1   :1でスクリーン2が使用可能
bit2   :1でスプライトが使用可能
bit3   :1でスプライトウィンドウが使用可能
bit4-5 :スクリーン2ウィンドウ機能 10で内側を表示 11で外側を表示
bit8-10:背景色の設定 LCDカラーマップから番号を設定

 4、スクリーンの設定

screen_set_scroll(0, 0, 0);

スクリーン1をディスプレイの座標(0,0)に設置

引数1:0でスクリーン1 1でスクリーン2
引数2:X座標 単位はドット
引数3:Y座標 単位はドット

 5、LCDカラーマップの作成

lcd_set_color(0x6420, 0xFCA8);

これでLCDカラーマップに
 0-1-2-3-4-5-6-7
[0 2 4 6 8 A C F]
を設置したことになる

 6、パレットの設定

palette_set_color(0, 0x7420);

パレット0にカラーマップ上の色
 3-2-1-0
[7 4 2 0]
を設置したことになる

 7、キャラクターの設定

font_set_colordata(0, 2, sample_char);

キャラクター番号0とキャラクター番号1へ2個のキャラクターを設定
sample_charには2つぶんのキャラクター情報が必要になる

引数1:キャラクター番号(0-511)
引数2:設定するキャラクターの個数
引数3:キャラクター配列の先頭ポインタ

 8、スプライトの範囲の設定

sprite_set_range(0, 1);

スプライト番号0から1個だけ使用可能にする

引数1:使用可能にする最初のスプライト番号(0-127)
引数2:使用可能にするスプライトの個数(0-128)

 9、スプライトの設定

sprite_set_char(0, 0x3801);

スプライト番号0にキャラクター番号1をパレット番号12で設定
スプライトはスクリーン2の手前に表示される

引数1:スプライト番号(0-127)
引数2:スプライト情報

bit0-8 :キャラクター番号(0-511)
bit9-11:パレット番号(0-7) 注意:0をセットするとパレット番号8を設定
bit12  :1でスプライトウィンドウの外側部分を表示
bit13  :0でスクリーン2の奥に表示 1でスクリーン2の手前に表示
bit14  :1で横方向反転
bit15  :1で縦方向反転

 10、キャラクターの表示

screen_fill_char(0, 0, 0, 1, 1, 0x0001);

スクリーン1にキャラクター番号1をキャラクター座標(0,0)に表示

引数1:0でスクリーン1 1でスクリーン2
引数2:X座標 単位はキャラクター
引数3:Y座標 単位はキャラクター
引数4:キャラクターを表示する範囲の横幅
引数5:キャラクターを表示する範囲の縦幅
引数6:キャラクター情報

bit0-8 :キャラクター番号(0-511)
bit9-12:パレット番号(0-15)
bit13  :未使用
bit14  :1で横方向反転
bit15  :1で縦方向反転

 11、スプライトの表示

sprite_set_location(0, 0, 0);

スプライト番号0を座標(0,0)に表示

引数1:スプライト番号(0-127)
引数2:X座標 単位はドット
引数3:Y座標 単位はドット

 12、ディスプレイイメージ

           (奥)
------------------------ (背景)
------------------------ (スクリーン1)
               ----      (スクリーン1のスプライト)
    ----                 (スクリーン2のスプライト(選択可))
------------------------ (スクリーン2)
       ----              (スクリーン2のスプライト(選択可))
          (手前)

 13、メモ

スクリーン2には最初に透明キャラを埋める
これをやらないとスクリーン2のキャラの無い部分がスクリーン1のキャラで埋められる
よってスクリーン1とスクリーン2の間でスプライトを表示できないことがある

inserted by FC2 system