ユーザ用ツール


reference:スクリーン制御

スクリーン制御

ACLS
ACLS GRP保存フラグ,SPDEF保存フラグ,GRPF保存フラグ [,ANIMDEF保存フラグ]

画面設定を全てクリアし、起動時状態に戻す

・引数を指定すると、一部の設定のみリセットせずに保存することができる

引数

GRP保存フラグ

1を指定するとフォントページを除いたグラフィックページをクリアせずに保存する
・省略すると0を指定した事になる

SPDEF保存フラグ

1を指定するとSPDEFの内容を保存する
・省略すると0を指定した事になる

GRPF保存フラグ

1を指定するとフォントページをクリアせずに保存する
・省略すると0を指定した事になる

ANIMDEF保存フラグ

1を指定するとANIMDEFで定義した内容をクリアせずに保存する
・省略すると0を指定した事になる

'ACLSは次のプログラムとほぼ同じ動作となる 
DEF ACLS KEEPGRP,KEEPSPDEF,KEEPGRPF
 VAR SCW=400,SCH=240

 XSCREEN SCW,SCH,2
 SPCLR
 BACKCOLOR &HFF000000
 FOR I=0 TO 3
  TSCREEN I,16,16:TLAYER I,0:TOFS I,0,0,0:ATTR I,0:COLOR I,#C_WHITE:CLS I
 NEXT
 TSCREEN #TCONSOLE,16,8:TLAYER #TCONSOLE, 0:TOFS #TCONSOLE,0,0,-4095:ATTR 0:COLOR #C_WHITE:CLS
 IF !KEEPGRP THEN
  FOR I=0 TO 5:GTARGET I:GCLS:NEXT
  LOADG "GRP:#SYS/DEFGRP",4
 ENDIF
 IF !KEEPGRPF THEN
  LOADG "GRP:#SYS/DEFFONT",#GRPF
 ENDIF
 GTARGET 0
 GCOLOR #C_WHITE
 GCLIP 0,0,#GRPWIDTH-1,#GRPHEIGHT-1
 SPSET #GSPRITE,0,0,SCW,SCH,0,1
 SPPAGE #GSPRITE,0
 SPLAYER #GSPRITE,0
 SPOFS #GSPRITE,0,0,4095
 IF !KEEPSPDEF THEN
  SPDEF
 ENDIF
 ANIMDEF
 FOR I=0 TO 7:LAYER I:LFILTER I:LCLIP I:LMATRIX I:NEXT
 FADE 0
END

XSCREEN 幅,高さ[,サンプル倍率[,合成モード[,アスペクト比]]]

画面解像度を設定する

・コンソール(テキストスクリーン4)のサイズは幅,高さに合わせて変更される
・それ以外のテキストスクリーン設定は変わらない
・グラフィック表示用スプライトの設定は幅,高さに合わせて変更される

引数

幅、高さ

画面の幅と高さをピクセル数で指定する
・幅:128~1280
・高さ:128~720
・幅・高さとも4で割り切れる数を指定可能

サンプル倍率

ピクセルをさらに細かく分割して、回転や拡大をよりなめらかに表現する事ができる
・1以上、幅にサンプル倍率をかけた物が1280以内、高さにサンプル倍率をかけた物が720以内の値まで指定可能
・省略時は1が設定される

合成モード

BASIC画面を最終的に表示画面に合成する際の描画方法を指定する

0 バイリニア
1 スマートニアレストネイバー
2 ニアレストネイバー

・0はピクセルの角がなめらかになるが、全体にぼやけた表示になる
・2は全体的にくっきりした表示になるが、ピクセルの角がギザギザになる
・1は0と2の中間
・省略時は0が設定される

アスペクト比

画面の縦横比:0.1~10
・1で正方形、1より小さいと縦長に、1より大きいと横長になる
・省略時は幅/高さが設定される。

XSCREEN OUT 幅,高さ[,サンプル倍率[,合成モード[,アスペクト比]]]

画面解像度を取得する

返値

幅, 高さ

画面の幅と高さ(ピクセル数単位)

サンプル倍率

合成モード

アスペクト比

ANIMDEF 定義番号,アニメ対象,データ配列[,ループ]

アニメーションの定義

・定義したアニメーションはSPANIMやTANIM命令で使用できる

引数

定義番号

アニメーション定義番号:0~1023

アニメ対象

変化させる要素を管理する数値または文字列

0 "XY" XY座標
1 "Z" Z座標
2 "R" 回転角度
3 "S" 倍率XY
4 "C" 表示色
5 "V" 変数(スプライト変数7の値)
6 "UV" UV座標(定義元画像座標)
7 "I" 定義番号

・文字列の末尾に"+"を付けるか、数値に8を加えるとアニメーション開始時点からの相対値となる
・文字列の末尾に"."を付けるか、数値に16を加えるとアニメーション終了時にスプライトを削除する

