標準ライブラリ - Kuin
説明
Kuinのシステム周りのことが設定出来たり取得出来たりする、極めて重要なライブラリの一つです。
かなり頻繁に使用するものも存在するので、丸暗記してもいいレベルです。
所有メソッド
Act() : なし
説明
Kuin@Act関数は、画面の更新、入力の処理、フレームレート調整など、Kuin側の処理を行う関数です。
この関数を呼ばないとウィンドウがフリーズしてしまうので、「呼吸」のようなものだと考えて、頻繁に呼び出してください。
基本的にはwhile(true)の無限ループとセットで使用する。というかそれ以外の使用方法は無いとっても過言ではない(一応あるけど)
引数
戻り値
サンプルコード(Ver0.031)
func Main()
var startTime : int
var nowTime : int
var delta : int :: -1
do startTime :: Kuin@UnixTime() {一番初めの起動時間を取得するため、UnixTimeで初期化}
while(true)
do Kuin@Act()
{メインのループ処理ここから}
do nowTime :: Kuin@UnixTime() {現在の時刻を取得}
if((nowTime-startTime) <> delta) {起動時間と、現在時間の差に変化が生じたら}
do delta :: nowTime-startTime {差分値を上書きしておいてから}
do Dbg
@Log("プログラム起動から" ~ delta
.ToStr
() ~
"秒経過") {変化量を表示させる
}
{メインのループ処理ここまで}
Stop() : なし
説明
Kuin@Stop関数は、無限ループ中でKuin@Act関数を呼び出し続けるだけの関数です。
それ以後処理するものがなく、ウィンドウを待機状態にしたいときに使います。
性質上、Kuin@Act()で同じ事ができますけど、まあ簡易版ですね。
引数
戻り値
サンプルコード(Ver0.031)
func Main()
var startTime : int
var endTime : int
do startTime :: Kuin@SysTime()
for(1,30000000,1) {30000000回floatの乱数を生成するだけ}
do Kuin@RndF()
do endTime :: Kuin@SysTime()
do Dbg
@Log("30000000回float乱数を生成するのに" ~
(((endTime
-startTime
)$float)/1000.0).ToStr
() ~
"秒かかりました") do Kuin@Stop()
Cnt() : int
説明
プログラムを起動してから経過したフレーム数を取得します。
Ver1.00では60fpsなので、処理落ち無くKuin@Act()を呼び続ければ、1秒間に60カウントの割合で増加していく。
戻り値がintなので、処理落ちなく60fpsで動き続けた場合、50億年弱の間起動し続けると、オーバーフローエラーが発生する(つまりは問題ないです)
引数
戻り値
- int
- 経過したフレーム数を返します
- フレーム数のカウント処理は、Kuin@Act()が呼び出されると行われるため、Kuin@Act()を呼び出した回数を返す、という表現でも間違いではない
サンプルコード(Ver0.031)
func Main()
do Dbg
@Log(Kuin
@Cnt
().ToStr
()) {Kuin
@Act
()を呼び出す前は、
0を返す
} while(true)
do Kuin@Act()
do Dbg
@Log(Kuin
@Cnt
().ToStr
()) {Kuin
@Act
()を呼び出した後は、Kuin
@Act
()を呼び出した回数と同じになる
}
FPS() : float
説明
フレームレートを返します。
1.0が帰ってくれば処理落ちなく実行できていることを示します。
引数
戻り値
- float
- フレームレートを返します。
- Ver1.00では60fpsで動作するので、この値を60倍すれば実際に消費したフレーム数が取得出来ます。
サンプルコード(Ver0.031)
func Main()
var fps : float
var frameRate : float
var beforeRate : float :: -1.0
var startTime : int
var nowTime : int
var deltaTime : float
do startTime :: Kuin@SysTime()
while(true)
do Kuin@Act()
do fps :: Kuin@FPS()
do frameRate :: fps * 30.0
if(frameRate <> beforeRate) {フレームレートに変化が生じたら}
do nowTime :: Kuin@SysTime()
do deltaTime :: ((nowTime-startTime)$float)/1000.0
{Wikiの都合上、横にソースコードを伸ばさない為に変数に入れる}
var mes : []char :: ""
do mes :~ "(" ~ deltaTime.ToStrF(".3f") ~ "秒経過)"
do mes :~ " フレームレート : " ~ fps.ToStrF(".3f")
do mes :~ ",フレーム数 : " ~ frameRate.ToStr()
do beforeRate :: frameRate {フレームレートの更新}
SysTime() : int
説明
システム時間(OSが起動してからの時間)をミリ秒単位で返します。プログラムのある区間でかかった処理時間を計測するときに使います。
引数
戻り値
サンプルコード(Ver1.00)
func Main()
{Kuin@Stopのサンプルコードをご覧ください}
UnixTime() : int
説明
UNIX時間(1970年1月1日0時0分0秒からの経過時間)を秒単位で返します。現在時刻を取得するのに使います。
引数
戻り値
サンプルコード(Ver1.00)
func Main()
{Kuin@Actのサンプルコードをご覧ください}
テンプレメソッド(ひきすー:ひきすうかたー) : もどりちー
説明
テンプレメソッドの説明をここにー
引数
戻り値
サンプルコード(Ver1.00)
func Main()
{素敵なソースコードをここにー}
最終更新:2014年01月15日 23:02