Re: 東方弾幕風のバグ・要望 ( No.84 ) |
- 日時: 2011/05/22 22:24
- 名前: mkm
- >>82 ゆう(勇作)氏
お久しぶりです。 ph3試していただきありがとうございます。
>最近流行のアレを実装してみました。 >tp://s.web-st.net/sleepsort.txt これ、発想がすごいですよね。。。 比較一切なしでソートできるという。
>Ver2まであったオブジェクトの接触判定関数とスナップショットを撮る関数が見当たりませんでした。 ObjCol_IsIntersected,SaveSnapShotA1/A2で実装しました。
>オブジェクト関数の実行をオブジェクト思考言語風にできたら個人的に喜びます すみません、今からやるのは大変です。。。
>>83 507@GW氏 >ph3で気になるのが、ScriptVersionV2で発生していたIDループによるID重複問題です。 ph3はID重複しません。(重複した場合、それはバグです。) メモリの許す限りオブジェクトを作成できます。
>自機弾・レーザー等が敵に当たったときに命中エフェクトを出したり命中音を鳴らすためには >ScriptVersionV2にあったObj_IsIntersectedが必要だと思われます。 ObjCol_IsIntersectedで実装しました。
>V2の加算描画エフェクトオブジェクトはObjEffect_SetVertexColorで透明度が変えられたのに、 >ph3のObjPrim_SetVertexAlphaでは透明度が変えられないのはちょっと不便です… 加算合成はRGBでの加算なので(本来A値は無関係なので)反映しないようにしています。 ただやはり不便そうなので、対策するかもしれません。 (ひとまずご意見リストに入れさせてください)
>また、減算描画のオブジェクトは透明度を一切変更できない(Color値を変えても効果がない)ようです。 確認します。(バグリストにいれさせてください)
>V2での、短形の(特殊な変形を伴わない)エフェクトオブジェクトをph3に移そうとした場合、 >OBJ_PRIMITIVE_2DよりもOBJ_SPRITE_2Dの方が動作的には軽いのでしょうか? 重さは同じです。 OBJ_SPRITE_2Dは OBJ_PRIMITIVE_2Dを 頂点数4、TRIANGLESTRIPに設定しているようなオブジェクトです。
>Obj_SetPriority(obj, GetPlayerRenderPriorityI); >と設定すると、オブジェクトが表示されないようです。 紛らわしくてすみません。。。 Obj_SetPriority→Obj_SetPriorityI でお願いします。
>ヘルプにあるが未実装なのを確認した関数:SetPlayerSpeed ご指摘ありがとうございます。 修正しました。
|
Re: 東方弾幕風のバグ・要望 ( No.85 ) |
- 日時: 2011/05/22 23:14
- 名前: 507@GW
- >>84
>ph3はID重複しません。(重複した場合、それはバグです。) >メモリの許す限りオブジェクトを作成できます。 これはかなり有り難い変更です! ID重複に怯える必要がなくなります。
もう1つ気になるのは、「配列の要素を配列で定義して、書き換えることでメモリリークが発生する」点です。 (tp://f27.aaa.livedoor.jp/~thdmhul/pukiwiki/pukiwiki.php?Tips#content_1_15) こちらは古いバージョンのph3で実際に検証したことがありますが、この現象は再現されていました。
>Obj_SetPriority→Obj_SetPriorityI >でお願いします。 こちらの書き込み間違いでした。 Obj_SetPriorityI(obj, GetPlayerRenderPriorityI); では表示されず、 Obj_SetPriorityI(obj, 30); だと正常に表示されるため、GetPlayerRenderPriorityIが正しく取得出来ていないのかもしれません。 (前者の記述だとSTG枠外に回りこんでしまい、枠内に表示されないのを確認)
・ObjSpell_SetIntersectionLine 正しい攻撃判定が設定されないようです。 最初は先端x座標と先端y座標、終端x座標と終端y座標がそれぞれ 入れ替わっているのかと思っていましたが、そうでもないようです。
ph3では自機側のレーザー当たり判定の発生にディレイが発生していますが、 自機側レーザーの当たり判定はScriptVersionV2みたいに即発生の方がいいと思います。
ユーザー定義弾のShotDataにて、alphaで透明度を設定すると、 透明度だけでなく何故か色も設定値分暗くなってしまうようです。 (ShotDataでalpha = 120と設定するのと、オブジェクト弾でObjRender_SetAlpha(objShot, 120);とするのでは違った結果(見え方)になる)
|
Re: 東方弾幕風のバグ・要望 ( No.86 ) |
- 日時: 2011/05/23 00:51
- 名前: ガラス草
- OBJ_LOOSE_LASERについて、ObjLaser_SetLengthがうまく機能しないのですが、確認していただけないでしょうか。
後、現在の見立てで構わないのでリプレイ機能をいつごろ実装する予定か教えていただけないでしょうか。
追記: 先ほどのテストで気づいたことが一つ。 共通データについてです。 ・SetCommonDataで指定した共通データがGetCommonDataから参照できませんでした。Set,Getのどちらに問題があるかはわかりません。 ・SetAreaCommonData,GetAreaCommonDataでも同様のバグが発生しました。 ・ClearAreaCommonDataの引数が、リファレンスでは1つと書かれていますが実際には2つになっています。 以上3点の修正をお願いします。
|
Re: 東方弾幕風のバグ・要望 ( No.87 ) |
- 日時: 2011/05/23 22:13
- 名前: 冷凍みかんジュース
- 初めまして。
現在バージョン2を使わせてもらっています。
初心者なので,どうでもいい要望ですが・・・
atan2が,(y,x)になっているのは (x,y)にならないでしょうか。 バージョン3でも(y,x)だったので,一応言ってみます。 いつも(CreateShot系などでは),xの値とyの値はx,yの順で入れているので, どうしても混乱します。
理由があるなら,それを教えていただけますか。
勝手な質問ですみません。
|
Re: 東方弾幕風のバグ・要望 ( No.88 ) |
- 日時: 2011/05/24 21:27
- 名前: memo
- こんばんは。
流れに乗って(?)気づいた点をいくつか報告させていただきます。
・固定レーザーのディレイ中に発射点を移動させる事ができないようです ・ユーザーイベント中と同時にユーザーイベントを発生させると本体が落ちやすくなるようです (落ちたり落ちなかったり…環境の問題かも知れないです) ・自機の EV_HIT 発生時に EV_PLAYER_SPELL を発生させると、スペカは発動しますが同時に撃墜されます
|
Re: 東方弾幕風のバグ・要望 ( No.89 ) |
- 日時: 2011/05/25 22:27
- 名前: mkm
- いろいろとご指摘ありがとうございます。
すみませんが、バグを順に調査するため、順次回答とさせてください。
>>85 507@GW氏
>もう1つ気になるのは、「配列の要素を配列で定義して、書き換えることでメモリリークが発生する」点です。 デバッガでメモリリーク検出しました。 修正します。 (その他にも、前バージョンにはこんなにバグあったのですね。。。)
>GetPlayerRenderPriorityIが正しく取得出来ていないのかもしれません。 バグです。0が返っていました。 修正します。
>・ObjSpell_SetIntersectionLine >正しい攻撃判定が設定されないようです。 バグです。 当たり判定用の空間分割のロジックミスです。 修正します。
>ph3では自機側のレーザー当たり判定の発生にディレイが発生していますが、 すみません。再現しませんでした。 どのくらい遅れますでしょうか。 また、どのように記述しましたでしょうか。 ↓こんな感じの記述であっていますでしょうか? let obj = CreateLooseLaserA1(GetPlayerX(), GetPlayerY()-16, 15, 270, 100, 20, 1, 0); ObjShot_SetDamage(obj, 10);
>ユーザー定義弾のShotDataにて、alphaで透明度を設定すると、 >透明度だけでなく何故か色も設定値分暗くなってしまうようです。 バグです。 加算合成時に薄くなるように、A値をRBG値に掛けていました。 通常描画時はA値をRGBに反映しないように修正します。
|
Re: 東方弾幕風のバグ・要望 ( No.90 ) |
- 日時: 2011/05/25 22:53
- 名前: danmaku
- 東方弾幕風のバグ?をまた見つけたので報告いたします。
ObjSound_SetVolumeRateを使って、音量を指定しても毎回同じ音の大きさで音が再生されます。
|
Re: 東方弾幕風のバグ・要望 ( No.91 ) |
- 日時: 2011/05/26 02:47
- 名前: 507@GW
- 現バージョン、残機0で撃墜されたときにスクリプトが終了しないようですが仕様でしょうか?
オブジェクト弾(おそらくオブジェクトレーザーも)が最初の1フレームだけ どうしてもx0,y0に表示されてしまうようです(デフォルト自機ルーミアも。また作成時に初期座標を設定していても回避不能)。
>>89 自機レーザーの当たり判定発生遅延はオブジェクトレーザーで発生しています。 こんな記述です。 let objLaser = ObjShot_Create(OBJ_STRAIGHT_LASER); ObjShot_SetGraphic(objLaser, 4); ObjShot_SetDamage(objLaser, damage); ObjShot_SetPenetration(objLaser, 10000); ObjMove_SetSpeed(objLaser,0); ObjLaser_SetLength(objLaser,640); ObjShot_SetAutoDelete(objLaser,false); ObjStLaser_SetAngle(objLaser, 270); ObjLaser_SetRenderWidth(objLaser,80); ObjLaser_SetIntersectionWidth(objLaser,40); ObjLaser_SetInvalidLength(objLaser, 0, 0); ObjShot_Regist(objLaser);
ScriptVersionV2では、貫通力のあるショットが複数の敵に同時に当たっていても、 そのうち1体にしかダメージが入らない仕様になっていますが、これはph3でも同じなのでしょうか?
|
Re: 東方弾幕風のバグ・要望 ( No.92 ) |
- 日時: 2011/05/26 21:18
- 名前: mkm
- >>86 ガラス草氏
>OBJ_LOOSE_LASERについて、ObjLaser_SetLengthがうまく機能しない バグです。 ObjShot_Createで作成した OBJ_LOOSE_LASERが正常に作成できていないようです。 (変数初期化忘れ。) CreateLooseLaserA1で作成した場合は正常動作します。 修正します。
>後、現在の見立てで構わないのでリプレイ機能をいつごろ実装する予定か教えていただけないでしょうか。 キーの記録/再生ロジック自体は作成済みですが、 メニューをどうするか考えていないのでいま少し時間がかかりそうです。 (停止/終了時のメニューと同じくカスタマイズ可能にしたいです。) 不具合の発生状況などにも依存しますが、最短で1ヶ月強くらいかと思います。 (ひどいバグが多いので、そういったのは優先的になおしたいです。)
>共通データについてです。 >・SetCommonDataで指定した共通データがGetCommonDataから参照できませんでした。Set,Getのどちらに問題があるかはわかりません。 >・SetAreaCommonData,GetAreaCommonDataでも同様のバグが発生しました。 >・ClearAreaCommonDataの引数が、リファレンスでは1つと書かれていますが実際には2つになっています。 ひどいバグです。 修正します。
>>No.87 冷凍みかんジュース氏 はじめましてです。 ソフトを試していただきありがとうございます。
>atan2が,(y,x)になっているのは >(x,y)にならないでしょうか。 >理由があるなら,それを教えていただけますか。 様々なプログラミング言語のライブラリでそうなっているので真似ています。 おそらくy/xのアークタンジェントを求めるので、 (傾きy/xの直線と x軸とのなす角度を求めるので) yが先になっているのではないでしょうか。。。
|
Re: 東方弾幕風のバグ・要望 ( No.93 ) |
- 日時: 2011/05/27 22:50
- 名前: 冷凍みかんジュース
- なるほど,
弾幕を作っているとき,疑問に思ってました。 スッキリしました。
どうもありがとうございました。 バージョン3も今度使わせていただきます。
|