HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0518
otiFPS操作モジュール1解決


oti

リンク

2015/5/18(Mon) 22:27:04|NO.69278

ゲームのデバッグとかで使えるかな

#ifndef __module_fpstool__ #define __module_fpstool__ // // **************************************************** // FPS操作モジュール // **************************************************** // // HSPの定義ヘッダ #include "llmod3/llmod3.hsp" #include "llmod3/trackbox.hsp" // #module module_fpstool // 定数 #const _SCREEN_WIDTH_ 300 #const _SCREEN_HEIGHT_ 50 // // --- --- --- // リセット // --- --- --- // #deffunc fps_reset int time, local winid, local px, local py // 操作先ID winid = ginfo( 3 ) // 配置すべき座標を取得 px = ginfo( 4 ) + ginfo( 10 ) py = ginfo( 5 ) // 初期化確認 if ( _INIT_ == 1 ) { // 解放 _cls // 利用解除にする _INIT_ = 0 } // 初期化確認 if ( _INIT_ == 0 ) { // 利用中にする _INIT_ = 1 // 待機時間を保存 _TIME_ = limit( time, 1, 300 ) // 制御画面 _SCREEN_ = ginfo( 25 ) screen _SCREEN_, _SCREEN_WIDTH_, _SCREEN_HEIGHT_, 4 + 8, px, py title "FPS操作" // ボタン設定 objmode 2, 0 objsize _SCREEN_HEIGHT_, _SCREEN_HEIGHT_ // ブレークポイント用 _BREAKPOINT_ = 1 // フォント切り替え font "Webdings", 20 // ボタン pos 0, 0 button gosub "", *breakpoint : _BUTTON_ = stat // ボタンを再生にする gosub *breakpoint // フォント設定 font msgothic, 15, 17 // トラックボックス pos _SCREEN_HEIGHT_, 0 trackbox _SCREEN_WIDTH_ - _SCREEN_HEIGHT_, _SCREEN_HEIGHT_, 1 + 8 + $100 : _TRACKBOX_ = stat // 範囲設定 / つまみ位置移動 sel_trackbox _TRACKBOX_ trackrng 1, 300, 0 trackpos _TIME_, 0 // 最前面に gsel _SCREEN_, 2 } // 元に戻す gsel winid return // // --- --- --- // 同期 // --- --- --- // #defcfunc fps_sync local winid // 操作先ID winid = ginfo( 3 ) // 最前面に gsel _SCREEN_ // つまみ位置取得 trackpos 0, 1 // 元に戻す gsel winid // 待機時間とする return stat // // --- --- --- // ブレークポイント関連 // --- --- --- // // ユーザー向けブレークポイント #deffunc fps_breakpoint // ユーザー用にわかりやすくする fps_breakpoint_stop return // 切り替え *breakpoint // 一時停止 if ( _BREAKPOINT_ == 0 ) {fps_breakpoint_stop} // 再生 if ( _BREAKPOINT_ == 1 ) {fps_breakpoint_play} return // 一時停止 #deffunc fps_breakpoint_stop local winid // 操作先ID winid = ginfo( 3 ) // 制御画面 gsel _SCREEN_ // ブレークポイント切り替え _BREAKPOINT_ = 1 // ボタンを再生に記号に objprm 0, "4" // 元に戻す gsel winid // ループ待機 repeat // 待機 await 30 // もしポーズ解除されたら抜ける if ( _BREAKPOINT_ == 0 ) {break} loop return // 再生 #deffunc fps_breakpoint_play local winid // 操作先ID winid = ginfo( 3 ) // 制御画面 gsel _SCREEN_ // ブレークポイント切り替え _BREAKPOINT_ = 0 // ボタンを再生に記号に objprm 0, ";" // 元に戻す gsel winid // ループ待機 repeat // 待機 await 30 // もしポーズ解除されたら抜ける if ( _BREAKPOINT_ == 0 ) {break} loop return #global #endif ///////////////////////////////////////////////////////// // サンプルスクリプト ///////////////////////////////////////////////////////// // 初期化 fps_reset 16 *main redraw 0 color 255, 255, 255 : boxf // ★を描画 gosub *drawstar redraw 1 // 時間調整 await fps_sync() goto *main // // ★を描画 // *drawstar // 大量にランダムな描画 repeat rnd( 9 ) * rnd( 99 ) color rnd( 256 ), rnd( 256 ), rnd( 256 ) pos rnd( 640 ), rnd( 480 ) mes "★" loop return



この記事に返信する


スペース

リンク

2015/5/27(Wed) 18:39:54|NO.69377

常にループしているようなプログラムではすごく便利そうですね。



ONION software Copyright 1997-2023(c) All rights reserved.