データ配列

アニメデータが格納された1次元数値配列

ループ

ループ回数:1~
・0を指定することで無限ループとなる
・省略すると1を指定した事になる

データ配列

・アニメデータは数値配列に次の順で用意(最大32個まで)
・時間1,項目1,[項目2,] 時間2,項目1,[項目2,]…

DIM PANIM[ 6 ]
PANIM[0]=-60 'frame(-60=smooth)
PANIM[1]=200 'offset X,Y
PANIM[2]=100
PANIM[3]=-30 'frame
PANIM[4]=50 'offset
PANIM[5]=20
ANIMDEF 0,"XY",PANIM

ANIMDEF 定義番号,アニメ対象,"@ラベル文字列"[,ループ]

アニメーションの定義(DATA命令で指定)

・定義したアニメーションはSPANIMやTANIM命令で使用できる

引数

定義番号

アニメーション定義番号:0~1023

アニメ対象

変化させる要素を管理する数値または文字列

0 "XY" XY座標
1 "Z" Z座標
2 "R" 回転角度
3 "S" 倍率XY
4 "C" 表示色
5 "V" 変数(スプライト内部変数7の値)
6 "UV" UV座標(定義元画像座標)
7 "I" 定義番号

・文字列の末尾に"+"を付けるか、数値に8を加えるとアニメーション開始時点からの相対値となる
・文字列の末尾に"."を付けるか、数値に16を加えるとアニメーション終了時にスプライトを削除する

@ラベル文字列

・アニメデータが格納されたDATA命令の先頭ラベル
・@ラベル名を""でくくって文字列として指定(または文字変数)

ループ

ループ回数:1~
・0を指定することで無限ループとなる
・省略すると1を指定した事になる

データ

アニメデータはDATA命令に次の順で用意

DATA キーフレーム数(最大32)
DATA 時間1,項目1[,項目2]
DATA 時間2,項目1[,項目2]
 :

@MOVDATA
DATA 2 'counter
DATA -60,200,100 'frame,offset
DATA -30,50,20 'frame,offset
ANIMDEF 0,"XY",@MOVDATA

ANIMDEF 定義番号,アニメ対象,時間1,項目1[,項目2][,時間2,項目1[,項目2]]…[,ループ]

アニメーションの定義(直接引数として指定)

・定義したアニメーションはSPANIMやTANIM命令で使用できる

引数

定義番号

アニメーション定義番号:0~1023

アニメ対象

変化させる要素を管理する数値または文字列

0 "XY" XY座標
1 "Z" Z座標
2 "R" 回転角度
3 "S" 倍率XY
4 "C" 表示色
5 "V" 変数(スプライト内部変数7の値)
6 "UV" UV座標(定義元画像座標)
7 "I" 定義番号

・文字列の末尾に"+"を付けるか、数値に8を加えるとアニメーション開始時点からの相対値となる
・文字列の末尾に"."を付けるか、数値に16を加えるとアニメーション終了時にスプライトを削除する

時間,項目

・アニメデータそのもの(必要な数分並べる、最大32個)

ループ

ループ回数:1~
・0を指定することで無限ループとなる
・省略すると1を指定した事になる

ANIMDEF 0,"XY",-60,200,100,-30,50,20

ANIMDEF 定義番号

指定定義番号のアニメーションをクリアする

引数

定義番号

クリアするアニメーション定義番号:0~1023

ANIMDEF 0

ANIMDEF

アニメーション定義をすべてクリアする

ANIMDEF

BACKCOLOR 背景色

BASIC画面の背景色を設定する

引数

背景色

背景色の色コード

BACKCOLOR()

BASIC画面の背景色を取得する

返値

背景色

設定されている背景色の色コード

FADE フェード色

画面にフェード効果をかける

・フェード色で塗りつぶしたスプライトを画面全体にかぶせるのと同じ効果となる

引数

フェード色

フェード色の色コード
・アルファ成分が大きいほど濃く色が乗る

FADE フェード色,時間

フェードイン、フェードアウト効果をかける

・指定時間をかけて現在のフェード色から指定色に徐々にフェード色を変更する

引数

フェード色

フェード色の色コード
・アルファ成分が大きいほど濃く色が乗る
・アルファ成分が255だとフェードアウト効果
・アルファ成分が0だとフェードイン効果

時間

フェード効果にかける時間をフレームカウントで指定する
・処理落ちがない場合、60で1秒

FADE()

現在のフェード色を取得する

返値

現在のフェード色
・フェードイン・フェードアウト中の色も取得できる

FADECHK()

フェードイン・フェードアウト中かどうかを調べる

返値

フェードイン・フェードアウト中であれば1、していない時は0

reference/スクリーン制御.txt · 最終更新: 2019/08/15 12:54 (外部編集)

ページ用ツール