Ver.6 形式のスキン(PSSdev/FreeDesign)を Lua ベースのスキンで置き換えたものです.
PSS の学習画面のデザインを容易に変更できるよう設計されています.
PSSの学習画面で再描画が必要となった時点で,ある1つの Lua の関数(フック関数)が呼び出される.
Lua の関数からは,学習画面を操作する様々な関数を呼び出せるほか,学習画面の状態を取得することもできる.これらの機能を用いて,学習画面を自在にデザインすることが可能である.
スキンの作者にとっては,標準添付スキンが参考になる. 特に,default.lua と pss700-module.lua に注目してほしい.
多くの場合,default.lua を変更することである程度カスタマイズされたスキンを作成することができる(この方針で pss700-big.lua などの標準添付スキンが開発されている).
ただし,pss700-module.lua が常に互換性を持っていることを期待することはできない.バージョンアップにより pss700-module.lua で参照される変数が変化する可能性があることに留意して欲しい.
(こうした問題を安全にさけるためには pss700-module.lua のコピーを作り,それをメインスキンファイルから参照する方法がある)
default.lua の変更のみで対応できないデザイン要素は,pss700-module.lua ファイル(モジュールファイル)を変更することになる.
たとえばアニメーションを変更するにはモジュールファイルを変更する必要がある.
default.lua を起点に,種々の lua ファイルが参照されている.
参照関係はおよそ次のようになっている.
default.lua はスキンを構成するファイルの中でも基準となるファイルであり,この種のスキンファイルをここでは メインスキンファイル と呼ぶ.
メインスキンファイルから参照されるスキンファイルを モジュールファイル と呼ぶ.
default.lua 以外のメインスキンファイルに pss700-big.lua, pss700-bigmore.lua, pss700-big3.lua がある.
メインスキンファイルには必ず下記の変数を定義する必要がある.
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)はユーザにスキンを選択する際のヒントを与えるものであり,適切に設定することが望ましい.
メインスキンファイルや他のモジュールファイルから参照されるスキンファイルであり,多くの場合,いわゆるサブモジュール的な要素が書かれる. ただし,pss700-module.lua ファイルは標準添付スキン群の実装部という意味合いが強い.
たとえて言うならメインスキンファイルが「設定」であり,pss700-module.lua が「本体」であると言える.
学習画面がある状態に変化したときに必ず呼び出される Lua 側の関数.
これらの関数はスキンに必ず記述しておく必要がある.
PSSの学習画面が始まったときに呼び出される関数. 例えばイメージファイルの登録などに利用される.
再描画が必要となったタイミングで呼び出される関数. ほぼ全ての処理はここに書くことになる.
インターバルタイマー. 非常に短い間隔で呼び出される関数.
アニメーションの実装などに利用できる.
ユーザが PSS の設定画面から簡単にいくつかの設定を変更できるようにするための 仕組みである.
Skin7 のユーザ変数は,Skin6 よりも簡単に,かつ構造的に記述することができる.
例
PSS.CreateFont( 0, PSS.LoadUserVar( "問題文のフォント", "font", "18, 1, 0, 0, 0, MS ゴシック") );