2016年08月16日

デバッグとダイアログ

hsp使ってる方はデバッグのためにダイアログをソースの部分に設置して監視する方法など皆やるかと思いますが
ソースファイルをインクルードしてたり、膨大なソースになってくるとダイアログをどこに書いたか忘れてしまい
コメントアウトできなくなってしまうことなどあるかと思います
そういうときのために、ダイアログのマクロを書き直して便利な感じにしてみました

#undef dialog
#module
#define global dialog(%1="",%2=2,%3="") : dialog2 str(%1),%2,str(%3),__line__,__FILE__
#deffunc dialog2 str _p1,int _p2, str _p3, int _line, str _file
dialog@hsp "ソースファイル:"+_file+"\n行:"+_line+"\n--------------------\n"+_p1,_p2,"デバッグモード"+_p3
if _p2=2 & stat=7:end
return
#global

要は__line__と__FILE__のマクロ使えばいいわけですね
WS000332.JPG
ダイアログにダイアログを書いた行とそのファイル名を表示されています
posted by 26℃ at 00:36| 福岡 ☁| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

2016年06月09日

mesboxのスクロール位置の取得と設定

取得方法
;水平方向のスクロール値取得
si = 0, 0x0004, 0, 0, 0, 0, 0;SIF_POS=0x0004
GetScrollInfo ハンドル番号,0, si;
ed_scrX = si.5
;垂直方向のスクロール値取得
si = 0, 0x0004, 0, 0, 0, 0, 0;SIF_POS=0x0004
GetScrollInfo ハンドル番号,1, si;
ed_scrY = si.5

設定方法
;水平方向
PostMessage ハンドル番号, WM_HSCROLL, SB_THUMBTRACK|ed_scrX<<16, 0
;垂直方向
PostMessage ハンドル番号, WM_VSCROLL, SB_THUMBTRACK|ed_scrY<<16, 0

mesboxのスクロール値の設定で簡単な方法があったんだけど、水平のスクロール値がドット単位じゃなく文字数でスクロールするという謎仕様だったので
PostMessageで直接指定しました
posted by 26℃ at 22:29| 福岡 ☀| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

ドラッグ中のカーソル

自作のスクロールバーを使っているのですがバーをドラッグさせながら
ウィンドウを可変できる部分にもっていくと可変できるカーソルに変更してしまいます
WS000269.JPG
今はスクロールバー動かしてるからその表示はいらない!って場合の対処法なのですが
SetCaptureとReleaseCaptureをつかいます

#uselib "user32.dll"
#func ReleaseCapture "ReleaseCapture"
#func SetCapture "SetCapture" int

ドラッグ開始のときに、SetCaptureを使い、ドラッグを止めるときにReleaseCaptureするだけで
余計なカーソル変更がなくなります
posted by 26℃ at 11:17| 福岡 ☁| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

2016年05月13日

当たり判定試作

2Dアクションゲーム用の当たり判定モジュール試作してみました
オブジェクトを総当たりして判定させるのでなく、マス目に何があるかを大まかに判定して処理するタイプなので
処理速度は高速のはずです
coli.hsp
posted by 26℃ at 19:15| 福岡 ☁| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

2016年04月24日

boxf

boxfが意外と重いのでメモ
bufferのサイズをおおきくしているとboxfが重くなるので必要なだけ範囲を設定させたほうがいい
posted by 26℃ at 16:36| 福岡 ☁| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

2016年02月25日

hspのマニュアル

http://www.onionsoft.net/hsp/v33/doclib/hspprog.htm
今更だけど意外と裏ワザのようなことが乗ってるなあ
goto*@fだと一番近いラベルに飛ぶとか初めて聞いたわ
全部読んでる暇がないけど読んでみるとまだまだ目から鱗のようなことが書いてあるかも
posted by 26℃ at 13:18| 福岡 ☀| Comment(2) | hspメモ | このブログの読者になる | 更新情報をチェックする

2016年01月11日

マクロ

モジュールのローカルの関数名だとモジュール名を@でモジュール名を指定しないと使えないのですが
マクロでモジュール名を書き加える方法を発見
#module modtest
#deffunc local mestest
mes "test"
return
#global
#define ppp(%1)mestest%1
ppp @modtest
これだとエラーになりますが
#module modtest
#deffunc local mestest
mes "test"
return
#global
#define ctype ppp(%1)mestest%1
ppp(@modtest)
ctypeでカッコで囲むと成功するようです
これまでモジュール名だけ引数にして渡すほうほうがわからなかったので、関数名@モジュール名をセットにしたものを引数として渡していました
せっかくlocalの関数名にしているのに、わざわざ引数で関数名を渡すことになっていたので
これで余計な事せずにすみそう
posted by 26℃ at 15:57| 福岡 ☁| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

2015年12月01日

html5

動画位置や画像の位置が思った位置に合わなかったりウィンドウに合わせてリサイズしないので勉強してみた
下記のコードはhtml5を利用しwebmファイルを再生する方法
IEコンポーネントを利用する下準備がめんどくさい
http://oirahakobito.seesaa.net/article/430501724.html
html5のvideoタグでwebmを再生できますが、MP4など他の動画にも対応してるみたい

ソースコード貼るために外部サイトのサービス利用したけどこれが一番はりやすいわ
シーサーブログのスタイルシートわけがわからん
posted by 26℃ at 00:20| 福岡 ☀| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

