[過去ログ] RPGツクールMZ_27作目 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
856
(4): 名前は開発中のものです。 [sage] 2024/01/05(金) 20:31:46.56 ID:R2mCKrHC(1/2) AAS
スクリプトの質問があります。
もしもご存じでしたらご教示お願いします。

やりたいこと
・サイドビュー戦闘中、味方パーティーのキャラ表示位置をキャラごとに変えたい
今まで調べたこと
・キャラのx,y座標はSprite_Battlerの_homeXと_homeYが基準座標になっててこれを書き換えれば表示場所が変わる
・戦闘開始時に変えるだけならSprite_Actor.prototype.setActorHome内でindex毎に条件分岐でも使って変えればいいが、ここを修正しただけでは戦闘中に変わらない
・自分だけを変えたいなら、何かしらの行動においてthisを使って_homeX、_homeYを書き換える処理を組み込めばよい
わからないこと
・Sprite_Battler._homeXとSprite_Battler._homeYを直接書き換えたいが、そのためのキャラごとのプロパティの呼び出し方
 (「オブジェクト名.~.オブジェクト名._homeX = (座標);」てな感じで処理したい
  要するにthisが差しているフルネーム?が知りたい)

なお、うなぎおおとろ氏の「陣形システム v1.3.0」は解析中です。
877: 名前は開発中のものです。 [sage] 2024/01/06(土) 15:51:32.23 ID:7vYSpby5(1/3) AAS
>>856
そこのthisが指してるのはSprite_ActorだからSprite_Actor.prototype.setActorHomeを変えれば変わると思うけど
おかしいね
879: 856 [sage] 2024/01/06(土) 17:34:19.66 ID:SpLYIg+c(1/2) AAS
アドバイスありがとうございます。
Sprite_Actor.prototype.setActorHomeは戦闘開始時に1キャラにつき1回だけ読み込まれるものでした。
そのため戦闘前に設定したものは反映されますが、戦闘中に書き換えても実行されず反映されません。
再実行すればいいのでしょうが、処理中のキャラだけでなく全キャラの場所を変えようとするとどこでどう実行すれば良いか不明です。

なお、現状では>>857の条件分岐部分をいじって力技で実現できました。当方の環境では目立った負荷はないようなので、当面はこれで進めます。
重ねてアドバイスのお礼申し上げます。
881: 856 [sage] 2024/01/06(土) 20:58:31.94 ID:SpLYIg+c(2/2) AAS
>>880
さらなるアドバイスありがとうございました。
参考にさせていただきます。
888: 856 [sage] 2024/01/07(日) 09:57:55.41 ID:4mnRdu1S(1) AAS
>>856です。
>>880でいただいたアドバイスに基づき、処理はSpriteset_Battle.prototype.updateActorsで行うことにしました。
こちらだと味方だけ処理が行われるとともにインデックスとして「i」が活用できたので処理がすっきりしました。
ありがとうございました。

なお現在以下のような状態までできております。(現時点ではスキルでコモンイベントを呼び出し配置場所を入力してます)
https://i.imgur.com/b4gGfOr.png

https://i.imgur.com/aQXE0IP.png

https://i.imgur.com/amyHKzD.png


今後はステータス表示とキャラ選択カーソルのズレを整合させていく処理の作成に入ります。
Window_Selectableでバラバラの位置にある項目を選択できるようになればいいのですが、これは無理そうなのでダミーアクターを加入させて…と考えています。
また質問させていただくかもしれませんが、その際にご都合がよろしければアドバイスのほどお願いします。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 2.499s*