【解決済み】addChildした画像の更新について

ま~くん
記事: 31
登録日時: 2017年7月31日(月) 15:36

【解決済み】addChildした画像の更新について

投稿記事by ま~くん » 2017年8月19日(土) 23:04

いつもお世話になってます。

http://rpgmaker-script-wiki.xyz/bitmap_sprite_kowazamv.php#6
ここのサイトを参考に、3Dマップぽい画面を作るコードを書き直したんですけど、
addChildで追加した画像がうまく更新?できなくてこまっています。
ESCキーを押してメニュー画面を表示させてから、メニュー画面を消して3Dマップっぽい画面にもどると更新?されてる状態です。

コード: 全て選択

(function() {

'use strict';

  var _Spriteset_Map_createLowerLayer = Spriteset_Map.prototype.createLowerLayer;
  Spriteset_Map.prototype.createLowerLayer = function() {
    _Spriteset_Map_createLowerLayer.call(this);


  if ($gameMap.mapId() === 1) {
    var ThreeDMapImage_opening = new Sprite();
    ThreeDMapImage_opening.bitmap = ImageManager.loadPicture('opening');
    ThreeDMapImage_opening.x = 0;
    ThreeDMapImage_opening.y = 0;
    ThreeDMapImage_opening.z = 3;
    this._tilemap.addChild(ThreeDMapImage_opening);

  } else {

    var ThreeDMapImage_background = new Sprite();
    ThreeDMapImage_background.bitmap = ImageManager.loadPicture('background');
    ThreeDMapImage_background.x = 0;
    ThreeDMapImage_background.y = 0;
    ThreeDMapImage_background.z = 4.0;
    this._tilemap.addChild(ThreeDMapImage_background);

      var ThreeDMapImage_wall_center0 = new Sprite();
      ThreeDMapImage_wall_center0.bitmap = ImageManager.loadPicture('wall_center0');
      ThreeDMapImage_wall_center0.x = 97;
      ThreeDMapImage_wall_center0.y = 97;
    ThreeDMapImage_wall_center0.z = 4.5;
      this._tilemap.addChild(ThreeDMapImage_wall_center0);

      var ThreeDMapImage_wall_left0 = new Sprite();
      ThreeDMapImage_wall_left0.bitmap = ImageManager.loadPicture('wall_left0');
      ThreeDMapImage_wall_left0.x = 0;
      ThreeDMapImage_wall_left0.y = 3;
    ThreeDMapImage_wall_left0.z = 4.5;
      this._tilemap.addChild(ThreeDMapImage_wall_left0);

      var ThreeDMapImage_wall_right0 = new Sprite();
      ThreeDMapImage_wall_right0.bitmap = ImageManager.loadPicture('wall_right0');
      ThreeDMapImage_wall_right0.x = 526;
      ThreeDMapImage_wall_right0.y = 3;
    ThreeDMapImage_wall_right0.z = 4.5;
      this._tilemap.addChild(ThreeDMapImage_wall_right0);

   }; // if

  }; // Spriteset_Map.prototype.createLowerLayer




  var _Spriteset_Map_update = Spriteset_Map.prototype.update;
  Spriteset_Map.prototype.update = function() {
    _Spriteset_Map_update.call(this);

  if (Input.isTriggered('up') || Input.isTriggered('down') || Input.isTriggered('left') || Input.isTriggered('right')) {

    var ThreeDMapImage_background = new Sprite();
    ThreeDMapImage_background.bitmap = ImageManager.loadPicture('background');
    ThreeDMapImage_background.x = 0;
    ThreeDMapImage_background.y = 0;
    ThreeDMapImage_background.z = 5.0;
    this._tilemap.addChild(ThreeDMapImage_background);

      var ThreeDMapImage_wall_center0 = new Sprite();
      ThreeDMapImage_wall_center0.bitmap = ImageManager.loadPicture('wall_center0');
      ThreeDMapImage_wall_center0.x = 97;
      ThreeDMapImage_wall_center0.y = 97;
      ThreeDMapImage_wall_center0.z = 5.5;
      this._tilemap.addChild(ThreeDMapImage_wall_center0);

      this.removeChild(ThreeDMapImage_wall_center0);


      var ThreeDMapImage_wall_left0 = new Sprite();
      ThreeDMapImage_wall_left0.bitmap = ImageManager.loadPicture('wall_left0');
      ThreeDMapImage_wall_left0.x = 0;
      ThreeDMapImage_wall_left0.y = 3;
      ThreeDMapImage_wall_left0.z = 5.5;
      this._tilemap.addChild(ThreeDMapImage_wall_left0);

      var ThreeDMapImage_wall_right0 = new Sprite();
      ThreeDMapImage_wall_right0.bitmap = ImageManager.loadPicture('wall_right0');
      ThreeDMapImage_wall_right0.x = 526;
      ThreeDMapImage_wall_right0.y = 3;
      ThreeDMapImage_wall_right0.z = 5.5;
      this._tilemap.addChild(ThreeDMapImage_wall_right0);

   }; // if

  }; // Spriteset_Map.prototype.update

})();

Spriteset_Map.prototype.updateのところで、方向キーが押された段階で、
見える方向の3Dマップっぽい画像を更新させようとしています。
アドバイスいただけるとたすかります。

よろしくお願いします。
最後に編集したユーザー ま~くん on 2017年8月29日(火) 13:20 [ 編集 2 回目 ]

アバター
フトコロ
記事: 1029
登録日時: 2017年2月06日(月) 21:32

Re: addChildした画像の更新について教えてほしいにゃ~

投稿記事by フトコロ » 2017年8月23日(水) 21:52

こんにちは。

恐らく、こちらのトピックが参考になるのではと思います。
http://tm.lucky-duet.com/viewtopic.php?f=56&t=3087
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/blob/master/README.md

検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
ま~くん
記事: 31
登録日時: 2017年7月31日(月) 15:36

Re: addChildした画像の更新について教えてほしいにゃ~

投稿記事by ま~くん » 2017年8月23日(水) 22:33

フトコロさん、アドバイスありがとうです。

トピック先と自分のコード確認してみます。
ま~くん
記事: 31
登録日時: 2017年7月31日(月) 15:36

Re: addChildした画像の更新について

投稿記事by ま~くん » 2017年8月25日(金) 13:40

フトコロさんに教えていただいたトピックを参考にしながら、
addChildというメソッドがあればクリアとかデリートとかいうメソッドもありそうかなという考えでコードを眺めていました。
そしたら、
 this.removeChild();
 this.removeChildren();
の二つのメソッドを見つけることができたので、そのまま使えるんじゃないかなぁと思い
画像をaddChildする前に記述しました。
「this.removeChild();」のほうはaddChildしたその画像の消去には使えたのですが、
複数の画像を消去させることはできませんでした。
(使い方がわからないだけかもしれませんが)
「this.removeChildren();」のほうはおそらくaddChildした要素を一度すべて取り除くものだと思い、
これを記述したところ望む動作をしてくれました。

いつも質問が下手でお騒がせしております。
フトコロさん、どうもありがとうございました。

“MV:質問” へ戻る