■ このドキュメントについて MOD_AlphaLayer+TimerRepeat - version 2.0  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・a2d+AlphaLayer.hsp (※対応OS:Windows8以降) ・mod_TimerRepeat.hsp ※以下のモジュールはmod_TimerRepeat.hsp内に記述されるようになりました。   ・mod_uniq.hsp   ・mod_waiton.hsp これらのモジュールについてのドキュメントです。 詳細は以下に記述しています。 ■ 各モジュールのヘルプ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・a2d+AlphaLayer.hs ・mod_TimerRepeat.hs 上記の.hsファイルを「C:\hsp3**\hsphelp」フォルダ内にコピーしてください。 HDLに組み込まれ、HSPエディタ上のF1ヘルプで参照出来るようになります。 ┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳ ┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻ ━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ モジュール名│a2d+AlphaLayer.hsp バージョン│1.1 作者│MIZUSHIKI (mail:suwa.mizushiki@gmail.com) │ Copyright(C) 2019 MIZUSHIKI ━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■ 概要 ■  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ Artlet2Dモジュール(a2d.hsp)の仮想イメージを用いて、アルファブレンド半透明 子ウィ ンドウを作ることができます。 デフォルトではマウスクリック等のウィンドウメッセージを透過する仕様になっています が、コールバックを設定してサブクラス化し、ウィンドウメッセージを取得することも出 来ます。 ■ 注意 ■  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ Windows 8 以降でしか動作しません。 このモジュールを利用して作られた作品には「対応OS:Windows8以降」を記述願います。 開発環境は、HSP3.6β1以降を推奨。 デバッグ実行ランタイム(hsp3.exe)の改造が不要になります。 ■ 命令 / 関数 ■  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ AddAlphaLayerBgscr  枠なしウィンドウ(bgscr)をアルファレイヤー子ウィンドウとして親ウィンドウにセッ  トする SetImageToLayer  アルファレイヤーにイメージをセットする SetCallbackAlphaLayer  アルファレイヤーのWindowsメッセージ割り込み指定 UnsetCallbackAlphaLayer  アルファレイヤーのWindowsメッセージ割り込みを解除 ShowAlphaLayer  アルファレイヤー子ウィンドウを表示させる HideAlphaLayer  アルファレイヤー子ウィンドウを非表示にする SetAlphaLayerAlpha  アルファレイヤーの透明度を設定する widthAlphaLayer  アルファレイヤー子ウィンドウのサイズ・位置設定 GetAlphaLayerRect  アルファレイヤー子ウィンドウの左上・右下座標の取得 zOrder_Top  アルファレイヤーをZオーダー(表示順序)の一番上に配置する zOrder_Bottom  アルファレイヤーをZオーダー(表示順序)の一番下に配置する zOrder_Next  アルファレイヤーのZオーダー(表示順序)を指定したウィンドウの下に配置する ■ 謝辞 ■  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 参考:なたで様「レイヤードウィンドウ総合モジュール」 https://www.natade.net/lang/hsp/ (HSP | なたでラボ / モジュール ) ウィンドウの透過処理について、なたで様の「レイヤードウィンドウ総合モジュール」を 参考にさせて頂きました。ありがとうございます! モジュール:ぷま様「バイナリサーチ(BM法) bsearch」 http://hsp.tv/play/pforum.php?mode=pastwch&num=29717 (代替) (HSPTV!掲示板 / sdim,bload命令について) 非常に速い検索が可能になりました。ありがとうございます! ■ 履歴  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ version 1.1 2019/11/10  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・HSP3.5 で動かなくなっていたバグを修正。 version 1.0 2019/10/31  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・リリース。 ━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ モジュール名│mod_TimerRepeat.hsp バージョン│2.0 作者│MIZUSHIKI (mail:suwa.mizushiki@gmail.com) │ Copyright(C) 2019-2020 MIZUSHIKI ━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■ 概要 ■  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 一定間隔で実行するタイマー機能をrepeat~loopのような記述で簡単に利用することが出 来るようになります。 また、timer_ease命令を合わせて使うことで、時間変化によるイージング値を簡単に取得 出来るようになります。  □ モジュール内記述:mod_uniq.hsp - ver.1.0 □   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  指定した区間において、名前の被らないユニークな変数を定義します。  □ モジュール内記述:mod_waiton.hsp(+タイマーループ割り込み) - ver.1.2.1 □   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  中断中にタイマーループの指定時間が来たら適宜実行されるようになっています。  また、oncmd等の割り込みジャンプにも対応しています。   通常のwaitでは oncmd, onkey, onclick の割り込みジャンプが発生すると、return   で戻ってたときに待ち時間が残っていても次の行から処理が始まってしまいます。      timer_waitonは、残り時間があった場合は残りのぶん再waitします。      a2d+AlphaLayer.hsp でSetCallbackAlphaLayerを使いメッセージ割り込みを指定した   場合、マウスの通過でも wait/await の待機時間が無効化されてしまうため利用を推   奨します。     mod_TimerRepeat.hsp をインクルードした時点で、通常のwait命令がtimer_waitonの機  能で上書きされます。(waitと書いてもtimer_waitonの処理が実行されます。) ■ 命令 / 関数 ■  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ timer_repeat  タイマーループの始まりの場所を示す timer_loop  タイマーループの始まりに戻る timer_kill  タイマーループを終了させる timer_init  タイマーループ初期化処理(_init_end まで) timer_deinit  タイマーループ後始末処理 timer_break  タイマーループから抜けだしてタイマーも終了させる timer_continue  タイマーループをやり直す timer_cnt  タイマーループのカウンター timer_getTimerTime  実行中のタイマーループの経過時間を取得 timer_setTimerSpeed  タイマーループの繰り返し間隔を変更 timer_getTime  ミリ秒タイマー timer_ease  タイマーループ内で時間変化によるイージング値の取得 geteaseT  時間変化によるイージング値を取得 ◆ mod_uniq.hsp - ver.1.0 ◆ uniq_start  uniq()のスコープ開始 uniq  ユニークな変数を定義 uniq_end  uniq()のスコープ終了 ◆ mod_waiton.hsp(+タイマーループ割り込み) - ver.1.2.1 ◆ timer_waiton  実行を一定時間中断する(タイマーループ割り込み+oncmd等の割り込みジャンプに対応) timer_awaiton  一定の時間で待つ(タイマーループ割り込み+oncmd等の割り込みジャンプに対応) timer_stop  プログラム中断(タイマーループ割り込みに対応) ■ 履歴  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ version 2.0 2020/ 1/ 3  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ・HSP3Dishでも利用できるように変更。    ・WM_TIMER使用からwait書き換え式に変更。(精度も良くなった)    ・timer_easeで渡されたものが変数かどうかを自力読み取りするようにした。    ・timer_getTimeの数値をgettime、getreqから取得するようにした。  ・timer_setTimerEngine、timer_fireでタイマー実行のタイミングをコントロールでき   るようにした。  ・mod_uniq.hsp(ver.1.0)、mod_waiton.hsp+タイマーループ割り込み(ver.1.2.1)をモ   ジュール内に記述するようにした。  ・[名称変更]geteaseWithTime→geteaseT  ・[バグfix]timer_continueの第1パラが必ず0になってしまうバグを修正。 version 1.1 2019/11/ 9  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ・mod_waiton.hspを自動でインクルードするように修正。   (一緒に使う必要なくなったと思ったらそんなことなかった。) ・timer_setTimerSpeed命令の変数指定ミスを修正。 version 1.0 2019/10/31  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ・リリース。 ┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳ ┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