過去ログ

[868]Visual Studioにひっかかる
Takanashi 2009/01/07 10:16:46初めまして、hspdxfixを利用させていただこうとしている者です。
ちゃんと分かってないためなのかもしれませんが、hspdxfixを使ってフルスクリーンモードのプログラムを作ると、終了時にVisual Studioというソフトのデバッガが起動して、『Win32でサポートされていない例外が発生しました』というメッセージが出ます。
デバッグの言い分を下にコピペします。
hsp3.exe の 0x736ddcdc でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x736ddcdc を読み込み中にアクセス違反が発生しました。
デバッグモードでは特におかしくなっている点は見られないし、プログラム自体もちゃんと動いているのですが。しかもウィンドウモードだと普通に終了します。
問題のプログラムは下の通りで、ほぼ説明書にあったものと同じです。
ここから
#define HSPDXFIX_DEBUG
#include "hspdxfix.as"
es_ini ; system初期化
onexit *owari
es_screen 640,480,32,,0 ; スクリーン初期化
if stat=1 : goto *dderr1
if stat=2 : goto *dderr2
goto *start ; 正常に完了
*dderr1
dialog "DirectXの初期化に失敗しました。",1
end
*dderr2
dialog "スクリーンの初期化に失敗しました。",1
end
;------------------------------------------------------------------
*start
gsel 0
es_cls
es_sync
wait 100
repeat 100
es_cls 255,0,0
es_sync
await 25
loop
end
ここまで。
directXのバージョンは2007年11月のものです。
今のところ実害はないので無視しても構わないような気はするのですが、やはり気持ち悪い感じがするので質問させていただきました。
長々と申し訳ありません。

[867]システムの初期化(es_ini)でエラー
Nita 2008/08/13 20:50:52hspdxfixを利用させていただいている者です。
感謝いたします。
私はhspdxfixを使用し、ゲームを製作していますが、
最近、ユーザの方からエラー報告を頂きました。
私なりに調べた結果、es_iniを実行した時点で
エラーが発生しているようです。
エラー番号は38で、外部DLLの呼び出しに失敗しているようです。
もちろんhspdxfix.dllは実行ファイルと同じフォルダにおいて
配布しています。私の環境や、その他のユーザさんの環境では
エラーが発生しません。
本来は私自身で解決するべきですが、手も足も出ません。
よろしくお願いします。
エラー原因究明のために、ユーザの方に実行していただいたプログラム。
ok(1)までは表示されるようです。
#include "hspdxfix.as"
dialog "ok(1)"
es_ini
dialog "ok(2)"
・
・
・

