Kuin

標準ライブラリ - Kuin

説明

Kuinのシステム周りのことが設定出来たり取得出来たりする、極めて重要なライブラリの一つです。
かなり頻繁に使用するものも存在するので、丸暗記してもいいレベルです。




所有メソッド

Act() : なし

説明

Kuin@Act関数は、画面の更新、入力の処理、フレームレート調整など、Kuin側の処理を行う関数です。
この関数を呼ばないとウィンドウがフリーズしてしまうので、「呼吸」のようなものだと考えて、頻繁に呼び出してください。
基本的にはwhile(true)の無限ループとセットで使用する。というかそれ以外の使用方法は無いとっても過言ではない(一応あるけど)

引数

  • なし
    • ないよっ

戻り値

  • なし
    • ないよっ

サンプルコード(Ver0.031)

  1. func Main()
  2. var startTime : int
  3. var nowTime : int
  4. var delta : int :: -1
  5.  
  6. do startTime :: Kuin@UnixTime() {一番初めの起動時間を取得するため、UnixTimeで初期化}
  7. while(true)
  8. do Kuin@Act()
  9. {メインのループ処理ここから}
  10. do nowTime :: Kuin@UnixTime() {現在の時刻を取得}
  11.  
  12. if((nowTime-startTime) <> delta) {起動時間と、現在時間の差に変化が生じたら}
  13. do delta :: nowTime-startTime {差分値を上書きしておいてから}
  14. do Dbg@Log("プログラム起動から" ~ delta.ToStr() ~ "秒経過") {変化量を表示させる}
  15. end if
  16.  
  17. {メインのループ処理ここまで}
  18. end while
  19. end func



Stop() : なし

説明

Kuin@Stop関数は、無限ループ中でKuin@Act関数を呼び出し続けるだけの関数です。
それ以後処理するものがなく、ウィンドウを待機状態にしたいときに使います。
性質上、Kuin@Act()で同じ事ができますけど、まあ簡易版ですね。

引数

  • なし
    • ないよっ

戻り値

  • なし
    • ないよっ

サンプルコード(Ver0.031)

  1. func Main()
  2. var startTime : int
  3. var endTime : int
  4.  
  5. do startTime :: Kuin@SysTime()
  6. for(1,30000000,1) {30000000回floatの乱数を生成するだけ}
  7. do Kuin@RndF()
  8. end for
  9. do endTime :: Kuin@SysTime()
  10.  
  11. do Dbg@Log("30000000回float乱数を生成するのに" ~ (((endTime-startTime)$float)/1000.0).ToStr() ~ "秒かかりました")
  12. do Kuin@Stop()
  13. end func



Cnt() : int

説明

プログラムを起動してから経過したフレーム数を取得します。
Ver1.00では60fpsなので、処理落ち無くKuin@Act()を呼び続ければ、1秒間に60カウントの割合で増加していく。
戻り値がintなので、処理落ちなく60fpsで動き続けた場合、50億年弱の間起動し続けると、オーバーフローエラーが発生する(つまりは問題ないです)

引数

  • なし
    • ないよっ

戻り値

  • int
    • 経過したフレーム数を返します
    • フレーム数のカウント処理は、Kuin@Act()が呼び出されると行われるため、Kuin@Act()を呼び出した回数を返す、という表現でも間違いではない

サンプルコード(Ver0.031)

  1. func Main()
  2. do Dbg@Log(Kuin@Cnt().ToStr()) {Kuin@Act()を呼び出す前は、0を返す}
  3. while(true)
  4. do Kuin@Act()
  5. do Dbg@Log(Kuin@Cnt().ToStr()) {Kuin@Act()を呼び出した後は、Kuin@Act()を呼び出した回数と同じになる}
  6. end while
  7. end func



FPS() : float

説明

フレームレートを返します。
1.0が帰ってくれば処理落ちなく実行できていることを示します。

引数

  • なし
    • ないよっ

戻り値

  • float
    • フレームレートを返します。
    • Ver1.00では60fpsで動作するので、この値を60倍すれば実際に消費したフレーム数が取得出来ます。

サンプルコード(Ver0.031)

  1. func Main()
  2. var fps : float
  3. var frameRate : float
  4. var beforeRate : float :: -1.0
  5.  
  6. var startTime : int
  7. var nowTime : int
  8. var deltaTime : float
  9.  
  10. do startTime :: Kuin@SysTime()
  11. while(true)
  12. do Kuin@Act()
  13. do fps :: Kuin@FPS()
  14. do frameRate :: fps * 30.0
  15. if(frameRate <> beforeRate) {フレームレートに変化が生じたら}
  16. do nowTime :: Kuin@SysTime()
  17. do deltaTime :: ((nowTime-startTime)$float)/1000.0
  18.  
  19. {Wikiの都合上、横にソースコードを伸ばさない為に変数に入れる}
  20. var mes : []char :: ""
  21. do mes :~ "(" ~ deltaTime.ToStrF(".3f") ~ "秒経過)"
  22. do mes :~ " フレームレート : " ~ fps.ToStrF(".3f")
  23. do mes :~ ",フレーム数 : " ~ frameRate.ToStr()
  24.  
  25. do Dbg@Log(mes)
  26. do beforeRate :: frameRate {フレームレートの更新}
  27. end if
  28. end while
  29. end func



SysTime() : int

説明

システム時間(OSが起動してからの時間)をミリ秒単位で返します。プログラムのある区間でかかった処理時間を計測するときに使います。

引数

  • なし
    • ないよっ

戻り値

  • int
    • システム時間(ミリ秒)を返します。

サンプルコード(Ver1.00)

  1. func Main()
  2. {Kuin@Stopのサンプルコードをご覧ください}
  3. end func



UnixTime() : int

説明

UNIX時間(1970年1月1日0時0分0秒からの経過時間)を秒単位で返します。現在時刻を取得するのに使います。

引数

  • なし
    • ないよっ

戻り値

  • int
    • UNIX時間を返します。

サンプルコード(Ver1.00)

  1. func Main()
  2. {Kuin@Actのサンプルコードをご覧ください}
  3. end func



テンプレメソッド(ひきすー:ひきすうかたー) : もどりちー

説明

テンプレメソッドの説明をここにー

引数

  • ひきすー:ひきすうかたー
    • ひきすーのせつめー

戻り値

  • もどりちかたー
    • もどりちせつめいー

サンプルコード(Ver1.00)

  1. func Main()
  2. {素敵なソースコードをここにー}
  3. end func