お返事

 2018-08-12
続きからご覧下さい。
今回は、2名様です。

> ポリフェノール さん
1)
いただいたソースにコメント入れてみました。
2018-07-31_23-23-54.png
そちらを踏まえて、以下の内容をご覧下さい。

シーンクラスは、start、update、terminate で構成されています。
start で、そのシーンで使用するウィンドウなどを生成します。
update で、シーンの処理を行います。毎フレーム呼び出され、
アクティブなウィンドウなどで条件分岐し、
現在操作中のウィンドウに合った処理を実行します。
terminate で、使用したウィンドウなどの後始末をします。
生成と削除など、パターンに沿って行ったほうが見通しの良いプログラムになると思いますよ。

さらに Scene_Base に create_menu_background、dispose_menu_background が定義されています。
デフォルトでは、マップ画面のスクショを撮って表示しているので、それが不要なら
シーンの背景は、こちらをオーバーライドします。
def create_menu_background
  @menuback_sprite = Sprite.new
  @menuback_sprite.bitmap = Cache.system("MenuBack2")
  update_menu_background
end

Plane クラスでも問題ないと思います。
bitmap にキャッシュを使わない場合は、dispose_menu_background で画像の解放処理を追加します。
この5行でシーン背景の変更は終わりです。

ターゲットウィンドウの背景は、start にスプライトを追加します。
@targetback_sprite = Sprite.new
画像を設定します。
@targetback_sprite.bitmap = Cache.system("TargetBack")
ターゲットウィンドウより後ろに表示します。
@targetback_sprite.z = @target_window.z - 1
各種ウィンドウの枠を非表示にします。
@help_window.opacity = 0
@item_window.opacity = 0
@target_window.opacity = 0

ターゲットウィンドウは、最初は非表示のはずですが、生成処理のみで非表示にする処理がありません。
下を見ると hide_target_window があり、定義を見るとここで非表示にしていることがわかります。
その上にも show_target_window が定義されており、
ここでターゲットウィンドウの背景を一緒に操作すれば良さそうです。
まず、hide_target_window で @targetback_sprite.visible = false とし、非表示にします。
次に、show_target_window で @targetback_sprite.visible = true とし、表示します。
さらに、ターゲットウィンドウの位置も変更されているようなので、
ここで背景の位置をウィンドウと同じ位置にします。
@targetback_sprite.x = @target_window.x

最後に terminate にスプライトの解放処理を忘れずに追加します。
@targetback_sprite.dispose


2)
RGSS3のものは、1から作り直しているので全くの別物です。
参考にされるのでしたら、RGSS2のコマンドスプライトの方が良いかと思います。
これをサブ化すればいけないかな?


> ポリフェノール さん
暑いですよね。うちはエアコン故障中で日中34度あります。死にそうです。

不要と言われましたが、すでに作っていましたので、上げておきます。
サンプルプロジェクトのダウンロード

さて、ご依頼の件ですが、VXのスクリプトは不具合修正にはできる限り対応したいと思っていますが、
申し訳ありませんが新規で作成することは考えておりません。

申し訳程度ですが、サンプルプロジェクト内にサブコマンドに
背景画像を表示する機能を追加するスクリプトを入れてます。
サブコマンドの設定で :back => "ファイル名" のようにしてください。
画像は Graphics/System フォルダにお願いします。


> ゆみ さん
データファイルは、暗号化に対応させるため Data フォルダに出力されてます。

スタートマップとの併用ですが、軽く見た感じだと競合箇所は見当たらなかったので、
ニューゲームで開始されていないためだと思います。
スタートマップは、タイトル画面を置き換える目的で作成されていますので、
GameManager.new_game を実行して、ニューゲームを開始してください。
スタートマップは、タイトル画面ですので、この段階ではゲームに必要な情報が読み込まれていません。

初期位置イベントが開始されないというのはどういうことでしょう?
初期位置のイベントに実行内容を設定しているということでしょうか?
初期位置は、操作するプレイヤーキャラの設定に使用するためのものですので、
イベント自体は削除され実行されません。

初期位置を設定しない場合は、左上に透明なプレイヤーがいます。
初期位置を作ると、その場所にプレイヤーを移動します。
2ページ目のグラフィックを設定すれば、プレイヤーのキャラグラとして使用します。
プレイヤーキャラをカーソルとして使用することを想定しています。
イベントとして実行したいものは、別に作成してください。

スタートマップのサンプルにアイテム合成を導入し、動作確認しました。
コメント




 

 ※ コメント内にURLを含めるには、バッククォート(`)をURLの直前に付け加えてください。


管理人のみ閲覧許可 [?]

トラックバック
トラックバックURL:
http://cacaosoft.blog42.fc2.com/tb.php/775-018c4a2c
≪ トップページ ≫
カレンダー
10 << 2019/11 >> 12
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

カテゴリー
最近の記事
最近のコメント
タグクラウド

リンク