Windows用のゲームやツールを無料で製作できるフリーソフトなプログラミングツール「HSP」(Hot Soup Processor)の新バージョン3.2 RC1がリリースされました。
変更点は、「HSPアシスタント」というツールの追加、#modcfunc命令に新規対応、など。
ちなみに、「RC」というのは「Release Candidate」の略で、「リリース候補」という意味。ほぼ正式版に相当するパッケージで、3.2正式版は来月8月にもリリースされる予定。
セキュリティ情報、迷惑メール、フィッシング詐欺、迷惑ソフト削除、Windows の小ネタを書き出している日本語ブログです~ (*^ー^)ノ
✏️ Firefly
Windows用のゲームやツールを無料で製作できるフリーソフトなプログラミングツール「HSP」(Hot Soup Processor)の新バージョン3.2 RC1がリリースされました。
変更点は、「HSPアシスタント」というツールの追加、#modcfunc命令に新規対応、など。
ちなみに、「RC」というのは「Release Candidate」の略で、「リリース候補」という意味。ほぼ正式版に相当するパッケージで、3.2正式版は来月8月にもリリースされる予定。
✏️ Firefly
HSP(HSP3)からWin32 API関数を呼ぶ。
そんな時にOSによっては対応してない関数というのが少なからず存在します。通常、対応してない(存在しない)関数が呼ばれると、HSPエラー38「外部DLLの呼び出しに失敗しました」となって、そのままプログラムは落ちてしまいます。
ってなわけで、特定のWin32 API関数が動かしたOS環境に対応してるのかをスクリプトからチェックする方法の紹介。
HSP標準のvarptr関数を利用します。HSPヘルプから引用すると、『p1に外部拡張命令(#funcで定義されているDLL呼び出し用の命令)を指定した場合には、実際に実行される外部関数のアドレスを返します。』の処理を利用します。
対応環境なら0以外が返ります。
#include "user32.as"
mes varptr(MessageBox)
存在しない関数なら0が返ります。
#uselib "user32"
#func hoge "hoge" ; ありもしない関数mes varptr(hoge)
✏️ Firefly
Yahoo!知恵袋より「クリックしたら効果音 を流す それか、音楽 の流し方」。音の再生手段は、HSP標準のmci命令やmmload命令、より良いパフォーマンスを望むならHSP拡張プラグイン(DirectX)など。
必要となる音楽ファイルは、プログラムの起動段階であらかじめ読み込んでおきます。いざ再生したいときは、音楽再生処理の命令だけ呼ぶようにします。
onclick gosub *jump
mmload "sample\\demo\\se_tyuiin.wav", 0
boxf 100, 100, 200, 200
stop
*jump
title ""+mousex+"x"+mousey+" / "+wparamif mousex > 100 & mousey > 100 & mousex < 200 & mousey < 200 {
mmplay 0
}return
ここではmm~命令とonclick命令を利用してます。マウスクリックが行われた時、指定したラベルへとジャンプする割り込み命令です。wparam値をチェックすれば、マウスのどのボタンが押されたか知ることができます(左ボタンなら1、右ボタンなら2)。カーソル位置はHSPのシステム変数mousexとmousey。
ループさせて、stick命令かgetkey命令でマウスクリックを捕らえる方法もありますな。