[866]全画面フルスクリーンでチラつく
buri 2008/06/02 22:41:21はじめまして、hspdxfixには大変お世話になっています
以下報告です
「winampで曲再生時」に「hspフルスクリーン」で次のどちらかの条件を満たすとき
画面が時々チラつきます(たぶん
・es_fmesで文字を表示したとき2〜5秒間隔でチラつく
(es_drawで何かスプライトを描くと10〜30秒間隔くらい)
・es_putを使用したとき画面がまれにチラつく
64*48個の画像を置いて試すと5〜10秒間隔くらい
(es_set / es_exputではチラつきはなかった)
もし万が一自分と同じ症状で困っている人がいたら、と思いまして
検索用に投稿させていただきました。

[865]拡大&縮小について
リン 2008/05/30 18:17:11はじめまして、
最近hspdxfixを使用させていただいております。
製作する上で気付いたのですが、
スプライトのサイズを変更する場合、
例えば座標 x100y100 に x48y48 のスプライトを x24y24 サイズにするとグラフィックは左上の頂点座標(x100y100)に表示されますよね?
この場合、ゲーム中リアルタイムに拡大したり縮小したりする演出をした場合、
頂点座標を計算して変えないと縮んだ場合は左上に移動していく様に見えてしまいます。
こうならないように、縮小&拡大しても画像の中心位置が変わらないような命令はありますか?
前回使ってた別のプラグインには実装されており大変便利だったので、質問させていただきました。
分かりにくい説明ですいません;
よかったらレス下さいm(_ _;)mオネガイシマス・・・

[864]ありがとうございました
cat_syoya 2008/03/24 02:14:40返信ありがとうございました
アニメーションに関しては、その仕様に沿ったデータやプログラムを載せる事にしました

[863]Re:hspdxfixのスプライト機能について
Sinagawa 2008/03/21 00:01:29>スプライト機能を使用しDirect3Dを有効にすると
>それぞれ違うサイズの画像パターンをリンクさせてアニメーションさせた時に
>最初に表示された画像のサイズに揃えられて表示されてしまうのですが
>回避する方法は無いのでしょうか?
どこで間違えたかそういう動作になってしまっているようです。
アニメーションさせるスプライトのサイズを全て合わせる以外に対処法はありません。
>es_copyの速度がスプライトを使用した時に比べて遅すぎるのは改善されないのでしょうか?
初期から指摘されていることですが、はっきりとした原因がわからないため劇的な改善が
見込めない状態です。一応、若干の手間と引き替えに多少は改善することが出来るのですが。
>それと、スプライトのパターンごとに表示する座標を調整(中心位置の設定)をできるようにはなりませんか?
es_excopyもそうですが、回転軸は変更できるようにしたいと思っています。
長らく動きがない状態でご迷惑をかけておりますが、今しばらくお待ちください。

[862]hspdxfixのスプライト機能について
cat_syoya 2008/03/17 22:42:34質問と要望なのですが
スプライト機能を使用しDirect3Dを有効にすると
それぞれ違うサイズの画像パターンをリンクさせてアニメーションさせた時に
最初に表示された画像のサイズに揃えられて表示されてしまうのですが
回避する方法は無いのでしょうか?
また、自作のアニメーション表示ルーチンをhspdxfixのスプライト用に調整していて思ったのですが
es_copyの速度がスプライトを使用した時に比べて遅すぎるのは改善されないのでしょうか?
それと、スプライトのパターンごとに表示する座標を調整(中心位置の設定)をできるようにはなりませんか?
(hspdxのシンプルな設計に反するものかもしれませんが)
要望を長々とすみませんでした

[861]Re:画面描画で発生する問題について
Sinagawa 2008/01/07 22:55:23新年早々レス遅れてすみません。
>(1)es_byeが、スクリプト中に含まれていると、
> 実行されない処理の流れであっても、処理が異常終了する。
> また、同様に、フルスクリーンから復帰の際、処理が落ちる。
>
> → end命令で、内部的に処理されるため、記述を中止することで
> 現象の発生は抑制できるようですが、このような措置で
> 大丈夫でしょうか?
実行されなくてもスクリプト中に記述が含まれるだけで強制終了してしまうというのは
不思議ですが、es_byeの挙動には現在不具合を抱えております。
記述をやめることで動作が改善されるのであれば、それでも問題はありません。
なお、(3)について補足しておきますと、ウィンドウモード時にパレットが扱えるかどうかは、
そのときの画面モードがパレットを持っているかどうかに依存します。
で、WindowsXPの場合(互換性の設定なしには)パレットモードを持っていませんので基本的に
ウィンドウモードではパレットを扱えない、ということになります。

[860]RE: 画面描画で発生する問題について
Sky Fish 2008/01/03 16:06:52自己レスですいません。
(2)は、バッファを保持するとき、パレットモードで
明示的に初期化することで解決できました。マニュアルの中に
しっかりと書いてありました…。また、処理落ちするようなので
GZOOMで事前処理し、オフスクリーンバッファに転送してもうまくいきました。
(3)は、ウインドウモード利用のときに、パレット操作が出来ない仕様のようだ
ということが分かりました。そのため、(2)と同じ方法で、パレット操作後、
オフスクリーンバッファに転送することで、解決できました。
どうもお騒がせしました…。
しかし、(1)だけは、相変わらず、ダメでした…。なぜでしょうか…?
ご存知の方がおられましたら、ご教授を頂きたいと思いますので
どうぞ宜しくお願いします。

[859]画面描画で発生する問題について
Sky Fish 2008/01/02 15:22:39いつも利用させて頂いております。(hspdxfix.as)
色々な機能を使った結果、下記の現象が発生して困っています。
マニュアルを熟読しましたが、解決できませんでした。
(1)es_byeが、スクリプト中に含まれていると、
実行されない処理の流れであっても、処理が異常終了する。
また、同様に、フルスクリーンから復帰の際、処理が落ちる。
→ end命令で、内部的に処理されるため、記述を中止することで
現象の発生は抑制できるようですが、このような措置で
大丈夫でしょうか?
(2)es_zoomで、8ビットカラー画像を拡大・縮小するとき、
ウインドウモードでは正常に処理できるが、フルスクリーン時、
正常な処理できず、画像が化けてしまいます。
→ 初心者なので、何かおかしなことをやっている可能性が
高いのですが、原因がよくわかりません…。この機能利用時に
利用条件や制約はありますでしょうか?
(3)8ビットカラーのパレット操作がうまくいきません。
ウインドウモードやフルスクリーンでの利用時に、
利用条件や、制約はありますでしょうか?
→ やりたい処理としては、表示した画像のパレットを変更して
色を変えたりといったことを実現したいのですが、
なかなかできません。予め色を変更した画像を準備して
差し替えるといった処理が適切なのでしょうか?
皆様は、どのようにプログラムを書かれますでしょうか?
質問ばかりで申し訳けないのですが、どなかたお分かりになる方が
おみえでしたら、ご教授を頂けないでしょうか。どうぞ宜しくお願いします。

[858]あ、すいません。
HKR 2007/10/21 22:26:38すぐひとつ下に同様の質問がありましたね(汗
どうもすいませんでした・・・orz

[857]ありがとうございました
HKR 2007/10/21 22:24:32レスありがとうございました。なるほど、そういう事なんですね。
すいません、もうひとつよろしいでしょうか?
内部画像処理を320*240で行い、最終的に640*480に拡大して出力させようと思って
いるのですが、スプライトをオフスクリーンバッファに描画する事は可能でしょう
か?現在以下のようなことをやってるのですが、なんとなく無駄なような気がして・・・
es_draw:pos 0, 0
es_xfer 1, -2, 0, 0, 320, 240 ;バッファに退避
es_exboxf 0,0,SCR_SIZEX,SCR_SIZEY,0 ;スクリーン消去
es_zoom SCR_SMIX, 0, 0, 320, 240, SCR_SIZEX, SCR_SIZEY ;拡大コピー

[856]レス
Sinagawa 2007/10/21 11:14:48すみません、レス遅れました。
>&さん
現状ではスプライトをバッファに書き込む機能はありませんので、毎フレーム
全画面書き直しするしか方法はありません。
>HKRさん
基本的にほとんどのハードウェアは8bitモードでのDirect3D使用はサポートしていない
(少なくともHALは使用できない)はずなので、それが正常な動作です。
hmm.dllも8bitモードでの初期化は推奨していませんので、単にHELでの初期化に成功している
だけかもしれません。

[855]es_bufferでシステムエラー(その後)
HKR 2007/10/19 13:21:28度々すいません、今es_screen命令のstatを参照したら2が返ってました。
即ちスクリーン初期化に失敗しているみたいです。
色々試してみましたが、p3=8(8bitパレットモード)とp6=1(Diretc3Dを使用する)を
同時に設定したときのみ発生するみたいです。
hmm.dllを使用していたときには有効だった設定なのでシステム的な問題ではない
と思うのですが・・・
本当はp6=0にしたい所なのですが、既知の問題もあるようですので、とりあえず
16Bitカラーで使ってみたいと思います。screen設定パラメータにコツみたいなのがある
のかもしれませんね(涙

[854]es_bufferでシステムエラー
HKR 2007/10/19 12:47:54本日使わせていただこうと思いダウンロードしてみたのですが、es_bufferの行で
システムエラーが発生してさっぱり前に進みません。
ちなみにフルスクリーンモードをウィンドウモードにするとエラーは発生しないよう
なのですが、以下のソースコードに問題は御座いますでしょうか?
# 実際にはbufferとes_bufferの間にpicloagが入っています
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#include "hspdxfix.as"
es_ini
es_screen 640,480,8,0,0,1
buffer 1,640,480,1
es_buffer 1,2
es_bye
end
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
WindowsXP HSP3.1 HSPDXFIX0.19c GeForce4Ti4200 DirectX9

[853](無題)
& 2007/10/18 18:17:30今、アクションRPGを作っています。マップ移動の時1600回程回転させて、スプライトを書いているんですが。hspdxfixでバッファにスプライト書き込んでその絵だけをメインに描いてスクロールする事は、可能ですか?

[852](無題)
ƒダック 2007/10/18 18:10:47>>Sinagawa さん
有難うございます。gsel 0が抜けていたみたいです。^^;

[851]サンクスです
高田 2007/09/27 12:22:17>>Sinagawaさん
レス参考になりました
別ウィンドウで試してみます

[850]レス
Sinagawa 2007/09/24 23:21:27>高田さん
すいません、レス遅くなりました。
現状ではDirectXで描画した画面にオブジェクトをかぶせる事はできません。
(オブジェクトの周りを更新しないようにすれば使えるはずですが、実現させるための
機能がそろっていません)
ウィンドウモードならば別にウィンドウを出し、そっちにオブジェクトを描画させることで
一応回避はできるのですが。
>ダックさん
システム変数mousex、mouseyを使えばウィンドウ上の座標を取得できます。

[849]マウスの座標
ダック 2007/09/24 15:49:15スクリーン上のマウスの座標ではなく、ウィンドウ内のマウスの座標を取得する事は、不可能なのでしょうか?API関数を使えば出来るのでしょうか?教えてください。

[848]HSPDXFIXを使いながらオブジェクトを表示する方法
高田 2007/09/16 22:14:47メッセージボックスやボタンなどを表示したいのですが
やはり、DirectXを使うとオブジェクトは表示できないのでしょうか?
標準命令を使わずに表示する方法ありましたら教えてください

[847]Re:CWSDRVについて
Sinagawa 2007/09/02 23:48:19>多量の敵を撃破などの場面で、同じバッファの音を連続で
>再生していると、途中でそのバッファの音が二度と鳴らなくなってしまいます。
まだこちらで検証していませんが、CWSDRVに限らず発生するとのことですので、
ハードウェアの方が怪しいと思います。
他のDirectSoundを使ったゲームなどでその症状が発生するなら間違いないです。

[846]CWSDRVについて
Mezzo 2007/09/02 20:01:25はじめまして。突然ですが質問させてください。
現在シューティングゲームを制作しておりまして、こちらで発表
されておりますCWSDRVにて効果音をWAVEで鳴らそうとしているのですが
多量の敵を撃破などの場面で、同じバッファの音を連続で
再生していると、途中でそのバッファの音が二度と鳴らなくなってしまいます。
長いソースなので、こちらでお見せするのは難しいのですが
一応使い方としては
1.drv_iniで初期化
2.snd_loadでWAVEデータをバッファにロード
3.snd_playで、鳴らしたいタイミングでループなし再生。
(1フレーム毎に同じバッファを連続して鳴らすような場面あり)
といった手順で行なっております。もしかして、おかしいところや
抜けてる手順等あるのでしょうか。
この件こちらで質問していいものかどうか、少々迷いまして…
実は、同種の他のプラグイン(hmm.dll)でも同様の症状が
発生してしまうのです。なので、自分自身にDirect Soundの
知識が不足しているゆえの症状である可能性もあると考えてます。
もし解決方法、もしくは何かお心当たり等ありましたら
是非ともご教示いただければ大変幸いに思います。

[845]Re:es_screenと終了時エラー
Sinagawa 2007/08/27 00:15:02>HSP3.1環境下でes_screenの第6パラメータに0を指定(もしくは省略)すると
>終了時にエラーが出ます。
一応既知問題なのですが(#674参照)、原因不明のままほったらかしになっています(申し訳ございません)。

[844]es_screenと終了時エラー
K-s 2007/08/25 23:14:17HSP本家の掲示板にもエントリされていたのですが(NO.10191)
HSP3.1環境下でes_screenの第6パラメータに0を指定(もしくは省略)すると
終了時にエラーが出ます。
プラグインのバグではと思い報告致しました。

[843]ありがとうございます
白米 2007/07/12 20:34:22どうもありがとうございます!!!
ゲームずくりマジで楽しいです
ありがとうございます

[842]Re:無料ゲーム作り教えてください!!
Sinagawa 2007/07/09 23:52:37とりあえずHSPをどうぞ。完全無料です。
http://hsp.tv/

[841]無料ゲーム作り教えてください!!
白米 2007/07/08 00:05:40あの
無料でゲーム作る方法ってないですかwww?
一応真剣に考えてるのでお願いします

[840]Re:HSPDXFIXについていくつか質問があります
とどぼん 2007/06/20 19:35:49Sinagawa様、お忙しい中サンプルまで作成していただいてありがとうございます。
さっそく実行してみましたところ、動作に問題はありませんでした。
そこでご返答やサンプルを参考にして、スプライトのフラグ値を参照してから当たり判定を行うように処理してみたところ、あるはずのない衝突現象はなくなりました。今まで、消去されたスプライトはすべてリセットされるものと勘違いして処理をしていたせいで起きていたようです。
またexnewに関しましても、正常動作するようになりました。
このたびは当方の不手際でご迷惑をおかけしまして申し訳ありませんでした。
どうもありがとうございました。

[839]Re:es_screen/es_window命令について
kt. 2007/06/20 01:22:00ご対応ありがとうございますm(_ _)m
ちゃんと修正されているのを確認出来ました。
開発は大変だとは思いますが、これからも頑張って下さい。
ちなみにフラグ値を調べるスクリプトですが、当方では問題なく動作しているようです。
(画面にリンゴがある時は0300。消滅で0000。空いてる所からまた0300に変わります)
OS Windows 2000 SP4
CPU Mobile Pentium4 1.70Ghz
ビデオ Mobility Radeon 16MB
DirectX DirectX 9.0c

[838]レス
Sinagawa (http://www.hspdx.net/junk/flagdump.lzh) 2007/06/19 19:58:55>とどぼんさん
すいません、レス遅れました。
>その上での質問なのですが、まずes_exnewですが、例えば「es_exnew 320,400,1」と書きます。
>この場合、本来ですとスプライトNo320から400まで順番に空きを検索して行くのだと思いますが、
>実際の動作を追ってみると間を大きく飛ばしてしまったり、空きがあるにもかかわらず
>「-1」を返したりすることがあります。
>また、ときおり画面外で存在していないはずスプライト同士の衝突が起きているような現象があります。
>そこでお伺いしたいのですが、es_killやes_clearでスプライトを削除した場合、内部パラメータは
>すべてリセットされるのでしょうか?
>それとも一部のパラメータは上書きされるまで残るものなのでしょうか?
>また、「es_area」の範囲外に出たスプライトは「es_kill」と同じ削除のされ方をするのですか?
通常、領域外にはみ出たりes_killで削除されたスプライトは、フラグ値を0にすることによって
生存していないと見なされます。
しかし、一部の環境でこの情報が壊れるのか表示に不具合が出るなどの症状が現れるとの報告を
何軒か頂いています。
そこで、スプライトのフラグ値を調べるスクリプトを作ってみましたので、実行してどうなるか教えてください。
スクリプトの説明をしますと、画面上部にスプライトNo.479〜511の32個のスプライトのフラグ値が
16進数4桁で表示されています。
スペースキーを押すとこの32個の中から空いているスプライトを探してリンゴを発射、
このときフラグ値が0300に変わります。
そして、敵に当たるなどして消滅するとフラグ値はまた0000に戻ります。
正常に動いていればこのようになるはずです。
>kt.さん
>es_windowの第3もしくは第4パラメータをes_screenで指定した解像度と同じに指定すると、
>本来はes_windowで指定した範囲外にはスプライトは表示されないはずなのですが、実際には表示されてしまいます。
es_windowで画面外を指定すると正常にクリッピングされないようです。
修正したものをアップしましたので、確認をお願いします。
ちなみに、画面外を指定すると有効範囲は通常より広くなるようになっています。

[837]es_screen/es_window命令について
kt. (http://ktstg.blog.shinobi.jp/Entry/167/) 2007/06/19 02:01:47こんにちは。es_screen/es_window命令についてなのですが、例えば
es_screen 640,480,16,0,0,1
es_window 150,0,490,480
と言うような感じでes_windowの第3もしくは第4パラメータをes_screenで指定した解像度と同じに指定すると、本来はes_windowで指定した範囲外にはスプライトは表示されないはずなのですが、実際には表示されてしまいます。
これを
es_screen 640,480,16,0,0,1
es_window 150,0,490,479
このような感じでes_windowの第3、第4パラメータのどちらか一方をes_screenで設定した解像度よりも小さくすると、ちゃんとes_windowで指定した範囲でスプライトは消えてくれます。
逆にes_windowの第3、第4パラメータのどちらかをes_screenで設定した解像度よりも同じか大きくすると、es_windowで指定した範囲を超えて表示されてしまうようです。
これがDLL側の不具合かどうか私にはわからなかったのですが念の為、ご報告させて頂きます。
当方のブログに詳しく書いていますので、よろしければ御検証頂ければ幸いです。
HSP3.0+HSPDXFIX Ver 0.19bを使用しています。

[836]HSPDXFIXについていくつか質問があります
とどぼん 2007/06/11 11:30:46はじめまして、昨年ごろからHSP3を覚えまして、HSPDXFIXのおかげでゲーム作りがとても楽になって助かっております。
その上での質問なのですが、まずes_exnewですが、例えば「es_exnew 320,400,1」と書きます。
この場合、本来ですとスプライトNo320から400まで順番に空きを検索して行くのだと思いますが、実際の動作を追ってみると間を大きく飛ばしてしまったり、空きがあるにもかかわらず「-1」を返したりすることがあります。
上限を越えるころになると頻繁に「-1」が出るようになります。
実際に表示されているスプライトは30枚にも満たないのですが、これを回避する方法はありますか?
また、ときおり画面外で存在していないはずスプライト同士の衝突が起きているような現象があります。
具体的には、STGで自分の弾をただ空撃ち(敵は出現していない)しているだけなのに、当たり判定が発生してスコアが加算されてしまうといった現象です(type値やes_killもきちんと処理しているつもりです)。
そこでお伺いしたいのですが、es_killやes_clearでスプライトを削除した場合、内部パラメータはすべてリセットされるのでしょうか?
それとも一部のパラメータは上書きされるまで残るものなのでしょうか?
また、「es_area」の範囲外に出たスプライトは「es_kill」と同じ削除のされ方をするのですか?
以上についてご解答いただければ助かります。
お忙しいでしょうが、よろしくお願いいたします。
環境:
CPU:アセロン 3200
メモリ:1GB
ビデオ:GeForce6600
HSP3.1β10 HSPDXFIX Ver 0.19b

[835]Re:スプライトの優先順位について
エコQ 2007/06/10 19:40:03お疲れ様です。HSPDXFIX Ver 0.19b での修正、確認しました。
HSP3.1β10は、タイミングが悪かったですね。
1時間に1本のバスに、数秒差で乗り損ねたような…(;^ω^)

[834]表示化け
Sinagawa 2007/06/08 22:17:48>HSPDXFIXの、バッファ0が表示化けする件ですが、
>HSP側のバッファのほうでしたら、個人的には、許容範囲内です。
「HSPDXFIX側のバッファ0が、画像サイズに関わらず640*480で登録されてしまう」という
結構重傷なバグなのでさすがにこれを許容するわけにはいかないかと思います。

[833]Re:プラグインへの要望(XORSHIFT)
エコQ 2007/06/08 20:54:16XORSHIFTの要望の件、お聞き届けいただき、ありがとうございます。
これまで、無理矢理な処理(前もって配列に乱数を用意しておいて、順番に引き出す等)を
していた部分の記述が、たいへん楽になりました。
HSPDXFIXの、バッファ0が表示化けする件ですが、
HSP側のバッファのほうでしたら、個人的には、許容範囲内です。

[832]Re:プラグインへの要望(XORSHIFT)
Sinagawa 2007/06/07 00:14:03>─標準関数の rnd と、XORSHIFTプラグインの xs_rnd と mr_rnd とを合わせれば、
>再現性のある乱数列を、3つ並行して使えることになりますが、
>より多くの乱数列を、平行して使える機能があれば良いなと思いました。
ご要望ありがとうございます。今後のバージョンアップで検討させていただきます。
なお、リンクは修正しておきました。

[831]Re:CWSDRV.DLLが上手く導入出来ない
鳥人 2007/06/06 09:57:48わかりました、やって見ます。
丁寧な回答どうもありがとうございました。

[830]プラグインへの要望(XORSHIFT)
エコQ 2007/06/06 01:00:53こんばんは。乱数処理は、個人的に腐心していた部分なので、
乱数生成プラグインを、興味をもって拝見させていただきました。
(現在、XORSHIFTのファイルへのリンクが間違っているようです。)
少し試しているときに、浮かんだ要望がひとつありまして─
─標準関数の rnd と、XORSHIFTプラグインの xs_rnd と mr_rnd とを合わせれば、
再現性のある乱数列を、3つ並行して使えることになりますが、
より多くの乱数列を、平行して使える機能があれば良いなと思いました。
(説明がヘタで申し訳ありません)
xs_randomize2 乱数シード1 , 列番号2
xs_randomize2 乱数シード2 , 列番号2
…
という感じで初期化しておいて、
a = xs_rnd2(最大値 , 列番号1)
b = xs_rnd2(最大値 , 列番号2)
…
で、列番号別に、再現性のある乱数を発生させられれば─という事なのですが。
メインで使う乱数列とは別に、メインの乱数の発生に影響を与えないように
補助的な乱数を発生させたい、という場面があったので…
XORSHIFTプラグインを製作された勢いに残余がございましたら、お願いします。

[829]Re:CWSDRV.DLLが上手く導入出来ない
Sinagawa 2007/06/05 23:34:55>サンプルプログラムも途中でPCがフリーズします。
>DSOUNDEXのサンプルも白いウィンドウが出ただけで音が鳴りませんでした。
>ハードウェアの相性と言う事になるみたいです。
>その場合はDirectSoundは諦めた方が良いのでしょうか?
コントロールパネルから[サウンドとオーディオデバイス]→[詳細設定]→[パフォーマンス]と
進んで、「ハードウェア アクセラレータ」のレベルを問題が発生しなくなるまで
下げてみてください。
これでだめなら別のバージョンのドライバを入れてみることで改善されるかもしれませんが、
これ以上打つ術はないと思ってください。

[828]Re:CWSDRV.DLLが上手く導入出来ない
鳥人 2007/06/05 17:21:33サンプルプログラムも途中でPCがフリーズします。
DSOUNDEXのサンプルも白いウィンドウが出ただけで音が鳴りませんでした。
ハードウェアの相性と言う事になるみたいです。
その場合はDirectSoundは諦めた方が良いのでしょうか?

[827]Re:CWSDRV.DLLが上手く導入出来ない
Sinagawa 2007/06/04 23:53:05>こう書いたのですが
>何度やっても"…サウンド設定"のこの部分で
>パソコンがフリーズしてしまいます。
以下の点に問題はないか確認してみてください。
・サンプルプログラムなど、CWSDRVだけを使うスクリプトはうまく動くか
・DSOUNDEXなど、ほかのDirectSoundを使うプラグインで問題は起きないか
どちらもうまく行かないのならハードウェアとの相性、どちらかがうまく行くのなら
同時に使っているプラグイン、もしくはCWSDRV自身の相性問題と言うことになるかと思います。

[826]CWSDRV.DLLが上手く導入出来ない
鳥人 2007/06/04 19:20:24すいません、連投です。
画像反転は凄く上手く行ったのですが
CWSDRV.DLLを導入しようと思って
CWSDRV.DLL関連のファイルを全部所定の位置に置いて
スクリプトの一部を
*sound_set
TITLE GAMETITLE+"…サウンド設定"
drv_ini
if stat=DS_FAILURE:dialog stat:end
if stat=DS_OUT_OF_MEMORY:dialog stat:end
mus_ini CWS_ENABLE_WAVE
こう書いたのですが
何度やっても"…サウンド設定"のこの部分で
パソコンがフリーズしてしまいます。
やり方が悪いのかな、と思ったのですが
どこが悪いのかわかりません。
どうすれば導入出来るでしょうか。
環境:
OS Windows XP SP2
HSPversion3
DirectX 9.0c

[825]Re:画像反転が出来ない
鳥人 2007/06/03 00:43:22わかりました。
左右反転した画像を用意してそれを呼び出す事にします。
回答どうもありがとうございました。

[824]Re:画像反転が出来ない
Sinagawa 2007/06/03 00:25:07>左右を反転させるにはどうすれば良いでしょう。
es_zoom命令は反転コピーに対応していませんので、どうしてもという理由がないので
あればDirect3Dを使ってes_exzoomでコピーするか、あらかじめ反転した画像を用意して
対応してください。
なお、DirectDrawでの反転コピーのサポートは全てのハードウェアで対応されているとは
限らないので未定となっています。

[823]画像反転が出来ない
鳥人 2007/06/02 03:24:46X64,Y64のサイズの画像を
左右反転させて表示したいのですが
es_zoom 1,0,0,64,64,-64,64
とやっても画像が表示されません。
es_zoom 1,0,0,64,64,64,64
だと画像は表示されます。
左右を反転させるにはどうすれば良いでしょう。

[822]Re:スプライトの優先順位について
エコQ 2007/05/31 22:14:40了解です。
お手数おかけしますが、よろしくお願いします。

[821]Re:スプライトの優先順位について
Sinagawa 2007/05/29 00:29:09>ヘルプの説明と逆の結果(優先順位の値が大きいものが手前)になるようなのですが、
>これは環境依存の現象でしょうか。(HSP3.1β9 + HSPDXFIX Ver 0.19aで実行しています。)
確認したところ、スプライトの描画順序が優先順位と逆になっていました。
修正したものを後日アップします。

[820]スプライトの優先順位について
エコQ (http://www1.to/iyabomb) 2007/05/27 17:46:09おひさしぶりです。エコQです。標題の件について、質問なのですが、
es_setのヘルプには、
「優先順位は値が小さいほど手前」、「同一値の場合はスプライトの小さい方が優先」
とありますが、
http://exxq.hp.infoseek.co.jp/lab/DXFIXtest_SPRpriority.hsp
のスクリプトで、スプライト優先度について確認してみると、
・[Space]で 優先順位を同じ(0)にすると、スプライト番号が大きいほうが手前になる。
・[Enter]で 優先順位=スプライト番号にすると、ソート機能On/Offで表示結果が 逆転する。
・[Tab] で 優先順位=(15-スプライト番号)にすると、ソート機能On/Offで表示結果が 逆転しない。
─ということで、
ヘルプの説明と逆の結果(優先順位の値が大きいものが手前)になるようなのですが、
これは環境依存の現象でしょうか。(HSP3.1β9 + HSPDXFIX Ver 0.19aで実行しています。)

[813]Re:当たり判定命令系について
Sinagawa 2007/04/06 00:01:52>いまいち当たり判定系の命令が思うように動作しません。
>症状的には、敵にミサイルをぶつけようとすると素通りして
>当たらないという現象がおきています。
スプライトの移動速度に対して当たり判定が小さい場合、見た目に当たっていても
判定が重ならずに抜けてしまう事があります。
当たり判定を大きくするか、あるいは移動速度を遅くしてみてきちんと当たるか確かめてみてください。
また、スプライトのtype値が正しく設定されていないとes_checkで判定の対象になりませんので
その当たりも問題ないか確認してください。
それでも解決しない場合、ひょっとしたら内部パラメータが壊れている可能性があります(環境依存、原因不明)。

[812]当たり判定命令系について
ショーグン 2007/04/05 21:52:43はじめまして。
このサイトにはいろいろとお世話になっております。
ショーグンと申します。hspdxfix0.19使わせていただいてますが、
いまいち当たり判定系の命令が思うように動作しません。
症状的には、敵にミサイルをぶつけようとすると素通りして
当たらないという現象がおきています。
本当は私が書いたソースをお見せできればよいのですが、
コメントが異常に少なく多分読み解いている暇もないと思いますので
何かサンプルを紹介していただけたらと思っています。
初心者の質問のようで申し訳ありません。
よろしくお願いします。

[811]Re:斜め移動の命令
ao 2007/04/04 14:43:20お返事どうもありがとうございます。
やっぱりそうするしかありませんか…
まあ、特に不便ということもないので
そうさせていただきます。
どうもありがとうございます。

[810]Re:斜め移動の命令
Sinagawa 2007/04/04 00:04:17>es_iniで指定した一周の角度に基づいて
>スプライトを移動させる命令はあるのですが、
>スプライトを介さずに座標のみを
>求めるような命令はないのでしょうか。
「現在の座標からn度の方向にmドット移動させた位置を求めたい」ということでしたら、
三角関数を使って自力で計算すればよいと思います。

[809]斜め移動の命令
ao 2007/04/02 11:56:54どうも、はじめまして。
HSP3.0で使わせて頂いています。
es_iniで指定した一周の角度に基づいて
スプライトを移動させる命令はあるのですが、
スプライトを介さずに座標のみを
求めるような命令はないのでしょうか。
私はsin,cosから求めるようにしていますが…
よければダイレクトに算出できるような
命令をお願いします。

[808]ありがとうございました
初級者 2007/02/14 11:46:21Sinagawaさんありがとうございました。
無事に動きました。

[807]Re:No DLL:cwsdrv.dllと出てしまう
Sinagawa 2007/02/08 00:06:41>CWSDRV.DLLについているサンプルを実行すると
>
>No DLL:cwsdrv.dll
>
>と出てしまいます。
そのエラーはCWSDRV.DLLが見つからなかったときに出ます。
HSP本体と同じディレクトリにCWSDRV.DLLをコピーしてください。

[806]No DLL:cwsdrv.dllと出てしまう
初級者 2007/02/06 22:19:37CWSDRV.DLLについているサンプルを実行すると
No DLL:cwsdrv.dll
と出てしまいます。
HSP本体があるcommonフォルダにはasファイルが入ってます。
どうすればサンプルが実行出来ますか?

[805]Re:HSP3.0との比較
チップ 2007/01/20 23:54:35速度差、気にする必要がないのですね!
そして機能も全部使えるなら今までのように2.6でプログラムできます。
3.0で動かしてみようといろいろやってみましたが、やはり次から次へとエラーが出て修正不可でしたので、聞いてみて良かったです。
ありがとうございました。

[804]Re:HSP3.0との比較
Sinagawa 2007/01/18 01:06:40>以前のプログラムを動かしたいので、HSP3.0での使用をあきらめようと
>思っているのですが、スピードは3.0で動かすのと、2.6で最新の
>hspdxfixを動かすのと差がでるでしょうか?
ベンチマークを取ったわけではないのではっきりとしたことは言えませんが、
速度差に関しては気にするほどの差はないはずです。
>また、機能的には3.0で動かすのも、2.6で動かすのも変わらないでしょうか?
どちらのバージョンで動かしてもHSPDXFIXの機能は全て使えますので、変わりはありません。

[803]HSP3.0との比較
チップ 2007/01/17 22:02:55はじめまして。
HSP2.6でHSPDXFIXを使わせてもらっていたのですが、
このたびHSP3.0で使用してみようと思い、ダウンロードしました。
しかし、HSP2.6で動いていたプログラムが動かなくなってしまいました。
2.6に今のhspdxfix最新版に差し替えて動くか試した所、正常に動きました。
どうやら3.0だとダメみたいです。
ここから本題です。
以前のプログラムを動かしたいので、HSP3.0での使用をあきらめようと
思っているのですが、スピードは3.0で動かすのと、2.6で最新の
hspdxfixを動かすのと差がでるでしょうか?
あきらかに2倍は3.0の方が早く動作するとかだったら、また考え直さない
といけないですが、PCの性能の範囲程度でしたら、2.6で使用していこう
と考えています。
また、機能的には3.0で動かすのも、2.6で動かすのも変わらないでしょうか?
どうかよろしくお願いします。

[802]Re:Re:es_copyの不良点
RuthlessDragon (http://www.geocities.jp/kouten2_ruthlessdragon/) 2007/01/12 21:45:18了解しました。
それでは、es_excopyを使うこととします。

[801]Re:es_copyの不良点
Sinagawa 2007/01/10 00:52:39すいません、レス遅れました。
>es_copy命令を使ってコピーをしようとしたのですが、何故かgmode 2としているのに、RGB色(0,0,0)のドットがそのままコピーされました。
以前報告をもらったときには調査していませんでしたが、おそらく環境依存の問題だと思います。

[800]es_copyの不良点
RuthlessDragon (http://www.geocities.jp/kouten2_ruthlessdragon/) 2007/01/06 18:38:17どうもこんばんは。たまに来るRDですf^^;
es_copy命令を使ってコピーをしようとしたのですが、何故かgmode 2としているのに、RGB色(0,0,0)のドットがそのままコピーされました。
こちらの過去ログを参照したところ、es_excopyを用いてRGB色(0,0,0)のドットを抜き出してコピーできたのですが、これは何故でしょう・・・?

[799]Re:HSP歴半年
Sinagawa 2006/12/24 00:27:28>es_buffer命令を使うといっつもエラー1が出るんですけど
>何でですか?(聞く場所間違えたかな・・・)
これはどのスクリプトを実行しても起こりますでしょうか?
エラーが出る主な原因としては
・VRAMが足りない
・画像サイズがグラフィックボードのサポートしているサイズを超えている
・9/12以前のバージョンを使用していて、es_bufferを実行する前にほかの命令を実行している
のどれかで、特に2番目がよくあると思いますが、少なくとも同梱のサンプルスクリプトでは
大きな画像を扱っていないため問題なく動作するはずです。

[798]HSP歴半年
??? 2006/12/20 17:59:56こんな質問はだめなのかもしれないんですけど、
es_buffer命令を使うといっつもエラー1が出るんですけど
何でですか?(聞く場所間違えたかな・・・)
初心者なので、まだまだ分からないことばっかりです。
良ければ何かアドバイスをください。

[797]ありがとうございます
万年素人 2006/12/18 06:51:54なるほど、バージョンによってプログラムの書き方が少し違うんですねー
>if((S&16)=16)&(T=0) : T=1:A=X:B=Y
たしかにこの方がみやすいですね^^;
if文を積み上げてしまうと見にくい気もしますし・・・
私の今後の課題は、いかに短く分かりやすくプログラムをくめるのかですね。

[796]Re:さっき始めた超初心者ですが・・・
Sinagawa 2006/12/14 00:26:27>12行目 (stick s,31) とありますが、←・→・スペースの3つですと21になるような気がします・・・
あのスクリプトだと不要なキーの入力に関しては何も処理を行っていませんので特に害はありませんが、
確かに3つのキーだけを取得するのなら21でも良いです。
>18行目 (if(S&16=16)&(T=0) : T=1:A=X:B=Y)とありますが、このままだと←を押したときに一緒に弾が出てしまうので、色々検討して・・・
>if T=0 : if S&16 : T=1:A=X:B=Y
>となるような気がします・・・
HSP3.0だと(S&16=16)の部分を(S&(16=16))、つまり(S&1)と解釈してしまうようです。
HSP2.5だと((S&16)=16)として解釈されるのでこちらの想定通りの動作になります。
(当サイトの講座は基本的にver 2.4〜2.5をベースにした古いものです。さらに言えば、
コーディングスタイルまで古いです)
万年素人さんの記述でも問題ありませんし、条件式を一つにまとめるなら
if((S&16)=16)&(T=0) : T=1:A=X:B=Y
という書き方になります。

[795]さっき始めた超初心者ですが・・・
万年素人 2006/12/13 04:26:55はじめまして!
さっき始めたばかりの超初心者なのですが、こちらのホームページを参考にさせていただいております。
ひとつ確認をさせていただきたいのですが、
HSPをやろうの弾を撃ちながら移動するの巻きに掲載されています2つめのプログラムにて・・・
12行目 (stick s,31) とありますが、←・→・スペースの3つですと21になるような気がします・・・
18行目 (if(S&16=16)&(T=0) : T=1:A=X:B=Y)とありますが、このままだと←を押したときに一緒に弾が出てしまうので、色々検討して・・・
if T=0 : if S&16 : T=1:A=X:B=Y
となるような気がします・・・初心者の解釈ですみません。

[794](無題)
ウィンド 2006/12/12 17:50:05すみませんしばらくネットが使えなくなってから書き込んだことを失念してました。
今更ですがありがとうございました。
>正式版ですとVer 0.19はVC++6.0でコンパイルしたものなのでMSVCR71.DLLは必要ありませんが、

[793](無題)
FE 2006/12/07 13:06:56お返事ありがとうございます!
前にも同じ質問があったんですね、すみません。
では#720を参考にさせていただこうと思います。

[792]Re:es_fmesで、改行が認識されない!
Sinagawa 2006/12/06 13:05:50>さて今回es_fmesのメッセージ内で"\n"を入力してみたところ、
>なぜか改行されずに処理されてしまいました。
現在、HSPDXFIXの文字表示命令は改行コードを解釈しない仕様になっています。
以前にも同じ質問があった際に作成した、自前で改行を行うサンプルが#720にありますので
そのような方法で対処してください。

[791]es_fmesで、改行が認識されない!
FE 2006/12/05 09:56:36はじめまして、いつもhspdxfixを使わせていただいています。
さて今回es_fmesのメッセージ内で"\n"を入力してみたところ、
なぜか改行されずに処理されてしまいました。
es_fmes "ああああ\nああああ"
と入力すると
"ああああああああ"
になってしまうのです。
何か解決法があればいいのですが。(;^^)
もし忙しくなければ、どうか返信をよろしくお願いします。

[790]Re:MSVCR71.DLL無し版
Sinagawa 2006/11/30 00:26:04>現バージョンですとMSVCR71.DLLが必要とのことですが、
>配布のことを考えて必要の無いバージョンが欲しいのですが、
>そのなかで一番新しいバージョンは残っていますでしょうか。
正式版ですとVer 0.19はVC++6.0でコンパイルしたものなのでMSVCR71.DLLは必要ありませんが、
それより新しいものだと#697、#700でアップしたものが最後になります。

[789]MSVCR71.DLL無し版
ウィンド 2006/11/29 00:39:36以前お世話になりましたウィンドです
現バージョンですとMSVCR71.DLLが必要とのことですが、
配布のことを考えて必要の無いバージョンが欲しいのですが、
そのなかで一番新しいバージョンは残っていますでしょうか。

[786]ウィンドウモードの解像度について
穏 2006/11/08 18:28:22お返事ありがとうございます。
screen命令で変えることができました。
これで何とか完成させられそうですw

[785]Re:ウィンドウモードの解像度
Sinagawa 2006/11/07 23:57:19>ウィンドウモードでのウィンドウサイズは
>640*480以上にならないのでしょうか?
本来p1,p2に任意の数値を入れればそのサイズにウィンドウが変更されるはずなのですが、
なぜか初期のウィンドウサイズより大きくはならないようです。
これについては後日調査しますが、es_screen実行後にscreen命令を使ってウィンドウサイズを
変更することで対処することができます。

[784]ウィンドウモードの解像度
穏 2006/11/06 22:11:22es_screenについて質問があります。
ウィンドウモードでのウィンドウサイズは
640*480以上にならないのでしょうか?

[782]解決しました@減算コピーについて
唯趣 2006/10/27 00:38:41うまく動作しました。
こういった方法があるとは、目から鱗です。
すばやい回答ありがとうございました。

[781]Re:減算コピーについて
Sinagawa 2006/10/26 23:51:54>そこで質問なのですが、es_excopy命令を使って減算合成をするにはどうすればいいのでしょうか。
Direct3Dには減算合成に相当するブレンドファクターが存在しませんが、
加算合成(ESB_ADD)と反転(ESB_NEGATIVE)を組み合わせることでそれを表現することができます。
やり方としては、
1.減算合成を行いたい部分を白の四角で反転合成する。
2.画像を加算合成する。このとき、暗くしたい部分ほど色が明るくなるようにする。
3.再度反転合成を行い、元に戻す。
このようになります。

[780]減算コピーについて
唯趣 2006/10/26 15:31:38hspdxfixには大変お世話になっております。
そこで質問なのですが、es_excopy命令を使って減算合成をするにはどうすればいいのでしょうか。
回転・拡大縮小処理を施しているのでgmode 6->es_copyという方法がとれません。
また、ブレンディング係数を調べてみたのですが、こちら側の力量不足により、理解にいたっておりません。
es_xfar -> es_excopy といった方法も試したのですが、処理が重すぎて実用にはほど遠い状態です。
現在、背景画像をy軸について回転させて、奥行きを表現しています。
その際、背景画像が遠方(z方向)にいけば行くほど暗くなるエフェクトを想定して実装しようとしているのですが、同等の効果が得られるようであれば他の方法でもかまいません。
ご多忙と思いますが、返信をよろしくお願いします。

[779]Re:es_sin と es_cos の結果が逆
Sinagawa 2006/10/11 12:41:29>es_sin と es_cos の動作が逆になっているようです。
調べてみました。完全に逆になっているので、各命令の呼び出しを書き換えることで
とりあえず修正できますのでそれで対応してください。
HSPDXFIX.ASの79行目
#func global es_sin es_cos $202
#func global es_cos es_sin $202
根本的に修正しようとするなら、HSPDXの角度の扱いが通常と違う事を直すべきだと思います。

[778]es_sin と es_cos の結果が逆
Rosh (http://r-revery.hp.infoseek.co.jp/) 2006/10/10 22:53:49es_sin と es_cos の動作が逆になっているようです。
ダウンロードできる幾つかを試してみた所、どれも同じ結果でした。
混乱するので直していただけるとありがたいです。

[777]自己解決してしまいました
RuthlessDragon (http://www.geocities.jp/kouten2_ruthlessdragon/) 2006/10/07 09:39:27失礼しました。
サイズは変わっていたのですね。
中途半端に自機の当たり判定を小さくしていたので気付いていませんでした。
大変失礼しました。

[776]es_effectの当たり判定
RuthlessDragon (http://www.geocities.jp/kouten2_ruthlessdragon/) 2006/10/07 09:30:13どうもお久しぶりです、RuthlessDragonです。
今回、es_effectについての質問なのですが、
es_effectのp2,p3に数値を入れてやってサイズを変更してやっても
そのスプライトの当たり判定は変わらないようなので質問させていただきます。
es_effectでサイズを変えたスプライトの当たり判定のサイズを変えることはできますか?

[775]Re:順番が変になる
–‚魔法合金 2006/10/03 19:45:12試してみましたが、2箇所ともうまくいきませんでした…。
ちなみにes_xferを使ってからes_copyを使っている箇所のところもes_excopyなら通常
通り表示されました。
それから、es_xferを使う前にgmode 0を指定していたのをたまたま(?)みつけたのでそ
の後のes_copyの前でgmode 1を指定したらこれも通常の順序で表示されました。
なので今のところes_excopyを使うことで一応回避はできるのですが…

[774]Re:順番が変になる
Sinagawa (http://www.hspdx.net/junk/hspdxfix_20061003.dll) 2006/10/03 00:17:05>es_boxfを使ってからes_fmesを使うとなぜか文字より四角形の方が上にかぶさる形に
>なってしまいました。これはes_exboxfで同じ処理をしたらちゃんと文字の下に表示
>されました。
確証は持てませんが、DirectDrawがグラフィックボードにコマンドを送ってから実際に
実行されるまでにラグでもあるんだと思います。
うちでは症状を確認できませんでしたがそのあたりに手を加えたものを用意しましたので
これを使ってどうなるか試してみてください。

[773]順番が変になる
魔法合金 2006/10/01 19:48:18こんにちは、hspdxfixを使っている者です。
で、さっそく質問なんですが、自分のパソコンではなぜか描画命令で順番の逆転現象
のようなものが起こって困っています…
es_boxfを使ってからes_fmesを使うとなぜか文字より四角形の方が上にかぶさる形に
なってしまいました。これはes_exboxfで同じ処理をしたらちゃんと文字の下に表示
されました。
es_xferを使ってからes_copyを使っている箇所も描画順序が逆になっていました。
自分の新しいパソコンの方で開発していた時はそんなことは起こらなかったのです
が、他のパソコンで試したら表示が変になっていました。
これは環境によって描画順序が逆になったりするってことなんでしょうか?

[772]Re:es_exboxf のバグ?解決 そして要望
Rosh (http://r-revery.hp.infoseek.co.jp/) 2006/09/20 23:17:11>調べてみたところどうやら実装できそうなので、時間ができたら試してみます。
「DirectXの制限で無理」とか言われそうでちょっと気が引けてたんですが
大丈夫そうで良かった…
厚かましい要望かも知れませんがよろしくお願いします。

[771]Re:es_exboxf のバグ?解決 そして要望
Sinagawa 2006/09/20 00:49:44>話は変わってちょっとした(?)要望です。
>「es_excopy のコピー先指定版」というのは実現可能でしょうか?
調べてみたところどうやら実装できそうなので、時間ができたら試してみます。
これさえあればウィンドウモードでのボケなし拡大ができるようになるので、そこそこの
需要はあるのではと思います。

[770]es_exboxf のバグ?解決 そして要望
Rosh (http://r-revery.hp.infoseek.co.jp/) 2006/09/19 21:18:14すいません。
少し下の記事でリンクされてる修正版のDLLでは不具合は起きませんでした。
お騒がせして申し訳ありません。
話は変わってちょっとした(?)要望です。
「es_excopy のコピー先指定版」というのは実現可能でしょうか?
今現在 es_excopy で描画中の画面に回転コピーして
それを別のバッファに es_xfer でコピーして
今度はそれを加工して描画中画面に es_excopy でコピーという
荒業というか力技な処理をかましてる所があります。
指定バッファに直接 es_excopy が出来ると
es_xfer が省けてスマートになるし表現力も増すと思います。
(こんな使い方するのは少数かも知れませんが…)
一考して頂けたら、と思います。

[769]Re:es_exboxf のバグ?
Sinagawa 2006/09/19 00:28:29>es_exboxf でブレンドファクターを指定すると描画されません。
>省略してるとアルファ値は無効になるようですが描画されます。
>ブレンドファクターの指定できる他の命令では同じ不具合が出ないので
>環境依存のバグでは無さそうです。
こちらでも確認してみましたがHSP2.61、3.0ともに正常に表示されました。
es_exboxfとes_excopyでは内部での描画方法が微妙に違うため、もしかしたらその部分で
なにやら問題が起きているのかもしれません。

[768]es_exboxf のバグ?
Rosh (http://r-revery.hp.infoseek.co.jp/) 2006/09/18 23:14:01どうも初めまして。
HSPDXFIX.DLLを使ってゲームを作っています。
es_exboxf でブレンドファクターを指定すると描画されません。
省略してるとアルファ値は無効になるようですが描画されます。
ブレンドファクターの指定できる他の命令では同じ不具合が出ないので
環境依存のバグでは無さそうです。
ちなみにHSPは2.61を使ってます。

[767](無題)
ƒ‹ルーイヨッシー (http://luilab.b7m.net/) 2006/09/13 17:03:54無事、動作を確認しました。
ありがとうございました。

[766]Re:差し替えについて
Sinagawa 2006/09/13 11:38:04>差し替えって、普通にファイル名を「hspdxfix.dll」に
>変えて、エディタのあるディレクトリに置けばいいんですよね?
はい、そうです。
MSVCR71.DLLについては、コンパイラを変更した関係で必要になるランタイムです。
当サイトのダウンロードページに置いてありますので、ダウンロード後Windowsの
システムディレクトリにコピーしてください。

[765]差し替えについて
ルーイヨッシー (http://luilab.b7m.net/) 2006/09/13 07:40:22差し替えって、普通にファイル名を「hspdxfix.dll」に
変えて、エディタのあるディレクトリに置けばいいんですよね?
するとコンポーネントが見つかりません、というエラーが出るんですが・・・
MSVCR71.dllが見つからないって・・・
DLL内で呼び出していて、アドレスが違うとか?
その上無限ループでエラーが出ます。
DLLを旧バージョンのものに入れ替えるとエラーは出なくなりましたが・・・

[764]Re:hspdxfixの質問
Sinagawa (http://www.hspdx.net/junk/hspdxfix_20060912.dll) 2006/09/12 02:44:20ファイルをダウンロードして実行したところ、こちらでもエラーが発生したのを確認し、
さらに調査を進めていくうちに原因が判明しました。
どうやら2.61仕様のプラグインで、実行後内部でウェイトを取るようになっている命令を実行すると
直前の命令で返されたstatがクリアされないようです。
つまり、この場合ですとes_syncのstat値をチェックしてエラー扱いにしていた、ということです。
上記リンクにその問題を修正したものを置いておきますので差し替えてみてください。

[763]Re:hspdxfixの質問
ƒ‹ルーイヨッシー (http://luilab.b7m.net/) 2006/09/11 18:29:28分かりました。
自分のサーバーにアップロードしておきます。
なお、アクセス規制のため、コピーペーストして
アクセスしてください。
http://luilab.b7m.net/temp/kankyo_file.zip

[762]Re:hspdxfixの質問
Sinagawa 2006/09/11 01:36:02>それで、たかだか288×288の画像を読み込むと、VRAMの
>容量が足らない、とエラーになりました。
その昔、環境によってこのような現象が起こったことがあった記憶があり、
結局のところ原因がわからないままになっていました。
調査のために、再現性のあるファイル一式とデバッグモードで実行した際に
生成されるログをお願いします。

[761]hspdxfixの質問
ルーイヨッシー (http://luilab.b7m.net/) 2006/09/10 13:40:48始めまして。HSPDXFIXを使ってプログラミングしています。
それで、たかだか288×288の画像を読み込むと、VRAMの
容量が足らない、とエラーになりました。
前まではこれで大丈夫だったので、VRAMの容量が足らないという事はありません。
環境は
HSP3.0α
WindowsXP HomeEdition
グラフィックボード オンボードなので詳細不明
DirectX 最新版
です。ちなみに、最大スプライト数などはちゃんと足りています。
statには230〜280、たまに800程度が返って来ています。
これはes_syncのベンチマークと思いますが・・・
必要ならばソースと画像をアップロードしますが・・・
何がいけないのでしょうか?

[760](無題)
Leo 2006/08/29 19:18:25ありがとうございました
これからも応援するので頑張ってください

[759]Re:CWSDRV for HSP3.x
Sinagawa 2006/08/29 00:09:03>CWSDRVを使わせてもらったのですが、mus_loaddrumでドラムの音色を決めるとき
>mus_loadtoneと同じようにプログラムNOを設定する事は可能でしょうか?
残念ながらCWSDRVはドラムセットを一つしか持っていませんので、曲ごとにドラムデータを
読み直すか、使わないノートに別キットの音を割り当てて対応してください。

[758]CWSDRV for HSP3.x
Leo 2006/08/28 18:16:03
はじめまして
CWSDRVを使わせてもらったのですが、mus_loaddrumでドラムの音色を決めるとき
mus_loadtoneと同じようにプログラムNOを設定する事は可能でしょうか?
ドラムキット毎に音色を変えたいのですが…

[757]レス
Sinagawa 2006/08/28 00:11:49>途中変更不可能ですか。何か他の方法はないでしょうか?回避作というか・・・。
今更確認しますが「途中のウィンドウモードの変更」というのはフルスクリーン<->ウィンドウ
モードの切り替えや、フルスクリーン時の解像度の変更と言うことでいいですよね?
そうであれば、前のレスに書いたとおり一度es_byeを実行して再度初期化するしかありません。
ただ、その方法も現時点では何度も繰り返すとクラッシュするという報告があるのであまり
おすすめはできません。
ウィンドウモードで動作中に見た目のサイズだけ変えたいのであればscreen命令でウィンドウサイズを
いじるだけでよいのですが。

[756]ありがとうございます
JJ 2006/08/26 22:00:55Sinagasaさんありがとうございました。
es_bufcheckの命令を見落としていました。すみません・・・。
メインループ内に入れて動作確認しました。
というか、ALT + F4って間違ってますね(^-^;)ALT + TABですね・・・。
途中変更不可能ですか。何か他の方法はないでしょうか?回避作というか・・・。

[755]Re:途中のウィンドウモード変更
Sinagawa 2006/08/25 23:54:33>タイトルの通りなのですが、途中のウィンドウモードの変更は可能でしょうか?
現段階では一度HSPDXを終了させて、再度初期化しないと無理です。
>それと、フルスクリーン中に ALT + F4で他のタスクをアクティブにするとHSPの画面が真っ黒になって二度と画面が描画されません。
DirectXはフルスクリーンモード中にアクティブなウィンドウが変わるとVRAMがロストして
しまいますので、es_bufcheckを使って復元を行う必要があります。
一応使い方を書いておきますと、es_bufcheckモジュールをメインルーチンの最初に実行するだけです。
後はモジュール内部でフォーカスの監視とロストしたバッファの復元が行われます。
このとき、バッファに入っていた画像はたいてい消失していますので再度読み直してください。

[754]途中のウィンドウモード変更
JJ 2006/08/25 06:46:30Sinagawaさん始めまして。
タイトルの通りなのですが、途中のウィンドウモードの変更は可能でしょうか?
それと、フルスクリーン中に ALT + F4で他のタスクをアクティブにするとHSPの画面が真っ黒になって二度と画面が描画されません。
repeat 〜 loopでまわしてるので、戻ってきた時も表示されてると思ったのですが・・・。
上記2点について、お忙しいと思いますがご教示下さい。
宜しくお願い致します。

[753]es_bufferについて
Funa 2006/08/23 17:07:46
確認せずに質問してしまいすいませんでした。
管理方法は別を考えてみます。

[752](無題)
utu 2006/08/23 00:44:50オフスクリーンバッファIDは0〜127番まで、という事はマニュアルに書かれていますよ。

[751]Funa
es_bufferについて 2006/08/22 23:51:25
es_bufferで大きい数値のIDを作るとシステムエラー1が出ます。
管理しやすいように桁を上げてIDを作成してるのですが、何番まで作成可能なんでしょうか?

[750]ありがとうございます
Beth 2006/08/16 02:52:11サンプルを参考にいろいろ試したところ半透明コピーできました!
原因は… テスト用に組んだスクリプトのes_screenで、
Direct3D使用フラグが0になっていたと言う単純ミスでした…
素早い回答ありがとうございました。

[749]Re:半透明コピーについて
Sinagawa 2006/08/16 00:17:01>半透明コピーがしたくてes_excopyを使ってみたのですが、
>画面に変化が無く、使い方が分かりませんでした。
11番目のパラメータにブレンドファクター(合成する演算方法。単純な半透明ならESB_ALPHA)を、
12番目のパラメータにα値(合成する度合い。0に近くなるほど重ねる画像が薄くなる)を指定すれば
半透明になります。
ダウンロードしたファイルの中にあるSAMPLE.LZHに、半透明コピーを使ったサンプルがあるので
それを参考にいろいろいじってみてください。
ただ、環境によってはα値が反映されず、半透明処理が行われないと言う報告を過去にいただいており、
ダウンロードページから入手できるものはその問題を修正していませんので、その場合は
ここの過去ログにあるリンクからDLLを落として差し替えてみてください。
最新のものは#735にあります。

[748]半透明コピーについて
Beth 2006/08/15 19:01:13また初歩的な質問です。
半透明コピーがしたくてes_excopyを使ってみたのですが、
画面に変化が無く、使い方が分かりませんでした。
お忙しいところ大変申し訳ないですが、
半透明コピーの簡単なサンプルがありましたら教えてください。

[747]ありがとうございました
RuthlessDragon (http://www.geocities.jp/kouten2_ruthlessdragon/) 2006/08/14 21:06:17変数と配列変数のミスでしたね。
教えてくださり、ありがとうございました。
そして、単純ミスで失礼しました。

[746](無題)
KIMU 2006/08/14 19:14:15>もしかするとモジュール以外のものが関係しているのかもしれませんが、
最低限自分で出来る事をしてませんね。
主要部分だけ抜き出して検証すれば
モジュール化には、何も問題が無いのが分かるはず。
;//////
if b_n(get@-651) ! 0 : b_t(get@-651) = b_i(get@-651) + time_n@
}
loop
repeat 250 ;敵の銃弾発射
es_exnew@ get@,651+cnt,651+cnt
if (get@ = -1) & (b_t(cnt) <= time_n@) & (b_n(cnt) ! 0) {
es_get@ b_ex,cnt+651,3
es_get@ b_ey,cnt+651,5
>見ている限りでは他に間違った点は見当たらないのです。
4箇所間違いがありました。
どこが可笑しかったか見比べてください。

[745]モジュール内でのes_getでのX座標取得は不可能?
RuthlessDragon (http://www.geocities.jp/kouten2_ruthlessdragon/) 2006/08/13 21:06:21以前、hspdxfix_20060701.dllをいただいた者です。
あれからシューティングゲームの作成を暫く続けていたのですが、
敵銃弾を発射させる為にモジュール内でes_getを用いてX,Y座標を取得しようとしたら、
何故かX座標だけ取得できませんでした。
http://www.geocities.jp/kouten2_ruthlessdragon/tmp/disillusion.lzh
このアドレスにあるものです。
moduleフォルダ内のmodule_dn.hsp96行目のes_getです。
もしかするとモジュール以外のものが関係しているのかもしれませんが、
見ている限りでは他に間違った点は見当たらないのです。
解法を教えてくださるとありがたいです。

[744]ありがとうございます
Beth 2006/07/24 06:06:45わかりやすい回答とサンプルありがとうございました!
また初歩的な事をお聞きするかもしれませんが、その時はよろしくお願いします。

[743]Re:es_palfadeについて
Sinagawa 2006/07/23 23:31:36>32bitカラーでDirectXの画面のフェードアウトをやろうとして es_palfade を使ってみたのですが、
>画面に全く動きが無くて何が悪いのか分からない状態です。
ループ処理の中にes_syncが組み込まれていないせいで画面の更新が一度しか行われて
いないことが原因です。
HSPDXを使う場合は(というか、標準命令のみでも場合によってはそうですが)画面の更新を
自動的に行うようにはなっていませんので、描画を一通り行うごとにes_syncを実行してやる
必要があります。
es_palfade -256,1,$000000
repeat
stick s
if s : es_bye:end
es_sync 16
await 0
loop

[742]es_palfadeについて
Beth 2006/07/23 10:16:39最近HSPを始めたばかりで初歩的な質問で申し訳ないのですが、
32bitカラーでDirectXの画面のフェードアウトをやろうとして es_palfade を使ってみたのですが、
画面に全く動きが無くて何が悪いのか分からない状態です。
#include "hspdxfix.as"
es_ini
es_screen 640,480,32,0,1,1
es_cls 255,0,0
es_sync
es_palfade -256,1,$000000
es_sync
簡単に書くとこんな使い方をしてるのですが、
使い方が全然違うのでしょうか?
32bitカラーでes_palfadeが動くサンプルがありましたら教えてください。

[741]見落としていましたf^^;
RuthlessDragon (http://www.geocities.jp/kouten2_ruthlessdragon/) 2006/07/19 20:17:14不透明にするにはα値を255にすればいいのですね。
テストの方は、一部微妙に色合いが違うようです・・・。
なので、こちらで問題の出ないhspdxfix_20060701.dllを使うこととします。
ありがとうございました。

[740]738のテストスクリプトを実行してみた
KIMU 2006/07/18 22:40:06Windows XP sp1
DirectX 9.0c
RADEON 9800 PRO
hspdxfix_20060717.dll
hsp3.0a
の環境で、
>実行すると、こちらではこんな感じに表示されます↓
>http://www.hspdx.net/junk/test_20060718.lzh
と、同じような表示がされて、問題はありませんでした。(デスクトップを16ビット色でテスト)
>>739
>・・・そちらのアドレス、違いますよね?
アドレスの.lzhを.jpgに直してみてw
>#hspdxfix_20060701.dllでα値256ではes_exboxfが出てこないのですが、
691にその答えが・・・

[739]サンプルのキャプチャ
RuthlessDragon (http://www.geocities.jp/kouten2_ruthlessdragon/) 2006/07/18 20:28:31サンプルのキャプチャと、症状が出ている部分のキャプチャをひとまとめにして
出してみました。
hspdxfix_20060717.dllを用いているもので、その部分のスクリプトも載せておきました。
http://www.geocities.jp/kouten2_ruthlessdragon/tmp/re_sample.PNG
このように表示されます。同条件の32bitウィンドウモードです。
・・・そちらのアドレス、違いますよね?
#hspdxfix_20060701.dllでα値256ではes_exboxfが出てこないのですが、
これも環境依存でしょうか?

[738]Re:DLLを差し替えると
Sinagawa (http://www.hspdx.net/junk/test_20060718.lzh) 2006/07/18 13:36:02>hspdxfix_20060717.dllに差し替えると半透明ではありますが黒っぽくなってしまいました。
>hspdxfix_20060701.dllならば半透明の青色が出るのですが・・・。
一応こちらでは動作確認したので、環境依存のバグが出てしまったようです。
で、試しに上記リンクのようなテストスクリプトを作ってみました。
実行すると、こちらではこんな感じに表示されます↓
http://www.hspdx.net/junk/test_20060718.lzh
(32bitウィンドウモードでキャプチャ)

[737]DLLを差し替えると
RuthlessDragon (http://www.geocities.jp/kouten2_ruthlessdragon/) 2006/07/17 18:45:48color 255,0,0
es_exboxf 6,6,106-damage,26,,,,,ESB_ALPHA,128
と言う風に構文していたのですが、
hspdxfix_20060717.dllに差し替えると半透明ではありますが黒っぽくなってしまいました。
hspdxfix_20060701.dllならば半透明の青色が出るのですが・・・。
にゃーさん>
お役に立てて光栄です(^^)

[736](無題)
おばか改めにゃー 2006/07/17 14:44:37RuthlessDragonさん>
教えてくれたありがとうございます
あと、HN変えておきましたw

[735]Re:半透明のコピーと矩形、そしてバグ?
Sinagawa (http://www.hspdx.net/junk/hspdxfix_20060717.dll) 2006/07/17 12:12:12colorで指定されているRGB色だと赤色になるはずですが、
>es_exboxfの後ろの方を削って
> pos 0,0 : es_excopy 5,0,0,112,33,112,33,,,,ESB_ALPHA,100
> color 255,0,0
> es_exboxf 6,6,106-damage,26
>とすると、何故か青色になります。
>これはバグでしょうか?
BMSCRが渡すカラーデータがBGRの並びになっているのを直さずにそのまま使っているのが
原因でした。
上記リンクに修正したものがありますので差し替えてみてください。

[734]修正されたようです
RuthlessDragon (http://www.geocities.jp/kouten2_ruthlessdragon/) 2006/07/17 06:28:06KIMUさん>
ありがとうございます。
動作してくれました。
ですが、やはりcolor 0,0,255で赤色が表示されるのはそのままです。
もしかするとこれはHSPDXFIXの仕様なのでしょうか?
おばかさん>
HSP上で#include "hspdxfix.as"すればいいだけですので、
DirectX SDKを持ってこなくても大丈夫ですよ。
それにしても、HNにおばかさんは止めたほうが・・・f^^;

[733]DirectX
おばか 2006/07/17 01:32:00DirectX SDKがなくてもHSPDXFIX for HSP2.6x&3.x
があればHSPでDirectXを使えますか?

[732][731]の名前
KIMU 2006/07/16 16:32:33あら・・・
名前を書き間違えたw
KIKU>KIMU

[731]Re:半透明のコピーと矩形、そしてバグ?
KIKU 2006/07/16 13:48:39>と、しているのですが、es_exboxfで描かれるはずの矩形が出てこないのです。
多分ここの[689]に貼られてるアドレスのをDLすれば問題は解決するかも
(728のがローカルバージョンの最新版って所かな?)

[730]半透明のコピーと矩形、そしてバグ?
RuthlessDragon (http://www.geocities.jp/kouten2_ruthlessdragon/) 2006/07/16 12:41:12始めまして、シューティングの為にHSPDXFIXを使わせて頂いている者です。
HSPDXFIX.txtを見てもよく分からなかった為、質問させていただきます。
es_excopyやes_exboxfを使って、自機がライフゲージと重なった場合に半透明にするようにしたいのですが、
半透明にする為にはどのようにプログラムすればよいのでしょうか?
現在は
pos 0,0 : es_excopy 5,0,0,112,33,112,33,,,,ESB_ALPHA,100
color 255,0,0
es_exboxf 6,6,106-damage,26,,,,,ESB_ALPHA,100
と、しているのですが、es_exboxfで描かれるはずの矩形が出てこないのです。
es_excopyの方は、大丈夫なようなのですが・・・。
#試行錯誤しているときに見つけたのですが、
colorで指定されているRGB色だと赤色になるはずですが、
es_exboxfの後ろの方を削って
pos 0,0 : es_excopy 5,0,0,112,33,112,33,,,,ESB_ALPHA,100
color 255,0,0
es_exboxf 6,6,106-damage,26
とすると、何故か青色になります。
これはバグでしょうか?

[729]Re:Re:es_clip+es_zoom
cat-syoya 2006/07/02 03:08:31導入してみたところ
クリッピング後も問題なく拡縮表示されるようになりました。
すばやいご対応、ありがとうございました。

[728]Re:es_clip+es_zoom
Sinagawa (http://www.hspdx.net/junk/hspdxfix_20060701.dll) 2006/07/01 10:26:09というわけで、こちらが修正したDLLになります。
ダウンロード後リネームして差し替えてください。

[727]Re:es_clip+es_zoom
Sinagawa 2006/07/01 02:20:46>質問なのですが、es_clipでクリッピングした後にes_zoomを使用すると
>拡大コピー元の範囲までes_clipで設定した値の影響を受けてしまうようなのですが
>これはバグなのでしょうか?
はい、確かにこれはバグですね。明日(日付が変わっているから今日か)にでも修正したものを
用意したいと思います。

[726]es_clip+es_zoom
cat-syoya 2006/06/29 23:40:28はじめまして、いつもHSPDXFIXを使わせていただいています。
質問なのですが、es_clipでクリッピングした後にes_zoomを使用すると
拡大コピー元の範囲までes_clipで設定した値の影響を受けてしまうようなのですが
これはバグなのでしょうか?
環境
OS:WindowsXPSP2 DX:9.0c CPU:AthlonXP2500+ VGA:Radeon9800pro
HSP:2.6 DLLのバージョンは1.9、Direct3D使用はオフ

[725]Re:困ってます
Sinagawa 2006/05/28 01:22:24HSPセンターのHSP教室[実践編]に、その当たりを網羅した講座があります。
http://hspcenter.com/

[724]困ってます
カズキ 2006/05/27 17:03:33こんにちは〜、ゲームをつくりたいんですけど。
キャラクターのつくりかたとか、マップの作り方とかキャラクターをまっぷであるかしかたとかがよく分からないんですけど教えてくれませんか?

[723]自己レス
KIMU 2006/05/01 01:05:28必要としてる人には、うまく行かなかったもよう(^^;

[722]8ビットフルスクリーンD3D未使用の終了時にエラー問題
KIMU 2006/04/30 21:22:36こんばんは、過去レスになってしまいますが
自分の所ではD3Dを使用してるので、放置してたんですけど
他の所でも問題が出る人がいたので、解決策を考えてみました。
http://www.onionsoft.net/hsp/beta/betabbs.cgi?mode=allread&no=5269&page=#2
これで、一応エラーは出なくなりました。

[721]Re:Re:es_fmesで改行コード
Funarin 2006/04/23 12:07:05
レスありがとうございます。
例を出していただいてとても助かります。
手動で改行すると行幅をセットできるんですね。
とても参考になりました、ありがとうございます。

[720]Re:es_fmesで改行コード
Sinagawa 2006/04/23 10:37:13>改行して表示させるにはどうすればいいのでしょうか?
HSPDXFIXの文字表示命令は制御コードを解釈しませんので、自力で改行するしか
方法はありません。
例:
sdim msg,128
sdim tmp,128
msg="改行テスト\n2行目\n3行目\n\n終わり"
offset=0
x=0
y=0
repeat
getstr tmp,msg,offset,'\n'
offset+=strsize+1
pos x,y
mes tmp
y+=16
if offset>=strlen(msg) : break
loop

[719]es_fmesで改行コード
Funarin 2006/04/23 05:56:35
es_fmesで\nが入った文章を出力すると、その部分が無視されて改行されずに表示されます。
es_mesでは\nが文字化けしてそのまま表示されてしまいます。
改行して表示させるにはどうすればいいのでしょうか?

[718]Re:スプライトの透過色当たり判定について
Sinagawa 2006/04/04 01:06:28>oya_binさん
既出意見の繰り返しになりますが、HSPDXFIXではスプライトの伸縮回転が絡んでくるので
目的に対して膨大な量の計算が必要となり、効率が悪すぎるために実装は無理と言うことになります。
(単純転送されたスプライト同士でならマスクデータを用意してビット演算で・・・ってできるので
実用レベルでの実装は可能かもしれませんが)
現状の当たり判定の持たせ方ではいろいろと制約が出てしまうので、今後は仕様の見直しも
視野に入れていきたいと思います。

[717]re:スプライトの透過色当たり判定について
oya_bin 2006/04/03 21:39:25>横レスですが…さん
レスありがとうございます。
私も無理だと思いつつ質問させていただいた次第です。^^;
そうですね、確かに全ピクセルに演算しなければならないですね。
無茶を言って申し訳ないです。
ただ、透過色が1色の場合単純な演算で済む
(あくまで当たるか当たらないかなのでRGB値を無視できる)
と思ったので、書いてみました。
横レスですが…さんの仰る通り代替方法でやってみたいと思います。
あくまで「希望」でしたので、Sinagawaさんに無理を言っては
いけないですね。
互いにプログラム頑張りましょう!
(未練はありますが、とりあえず)失礼致します。

[716]re:スプライトの透過色当たり判定について
横レスですが… 2006/04/03 15:09:44横レスですが連続面のすべてをピクセル単位で判定する必要があるので、事実上不可能だと思いますよ。
2Dゲームの常識から考えると代替方法として述べられているやり方が普通だと思われます。

[715]スプライトの透過色当たり判定について
oya_bin 2006/03/31 22:19:56初めまして。
Hspdxfixを利用してプログラムを組んでいます。
環境はI945Gマザー、オンボードグラフィックス、DirectX9.0c、
HSP3.1β1、画面モードはes_screen、扱う画像とも16bモードです。
私の勘違いなら申し訳ないですが、
透過色だけのスプライトでも、
当たり範囲が%の部分に有効になります。
透過できるのは便利なのですが、
透過した部分を当たり判定から除外できないでしょうか?
つまり、透過色をes_checkで除外するモードがほしいのです。
例えば、大きな円のスプライトを作り、中心を透過します。
その中に小さなスプライトを表示して、
その透過されていない部分だけが当たる(透過されたところは当たらない)
のような使い方を出来たら便利なのですが……
Hspdxfix側で無理なら代替方法は考えてあります。
スプライトを小分けに定義し、
中心を空白にする方法です。
ただ手間のかかり具合が違うので、
それをしたくないのです。(一枚絵でパターンを作りたいのです。)
もしマニュアルなどの読み飛ばし、
過去ログに回避方法などがありましたら、申し訳ありません。
実装されていないのなら、是非実装してほしいです。
ご回答を期待しています。

[714]re:強制シングルプロセッサ
ウインド 2006/03/22 11:27:36ありがとうございます、上手くいきました。
これで問題なくFPSも安定したようです。
いろいろと本当にお世話様でした。

[713]強制シングルプロセッサ
Sinagawa 2006/03/21 20:23:59>ウィンドさん
以下のスクリプトを使えばシングルCPUに強制変更できますのでお試しください。
#include"kernel32.as"
;立っているビットが使用されるCPU
usecpu=%00000001
; statはたいてい-1になるので決め打ちすればGetCurrentProcessはいらないが
; 念のために実行しておく。
GetCurrentProcess
SetProcessAffinityMask stat,usecpu
stop

[712](無題)
ウインド 2006/03/20 11:17:24検証ありがとうございます。
私のほうでもシングルタスクで動作させて安定するのを確認しました。
できればスクリプトレベルで強制的にシングルタスクで動作させるよう
切り替えたいのですが、それは可能なのでしょうか?

[711]レス
KIMU 2006/03/20 02:12:05>周りの色の影響を受けてしまうのはDirect3Dの仕様なので挙動としては問題ないと思われます。
なるほど、分かりました。お手数かけました。
まとめると
・補間時には範囲外の影響を受ける>D3Dの仕様(設定によって影響の度合いが違う)
・透明色と補間されるとドットは透明になる>D3Dの仕様?
・回転無しの時に補間有りの影響を受けない>環境依存
こんな感じかな?
とりあえず、これを踏まえて制作していきたいと思います。
では、ありがとうございました。

[710]レス
Sinagawa (http://www.hspdx.net/image/20060318.png) 2006/03/18 12:49:21>ウインドさん
ちょうど自分もAthlon64 X2ユーザーだったので調べてみました。
1.適当なスクリプトを実行
→ FPSは62〜64(まれに65も)でバラつく。
2.そのままタスクマネージャを呼び出し、シングルコアで動作するように設定する
(プロセスタブでhsp3.exeを右クリック→関係の設定でCPU1のチェックを外す)
→ FPSは61でほぼ安定する
3.再度デュアルコアで動作させる
→ 1.と同様FPSはバラつく
何度か試してみて毎回このようになるわけではありませんでしたが、デュアルコアCPUを使う場合は
シングルコアで動作した方がウェイトが安定しているような印象を受けました。
(ちなみに、es_syncのウェイトを0にしてawait 16でウェイトをとるようにすると
コアの設定にかかわらず40FPSという問題外の数値がでました)
>KIMUさん
こちらで実行してみた結果を上記リンクに置いておきます。
比較してみると元絵96の画像を補間ありにしたときに緑の枠が出ていない以外はおおむね
同じ挙動をしているようです。
というか、自分が前にレスしたときに微妙に読み違えていたような気がするのですが補間ありにしたときに
周りの色の影響を受けてしまうのはDirect3Dの仕様なので挙動としては問題ないと思われます。

[709]透明色との補間が問題か、-1ドットとの補間が問題か・・・
KIMU 2006/03/17 23:55:59検証&レスありがとうございます。
>描画されているのが確認できます。
こちらでも正常に表示されてしまいました(^^;。
あれ?と、思って色々検証してみました。
使ったスクリプト
http://gamdev.org/up/img/5046.zip
3つ重なった画像は 補間無回転無:補間有回転無:補間有X軸180度回転
縦に 上:元画像 中:不透明表示 下:透明表示
マウスカーソル位置を拡大して表示
実行画面
http://gamdev.org/up/img/5047.jpg
とりあえず、分かった事を・・・
es_excopyやスプライトは、不透明設定の場合は、補間時回転しても正常に近く表示
透明色設定しても
コピーやes_sizeのサイズ外に、透明色以外又は、バッファ外の場合
補間時回転しても正常に近く表示(絵に透明色が使われていると・・・)
挙げてもらったスクリプトは、この両方に合致してますね(^^;
正常に近く表示って言うのは、反転した時に-1ドットの位置にある色と
補間してる感じに見える事です。
-1の座標がバッファ外の場合は白と補間
-1の座標が使用サイズ外ならその位置にある色と補間
-1の座標が透明色だと補間後透明に(1ドットのラインの場合消える・・・)
以上報告でした。
>なので、環境依存の問題だと思われます。
環境依存でしたら申し訳ありません。

[708](無題)
ウインド 2006/03/17 10:07:43>Sinagawaさま
レスありがとうございます。
あの後いろいろな環境で試してみたのですが、
P4のHTやAthlon64x2等の、OSが複数CPUを認識する環境で不安定に
なることが分かりました。後者は1回起動ごとに特定の数値が出るわけでは
なかったですが。
手動でいじって安定させられるように実験してみます。

[707]レス
Sinagawa (http://www.hspdx.net/junk/20060316.lzh) 2006/03/17 00:02:05レス遅くなりました。申し訳ございません。
>KIMUさん
上記リンクのようなテストスクリプトで検証してみました。
実行するとX軸を180度回転した65*65の画像の上に64*64の画像が表示されます。
左が補間なし、右が補間ありでスペースキーを押すと上の画像の表示を切り替えるようになっています。
これを自分の環境で実行すると下の画像が縦横1ドットずつはみ出し、かつ65*65で
描画されているのが確認できます。
なので、環境依存の問題だと思われます。
>ウインドさん
こちらで何度か検証してみましたが、16を指定するとたまに62になるものの基本的に61で落ち着き、
-16を指定すると同様にたまに64になるものの基本的に63で落ち着く、といった結果になりました。
原因はわかりませんでしたが、何にせよWindowsのタイマーの信頼性が怪しいのは周知の事実ですので
FPSの安定する方法を模索しなければならないことだけは確かでしょう。

[706]hspdxfixで
ウインド 2006/03/09 11:24:26ウインドと申します。
プラグイン使わせていただいております。
hspdxfixについてですが、描画ウェイトをたとえば
es_sync 16,1
としたとき、私のPCで実行するとFPSが61前後の時と64前後の時があります。
続けて実行すると、61→64→61→と交互に結果が変わるようです。
なにかお心当たりがあれば検証していただきたいのですが…。
直前にテストしたPCのスペックを載せておきます。
CPU:Pentium4(3.0GHz)
VGA:GeForce6600GT
OS:WindowsXP Home/DirectX9.0c
p.s.
過去ログを参照しまして、マイナスの値を入れたところ、
es_sync -16,1
としたら今度は
63→65→63→…
となりました。

[705]704を修正
KIMU 2006/03/05 18:39:45>es_patに32*32で登録した物を回転あり32*32で表示した物と
回転は180度で完全に反転した状態です。
これが、補間時の仕様でしたらpat登録時に反転したり
常にx軸を、180度回転させたのを、使用したいと思います。
>あと、家の環境だと線形補間なしの時に範囲外の画像が周りに表示されます。
これは違いました。
線形補間有効時にはpat登録範囲いっぱいに、絵があると回転時に隣接してる
画像との補間を、してる感じでした。
xを180度回転させると左と上だけ範囲外と補間されて、範囲外に絵がないとその
部分の表示がなくなる感じ(これが回転させると絵が小さくなる原因かな・・・)
線形補間なしだと、ちらちら数ドット出る感じでした。

[704]回転表示されている物としてない物の違い(線形補間有効時)
KIMU 2006/03/03 04:08:52こんにちは、さっそくですが、仕様か既知の不具合なのか
判断がつかない現象があるので、報告します。
es_effect等で回転させた時の表示が少し小さくなるようです。
es_patに32*32で登録した物を回転あり32*32で表示した物と
es_patに33*33で登録した物を回転なし32*32で表示した物と同等でした。
そして、33*33で登録して回転あり33*33で表示が、32*32登録回転なし32*32表示
と、同等でした。線形補間なしの場合は表示サイズに違いは見られません。
(今は最初からxを180度回転させて回転時に表示サイズが変わらないようにしてる)
>・線形補間を有効にするとテクスチャ範囲外の画像が周りに表示される。
この問題と関係ありそうなので、既知の問題かな・・
あと、家の環境だと線形補間なしの時に範囲外の画像が周りに表示されます。
以上報告でした。

[703]Re:DIPSW 1.00について
Sinagawa 2006/02/15 00:13:50>さっそくHSP3.0aに導入して、同梱のSAMPLE1と2を実行してみたのですが
>両者ともに、閉じるボタンクリックなどで終了した際、エラーが発生しました。
こちらでは問題なく終了できたので、環境依存の問題だと思います。
end命令を実行するようにしたら直るというのも妙と言えば妙ですけど。

[702]DIPSW 1.00について
エコQ 2006/02/14 08:38:02プラグインDIPSW.DLL Ver 1.00リリースおめでとうございます。
便利な機能が実装されてて、また重宝できそうです。ありがとうございます。
さっそくHSP3.0aに導入して、同梱のSAMPLE1と2を実行してみたのですが
両者ともに、閉じるボタンクリックなどで終了した際、エラーが発生しました。
(エラー報告に記述されていたメッセージ)----------------------------------
AppName: hsp3.exe AppVer: 0.0.0.0 ModName: dinput.dll
ModVer: 5.1.2600.1106 Offset: 00014bd2
--------------------------------------------------------------------------
onexit goto〜 を使って、終了前に end 命令を実行するように書き換えたら、
エラーは起こらなくなりました。
環境の差異によるものかもしれませんが、報告させていただきます。 以上です。

[701](無題)
撃 2006/02/12 10:27:23完璧でした!ありがとうございます。

[700]レス
Sinagawa (http://www.hspdx.net/junk/hspdxfix_20060208.dll) 2006/02/08 23:12:55>負荷がかなりかかっているのと、スプライト周辺に赤や青の四角が表示されます。
すいません、デバッグ用のコードを潰すの忘れてました。
URL同じですが差し替えてありますのでダウンロードし直してください。

[699]ごめんなさい
撃 (http://upld3.x0.com/upload.cgi?mode=dl&file=343) 2006/02/08 20:59:27画像のURL入力ミスしました。Dlkeyはdxfixです。

[698]es_effectについて2
撃 2006/02/08 20:56:52迅速な回答に感謝いたします。es_effectのxy軸回転の方法で一応解決はしました。
修正版をあげていただいたので、早速試してみました。
当たり判定については、きちんと直っているようです。
ただし、画像を(Dlkey:dxfix)見ていただくとおわかりになるかと思いますが
左が以前のバージョン、右が修正版使用時のものです。
負荷がかなりかかっているのと、スプライト周辺に赤や青の四角が表示されます。
いろいろ試してみたところ、es_checkで”回転を考慮して判定”した場合に
この現象が起きているようでした。

[697]Re:es_effectについて
Sinagawa (http://www.hspdx.net/junk/hspdxfix_20060208.dll) 2006/02/08 02:31:22>自分はes_effectの表示サイズに負の値を入力する事で左右反転をさせました。
>表示自体は登録してあるキャラパターンのドットが1ドットずれる以外
>問題無かったものの、当たり判定が
>表示されるキャラクターとは全く別の場所に出てしまいます(一応人型の判定は持っているようです)
内部処理の計算式に問題があるのが原因です。修正したものを上記URLに置いておきます
のでこれと差し替えてみてください。

[696]es_effectについて
撃 2006/02/08 00:03:42はじめまして。HSPDXFIXを使って楽しくプログラミングしております。
スプライトを組み合わせて多関節キャラの左右反転を作っていました。
(es_effectのxy軸回転を利用すれば良いと過去ログにありましたが)
自分はes_effectの表示サイズに負の値を入力する事で左右反転をさせました。
表示自体は登録してあるキャラパターンのドットが1ドットずれる以外
問題無かったものの、当たり判定が
表示されるキャラクターとは全く別の場所に出てしまいます(一応人型の判定は持っているようです)
この方法もできれば使いたいので原因などについて何かお分かりになる事があれば
お教え頂きたいのですが。

[695]693&694は、やっぱりこっちの環境のせいだったみたいです・・・
KIMU 2006/01/29 17:48:13DXの設定変えたからか現象は起きなくなりました。
どうも、すみませんでした。m(__)m

[694]693は、こちらの環境が悪いだけかも・・・
KIMU 2006/01/29 01:45:24es_timer timb
es_mes ""
es_timer tima
tim=tima-timb
es_sync
es_sync 0〜15,0 だとtimは16前後
es_sync 16〜,0 だとtimは0〜1
es_sync 0〜,1 だとtimは0
後es_drawの場所や描画された個数でtimは変わります。
環境依存だったら気にしないでください(^^;

[693]es_fmesとes_mes
KIMU 2006/01/28 18:37:57こんにちは、また気になる事が出て来たの報告です。
;B----------------------
*main
・
・
・
es_timer timb
tim=timb-tima
es_mes ""+tim
es_sync 0,0
await 0
es_timer tima
goto *main
;B----------------------
*main
・
・
・
es_mes ""
es_timer timb
tim=timb-tima
es_mes ""+tim
es_sync 0,0
await 0
es_timer tima
goto *main
この二つでtimの値はes_mes ""の命令一個分しか変化がないはずですが
実際には1フレーム分(次のVSync迄)ぐらい差が出ます。
es_mes は実際の描画を待つような仕様ですか?
ウィンドウモードの場合AとBでの値に違いは有りませんでした。
以上です。

[692]es_exboxfとes_boxfの違い
KIMU 2006/01/24 04:30:56>動作が微妙に変わることになって気持ち悪いので今後両命令とも0〜255で統一することにします。
了解です。
で、もう少し他と動作が違う所がありましたので報告を・・・
es_boxf 100,0,100,100 1ドットのライン
es_boxf 100,0,99,100 2ドットのライン
es_exboxf 100,0,100,100 1ドットのライン
es_exboxf 100,0,99,100 表示なし(z軸を回転させると点線状態で表示)
es_exboxf 100,0,98,100 1ドットのライン
後、es_excopyの回転とes_exboxfの回転は少し違う感じです。
http://49uper.com:8080/html/img-s/107314.bmp
SSです。左がes_exboxf右がes_excopyのラインです。
以上報告でした。
(es_exboxfの仕様って感じもしたけど一応^^;)

[691]レス
Sinagawa 2006/01/23 00:15:20>KIMUさん
検証ありがとうございます。うまく動いているようでよかったです。
>でも、ちょっと気になる事が出てきました。
>命令によってα値の範囲、動作が違うみたいです。
es_excopyがα値を256で割ったものをDirect3Dに渡しているのに対して
es_exboxfはパラメータを8bitで切り捨てたものを色情報と一緒に渡しているのが原因です。
ただし、今まで問題が起きなかった環境ではes_exboxfもes_excopyと同じく0〜256での指定に
なりますので、そうなると従来のes_exboxfが問題なく動いていた環境とそうでない環境で
動作が微妙に変わることになって気持ち悪いので今後両命令とも0〜255で統一することにします。

[690]hspdxfix_20060121.dll
KIMU 2006/01/22 23:13:10お疲れ様です。検証してみました。
正常に表示されているようです。ありがとうございました。
でも、ちょっと気になる事が出てきました。
命令によってα値の範囲、動作が違うみたいです。
es_excopy(説明ではα値0〜256)
0,1,2・・・,255,256,257,258 α値
0,1,2・・・,255,255,255,0 見た目(実際にα0かは不明)
0,1,2・・・,255,256, 0,1 実際には257の倍数でループしてるみたい
α0〜256の257種類でα257で一周してるけど見た目はα255と同じ
(他のα0〜256とされてる命令は全部かも)
es_exboxf(説明ではα値の範囲は書いてない)
α0〜255の範囲で256種類
α256で一周してα0と同じに見える
以上です。
まぁ、es_excopyとかもα0〜255として扱えば問題無いと思いますが一応・・・

[689]レス
Sinagawa (http://www.hspdx.net/junk/hspdxfix_20060121.dll) 2006/01/22 00:09:08>KIMUさん
検証ありがとうございます。
やはり頂点カラーの方のα値だけが反映されていたようです。
一昨日アップしたものは意図的にαを256で固定していたので、今度はパラメータが
反映されるように変更したものを用意しました。
もし、今まで問題なく動作していたけどこのバージョンを使用して逆におかしくなった
という人がいましたら教えてください。

[688]Re:es_exboxf
KIMU 2006/01/20 06:06:26ども、開発お疲れ様です。
早速試してみました
ESB_MULTIPLE
ESB_NEGATIVE
この二つは変わらずOKみたいです(正常に表示されてるかは不明(^^;)
ESB_SHADOWは0.19で表示無し
今回のではα値に関係無く黒でした。
ESB_ALPHA
ESB_ADD
この二つには変化がありました。
でも、正常では無いみたいです。
α値に関係無く
ESB_ALPHA>α値256
ESB_ADD>α値128
の状態で表示されてるように見えます。(0にしても)
α値128&256で0.19と119のSSを下のアドレスにUPしてみました。
http://49uper.com:8080/html/img-s/106538.jpg

[687]es_exboxf
Sinagawa (http://www.hspdx.net/junk/hspdxfix_20060119.dll) 2006/01/20 00:00:07前から気になっててそのままになっていた部分をいじったものを上記リンクに置いておきます。
(右クリックで保存したあとリネームして普段使っているHSPDXFIXと置き換えてください)
es_exboxfがうまく表示されないと言う人はこれを使ってみてどうなるか教えてください。

[686]re:[631]es_exboxfでのα合成表示について
KIMU 2006/01/19 04:21:14こんにちは、かなり過去レスになって、
申し訳ないのですが、自分も同じ結果でした。
ESB_MULTIPLE
ESB_NEGATIVE
表示されたのは上の二つなのですが、共通点としては
α値の影響を受けないって事ぐらいですかね?
α値が0で実行されてるとか0に見えるから実行しないとか
それなら環境によって違いが出るようにはならないか・・・
とりあえず報告でした。

[685]Re:マップの表示
Sinagawa 2006/01/10 00:44:03>HSPDXFIXで画像を読み込むとき、256色以下じゃないといけないから、16色で
>画像を作成して読み込むと、白黒になります。
おそらく256色モードで使用しているものと思いますが、HSP3では画像をHSPのバッファに
読み込んだ際にパレットが反映されないようになっていますので、
hsp3util.as(HSP本体に同梱)のbmppalette命令を使ってパレットを読み出す必要があります。
フルカラーモードで使用している場合はHSPのバッファもフルカラーにしてやれば色数に関係なく
色化けが起こることはなくなります。

[684]Re:マップの表示
Funarin 2006/01/08 01:37:06
>dddさん
>HSPDXFIXで画像を読み込むとき、256色以下じゃないといけないから
そもそも256色以下なら256色でも大丈夫だと思いますが…。
ちなみに私もアクション作ってますがフルカラーの背景は普通に読み込めます。

[683]マップの表示
ddd 2006/01/07 19:52:54Sinagawaさん、返信してくれてありがとうございます。
この方法でやってみます。
あと、この質問にも答えてくれますか?
-----------------------------------------------------------------
HSPDXFIXで画像を読み込むとき、256色以下じゃないといけないから、16色で
画像を作成して読み込むと、白黒になります。
-----------------------------------------------------------------
以上です。

[682]レス
Sinagawa 2006/01/05 12:25:41さて、2006年も残すところあと72/73となりましたが今年もよろしくお願いします。
>エコQさん
スクリプト実行してみました。
>HSP3.0aでは、es_screenのサイズ指定を無視した(?)
>内部800×600で、見た目のサイズは640×480なウィンドウになります。
これは元々ウィンドウのサイズに合わせて拡大縮小する仕様になっているので表示は正確ですが、
本来変更されなくてはならないウィンドウサイズがそのままになっているのは紛れもないバグです。
あと、フルスクリーンだとes_dialogの挙動がおかしいことに気づきました。
(画面が消えてスクリプトエディタのメニューバーなどが見える)
これらから、BMSCRの情報が正しく受け取れていないまま処理を行っているせいで不具合が
発生しているのではないかと仮定しました。
>dddさん
>マップの表示の仕方を教えてください。
まず配列変数にマップパーツの番号を記録したものをマップデータとして持たせます。
次に、バッファにマップパーツの画像を読み込んでおきます。
これで準備ができましたので、あとは自キャラの座標からパーツのサイズを割ってマップの位置を割り出し、
先述の配列変数を読み出して画面左上から順番にパーツを表示していけば完成となります。
と、おおざっぱに説明してみましたが時間と要望があれば簡単なサンプルを作成しますので
遠慮なく申し出てください。
また、若干やり方が異なりますがHSPセンター(http://hspcenter.com/)にも解説がありますので
そちらも参考にしてみてください。

[681]DDフルスクリーン時のエラーの件(訂正)
エコQ 2006/01/03 03:11:26すみません、またやってしまいました…。
投稿したスクリプトに、自分なりにみつけたエラー対策(のつもり)の部分がまじってしまいました。
[678]のスクリプトだと
「HSP3.0a、D3D使用フラグ=0、フルスクリーン」の場合でも終了時のエラーは発生しないのですが、
endの前の es_dialog 〜 をなくすと、前述(↑)の条件でのみ、エラーが発生するのです。

[680]マップの表示
ddd 2006/01/02 19:41:59はじめまして&あけましておめでとうございます。
HSPDXFIXを使ってマップ型アクションを作っています。
でも、マップの表示できません。
マップの表示の仕方を教えてください。

[679](無題)
Ricky 2006/01/02 07:54:28>HSPDXFIXで、D3D使わない人は、いない気がするので
そ、そんなことはないぞ、俺作ってるの2DシューティングでD3D無しだぞ。
そもそもHSPDXFIXの0.14でずっと作ってたからD3Dなんて無かったんだ、有っても使わないけど。
(色々あって1年くらいほったらかしなんで作ってるとか言えたものじゃないけど)
メガドラやX68kあたりの性能を再現する内容だとそんくらいで十分なんだ。
むだに3D搭載して高スペック要求するのもよくないと思うんだ。
こういう作り方してる人の事もたまには思い出してあげてください。

[678]DDフルスクリーン時のエラーの件
エコQ 2006/01/02 02:40:40あけましておめでとうございます。CWSDRVの完成、楽しみに待っております。
KIMUさんが報告されたD3D未使用&フルスクリーン時のエラーの件、
自分も気づいていながら、また勘違いかもと思って報告を保留していたのですが、
他にも合わせて気づいた点があったので報告させていただきます。
--------------------------------------------------------------------------
#include "HSPDXFIX.AS"
D3D使用フラグ=0
stick ky,64:if (ky&64):f=1:else:f=0 ;Ctrlキーが押されていればフルスクリーンに。
es_ini 512,1024,64
es_screen 800,600,32,0 ,1-f ,D3D使用フラグ
if stat : dialog"DirectXの初期化に失敗"
es_cls:color 200,255,255:es_boxf 0,0,640,480:es_sync
es_dialog "ok",0,"ok":end
--------------------------------------------------------------------------
HSP2.61では、上記のスクリプトは問題なく実行されるのですが
HSP3.0aでは、es_screenのサイズ指定を無視した(?)
内部800×600で、見た目のサイズは640×480なウィンドウになります。
(これはちょっと面白いので、残す or 正式仕様にしてほしい不具合ですが。)
また、
HSP3.0aでCtrl押しながら実行してフルスクリーンにした時、終了時エラーが発生します。
2行目を 「D3D使用フラグ=1」に書き換えた場合、終了時のエラーは起こりません。
以上です。

[677]Sinagawaさんへ
KIMU 2006/01/02 01:25:47あけまして、おめでとう
レスありがとう御座います。
>遅くなることがあったので、相性問題なのかもしれません。
そうですかぁ、検証どうもでした。
HSPDXか、特定の命令で、相性問題があるのか、確かめる方法ないかな・・・
因みにhgimg3使用のサンプルでは、5時間ぐらい放置しても
時計の遅れは出ませんでした。
>このような不具合があるのではまずいのでできるだけ早く開始するようにします。
ありがとう御座います。
>>es_bye後のendでエラーが出るみたいです。
>これについては後日確認します。
HSPDXFIXで、D3D使わない人は、いない気がするので
あまり重要じゃ無い気もしますが、他のバグに繋がってる
可能性もあるので、よろしくお願いします。
(他に同じ報告が無いから環境依存な気もしますが(^^;)

[676]レス
Sinagawa 2005/12/30 00:29:29>それで、HSPDXFIXのサンプルを動かしてみたのですが、たまに
>ガクッと止まるのにFPSは通常と変わらないと言う現象が起きました。
こちらではそのような現象は発生していません。
関係ないかもしれませんが、昔HSPDXを使っていたときに処理速度がカクッカクッと周期的に
遅くなることがあったので、相性問題なのかもしれません。
>es_bufferで、転送が成功した場合 statは、0とありますが
>成功した場合でも es_buffer実行前と後で statの値は同じでした。
>es_bufferの前に statが0にならない命令を使って
>es_buffer 0
>if stat : goto *plderr
>とかやるとエラー処理に飛びます(^^;
こちらは正常に動作しないことを確認しました。もしかしたらHSP3ではstatへの値の渡し方が変わっているかもしれません。
HSPDXは以前からHSP3専用に移行する計画を立てていて、CWSDRV完成後に着手予定だったのですが
このような不具合があるのではまずいのでできるだけ早く開始するようにします。
>もう一つはD3Dを使わない設定でフルスクリーンを使用すると
>終了時にアプリエラーが出ます。
>es_bye後のendでエラーが出るみたいです。
これについては後日確認します。

[675]自己レス
KIMU 2005/12/29 03:34:23>>674
>こんばんは、672を書いた後にもう少し調べてみようと思い
672じゃなくて673でした・・・(^^;

[674]時計が遅れる2 と es_buffer使用時のstat値
KIMU 2005/12/29 03:30:05こんばんは、672を書いた後にもう少し調べてみようと思い
PCを再起動してから、サンプルを起動すると、673の時よりは
遅れが少なくなりました。(1時間で1秒ぐらい)
でも、何回かテストしてると、開始直後にガクッと止まります。
その分時計も遅れました・・・
使用したサンプルはHSPDXFIXに付属してるのを自機判定100%にしてやりました。
この現象が自分だけなら諦めます・・・
あとバグっぽいのを二つ
es_bufferで、転送が成功した場合 statは、0とありますが
成功した場合でも es_buffer実行前と後で statの値は同じでした。
es_bufferの前に statが0にならない命令を使って
es_buffer 0
if stat : goto *plderr
とかやるとエラー処理に飛びます(^^;
もう一つはD3Dを使わない設定でフルスクリーンを使用すると
終了時にアプリエラーが出ます。
es_bye後のendでエラーが出るみたいです。
イベントビューアのコピペ
イベントの種類: エラー
イベント ソース: Application Error
説明:
エラー発生アプリケーション hsp3.exe、バージョン 0.0.0.0、エラー発生モジュール unknown、バージョン 0.0.0.0、エラー発生アドレス&n