2015年11月30日

html5

webmファイルを扱うためにhtml5を使う必要があるので
IEコンポーネントを使ったところhtml5が反映されない!
IEコンポーネントはie7のバージョンで動いているらしく、レジストリを編集して最新バージョンのieを
使えるように設定する必要があるらしい…
参考 http://tabbrowser.info/ie9mode.html
キーのFEATURE_BROWSER_EMULATIONにdword値を追加(hspエディタでコンパイルしているので名前はhsp3.exeを登録、数値は参考先参照)
WS000046.JPG

レジストリの設定が終わるとIEのバージョンが上がりhtml5が機能するようになります
hspでタグを直接入力する場合はファイルパスはフルパス入力じゃないとだめらしい

aaee.jpg
posted by 26℃ at 21:00| 福岡 ☀| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

2015年11月28日

hspのソースの改行

hspのマクロ登録で#defineがあるけど、書き方が難しい。
改行できないものと思っていたのだけど:\と記述すると改行して書けるみたい。これで作業が捗るかも
WS000043.JPG
posted by 26℃ at 02:01| 福岡 ☁| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

2015年09月13日

comオブジェクト

フラッシュやpdfを読み込ませるためにCOMオブジェクト利用しようと思ったのですが
肝心のflash playerとAcrobat Readerがインストールされているのか調べる方法がわからなかったので調べてみました
レジストリのHKEY_CLASSES_ROOTをしらべればいいようですねHSPだとregkeyでレジストリ調べられます
あとはprogIDを指定してやればstat値に存在の結果が返ってきます

regkey 3,"ShockwaveFlash.ShockwaveFlash"
regkey 3,"\\clsid\\{CA8A9780-280D-11CF-A24D-444553540000}"
posted by 26℃ at 13:49| 福岡 ☁| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

2015年09月07日

自動で読み込まれるモジュール

userdef.asとか知らなかったよ
posted by 26℃ at 00:48| 福岡 ☔| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

2015年08月27日

float

hgimg3は単精度(float)で計算しているっぽいのでfloatについて調べてみると値の == 比較はしちゃだめだったのか…
<= >= で誤差に対応できるようにしないといけないっぽい
floatじゃなくdoubleで計算させるオプションはありますが、doubleで動かすと処理はやっぱり重くなるのかな

追記
floatとdoubleについて調べてみると、floatだから処理が速くなるってわけじゃないっぽいな
posted by 26℃ at 10:09| 福岡 ☀| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

hgimg3の計算精度

#include "hgimg3.as"
hgini
a=0.1
a+=0.0
if a=0.1:mes "?"

HGIMGを使うと0.0足しただけで計算が狂う、これはまじで勘弁…
対策はhgsetreq SYSREQ_FPUPRESERVE,1で計算精度を変えないように設定すること
posted by 26℃ at 02:06| 福岡 ☀| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

2015年08月23日

picloadでgiaアニメ読み込み

先人のおかげでサックっとできた
gifのhead情報とブロック情報を分離させメモリ情報をpicloadで書き出すだけでした
gifの一コマずつの位置情報やwiat時間も取得できるので正常に再生させることができます
gifani.as

参考にしたサイト
略して仮
むしゃぺらり の HSP ページ
posted by 26℃ at 14:31| 福岡 ☀| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

2015年08月21日

アイコン書き換え

Let's HSP!を参考にhgimg3の作品のアイコンを書き換えてみました
hgimg3だとランタイムファイルにあるhsp3hg.hrtを書き換えるひつようがあるみたいですね
自分は直接かきかえたくなかったので別のランタイムファイル指定するようにしてみたのですが
アイコンに変化がない…
理由は最初に#packopt runtime "myicon3d.hrt"としても後で#include "hgimg3.as"すると設定がそこで上書きされるからっぽい
なのでインクルードの後に変更が必要です
posted by 26℃ at 11:52| 福岡 ☁| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

2015年07月15日

hspのモジュール変数の区別

モジュールのMtestというのがあるとして
newmod mod0, Mtest
newmod mod2, Mtest
Mtestは同じでもmod0とmod2は全く別物という判定をさせたい場合
#modinit
mref id, 1
return
mrefで第二引数に1を与えると、mod0とmod2を分けたIDを取得できます
ちなみに
mref id, 0だとMtestのID
mref id, 2だとmod0とmod2のモジュール変数の配列番号を取得できます
posted by 26℃ at 14:40| 福岡 ☀| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

2015年05月09日

hspのnotesel

noteunselで1層までしか回帰できなかったのか…
posted by 26℃ at 17:29| 福岡 ☁| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

2015年04月14日

直線

探索のポイントとポイントをつなぐ直線とマップの当たり判定させるため、直線を引くプログラムを自分でかんがえたのですが
こっちのほうがシンプルで良さそうだな
なたで日記
posted by 26℃ at 11:07| 福岡 ☁| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

2015年04月13日

スタックとキュー

最短経路を導くならキューの幅優先探索がいいっぽい
昨日つくったやつはタスクを使った深さ優先探索、これだと遠回りのルートでも構わずに導き出しちゃう
積む取るの方法をキューとタスクに変えるだけで大きく処理が変化するのはおもしろいね
ルート探索サンプルver2.zip
posted by 26℃ at 16:46| 福岡 ☔| Comment(0) | hspメモ | このブログの読者になる | 更新情報をチェックする

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。