SparePages

ツクール2000→ウディタ→ツクールMVと乗り換えてのゲーム制作とかの備忘録

wp20160905d

ツクールMVのテストプレイでCannot read property 'width' of null

◆要約:ピクチャ消去のタイミングに注意

◆はじめに

おそらく解決

 

◆経緯

現在製作中のゲーム「ありがとう!ワタシの経営」のツクールMVリメイク版。
Windowsでの通しでのテストプレイがひとまず終わりました。
このゲーム、Android用アプリとしても公開できればと考えています。
よってAndroidでのテストプレイは不可避。

しかしいざ実機で動かしてみると、あるエラーが頻発してしまいました。

Cannot read property 'width' of null

たまに出る程度なら「まあそんなこともあります」で流してしまうつもりでしたが、ゲーム開始後キャラを移動させたタイミングで必ず発生してしまいます。
ゲームも進行不可になってしまうので、原因を探ることにしました。

 

◆原因を探る

調べてみると、原因として考えられそうな内容は以下のとおり。

【1】
ツクールMV エラー別 トラブルシューティング(RPGツクールMVでアプリリリースを目指す開発室)
http://fanblogs.jp/tabirpglab/archive/231/0

→プラグインに原因?

導入しているプラグインをGREP検索、「width」の文字を用いているプラグインを洗い出しました。
そしてそれぞれオフにして行き、問題を起こしているプラグインがどれなのかを検証。
しかしどれをオフにしても現象は解消しませんでした…。

【2】
PRGツクールMV 立ち絵描画のチラつき回避(避難所の一つ)
http://ashelter.blog.fc2.com/blog-entry-13.html

→ピクチャ消去のタイミングに問題?

 

◆原因

プラグインが原因でないとなると、ピクチャ以外にもうあてがありません。
エラーが出るマップで、ピクチャを並列で処理しているイベントが有りました。

wp20160911a
画面上部に施設の概要を表示するイベントです。

wp20160911b
カーソルが施設の上にあれば施設名をピクチャで表示、何もなければそのピクチャを削除していました。

wp20160911c
(ちなみにツクール2000版でも同じイベントを動かしています。)

この「何も無ければピクチャを削除」のところが問題なようでした。
カーソル位置に施設がなくて、何もピクチャを表示していないのに、ピクチャを消し続けようとしている動きに原因?

 

◆対応する

wp20160911d

とりあえず上記イベントを、「何も無ければピクチャを削除」から「何も無いときは透明なピクチャを表示」に変更しました。
(とりあえずと言っても多分この対応のままです(;´Д`))

 

◆おわりに

これに関係するかは不明ですが、ピクチャの消去関係のエラーで、WEB版やスマホ版で現象が頻発するものもあるようです。

今回、Androidで動かさなければわからなかったエラーでしたので、実機デバッグは重要ですね(*´∀`*)

「Cannot read property 'width' of null」のエラーが出る条件はプラグインだけではないということも分かったので、次回現象発生時はピクチャ関係も疑うようにしたいと思います。

-PC, ツクールMV