- 追加された行はこの色です。
- 削除された行はこの色です。
#contents
* SkinScript とは? [#y9775c6e]
Ver.6 形式のスキン([[PSSdev/FreeDesign]])を Lua ベースのスキンで置き換えたものです.
PSS の学習画面のデザインを容易に変更できるよう設計されています.
* 概要 [#k21953ec]
PSSの学習画面で再描画が必要となった時点で,ある1つの Lua の関数が呼び出される.
Lua の関数からは,学習画面を操作する様々な関数を呼び出せるほか,学習画面の状態を取得することもできる.
PSSの学習画面で再描画が必要となった時点で,ある1つの Lua の関数(フック関数)が呼び出される.
* Lua 側の関数 [#le790ebd]
Lua の関数からは,学習画面を操作する様々な関数を呼び出せるほか,学習画面の状態を取得することもできる.これらの機能を用いて,学習画面を自在にデザインすることが可能である.
- OnInit : 初期化
>PSSの学習画面が始まったときに呼び出される関数.
>例えばイメージファイルの登録などに利用される.
* スキン作成ガイドライン [#le911d2f]
- OnUpdate : 再描画
スキンの作者にとっては,標準添付スキンが参考になる.
特に,default.lua と pss700-module.lua に注目してほしい.
>再描画が必要となったタイミングで呼び出される関数.ほぼ全ての処理はここに書くことになる.
多くの場合,default.lua を変更することである程度カスタマイズされたスキンを作成することができる(この方針で pss700-big.lua などの標準添付スキンが開発されている).
- OnTimer : タイマー
>ただし,pss700-module.lua が常に互換性を持っていることを期待することはできない.バージョンアップにより pss700-module.lua で参照される変数が変化する可能性があることに留意して欲しい.
>(こうした問題を安全にさけるためには pss700-module.lua のコピーを作り,それをメインスキンファイルから参照する方法がある)
>インターバルタイマー.
>非常に短い間隔で呼び出される関数.
default.lua の変更のみで対応できないデザイン要素は,pss700-module.lua ファイル(モジュールファイル)を変更することになる.
>アニメーションの実装などに利用できる.
たとえばアニメーションを変更するにはモジュールファイルを変更する必要がある.
** 標準添付スキンの構成 [#aa2c576c]
default.lua を起点に,種々の lua ファイルが参照されている.
参照関係はおよそ次のようになっている.
- default.lua
-- pss700-module.lua
--- animation-module.lua
--- limitbar-module.lua
default.lua はスキンを構成するファイルの中でも基準となるファイルであり,この種のスキンファイルをここでは ''メインスキンファイル'' と呼ぶ.
メインスキンファイルから参照されるスキンファイルを ''モジュールファイル'' と呼ぶ.
*** メインスキンファイル [#xf5033b2]
default.lua 以外のメインスキンファイルに pss700-big.lua, pss700-bigmore.lua, pss700-big3.lua がある.
メインスキンファイルには必ず下記の変数を定義する必要がある.
- DesignName
- DlgWidth_n
- DlgHeight_n
DesignName は文字通りデザイン名である.スキンの名称を記述する.
DlgWidth_n と DlgHeight_n は学習画面のサイズである.それぞれ学習画面の横方向,縦方向のサイズを指定する.
default.ini の先頭部分には下記のように記述されている.
-- design-name
DesignName = "v7.0スタイル"
-- dialog-size
DlgWidth_n = 800 -- dialog-width
DlgHeight_n = 560 -- dialog-height
これら(とくにDesignName)はユーザにスキンを選択する際のヒントを与えるものであり,適切に設定することが望ましい.
*** モジュールファイル [#l54e10f6]
メインスキンファイルや他のモジュールファイルから参照されるスキンファイルであり,多くの場合,いわゆるサブモジュール的な要素が書かれる.
ただし,pss700-module.lua ファイルは標準添付スキン群の実装部という意味合いが強い.
>たとえて言うならメインスキンファイルが「設定」であり,pss700-module.lua が「本体」であると言える.
* リファレンス [#vf1f2777]
** フック関数 [#le790ebd]
学習画面がある状態に変化したときに必ず呼び出される Lua 側の関数.
これらの関数はスキンに必ず記述しておく必要がある.
*** OnInit : 初期化 [#vbb5d287]
PSSの学習画面が始まったときに呼び出される関数.
例えばイメージファイルの登録などに利用される.
*** OnUpdate : 再描画 [#m422c23c]
再描画が必要となったタイミングで呼び出される関数.
ほぼ全ての処理はここに書くことになる.
*** OnTimer : タイマー [#u4a66666]
インターバルタイマー.
非常に短い間隔で呼び出される関数.
アニメーションの実装などに利用できる.
** PSS 操作関数 [#l955e6a3]
[[./操作関数]]
- [[./操作関数]]
** PSS 変数群 [#lb8550aa]
[[./変数]]
- [[./変数]]
** ユーザ変数 [#o08212dd]
ユーザが PSS の設定画面から簡単にいくつかの設定を変更できるようにするための
仕組みである.
Skin7 のユーザ変数は,Skin6 よりも簡単に,かつ構造的に記述することができる.
''例''
PSS.CreateFont( 0, PSS.LoadUserVar( "問題文のフォント", "font", "18, 1, 0, 0, 0, MS ゴシック") );