ページ 11

スクリプト HP増減処理

Posted: 2017年4月08日(土) 11:43
by ましゅ~
しょうもない質問ですみません。
ある条件をもとに、HPを減らす処理を行うスクリプトを組んでいます。
すると、エラーが出てうまく動かない為、エラーが出ている個所を探っていると、この1行だと判明しました

this.changeHp($gameActors.actor(1), -20, true)

私には、打ち間違え等無いように見えるのですが・・・どこが間違っているのか、ご指摘頂けますでしょうか?
一応、スクリプト全体を載せておきます

(function(){
if($gameActors.actor(1).hp <= 20){//アクター1のHPが20以下かどうか
// $gameSwitches.setValue(505,true)//スイッチ505 疲労度ON HP不足フラグ
// }else{
this.changeHp($gameActors.actor(1), -100, true)//HP20減らす
// $gameSwitches.setValue(505,false)//疲労度OFF HP有
}
})();

要は、HPが20以上ならHPを20減らしてイベント発生 そうでなければ、疲労度スイッチをONにして、別イベントへ という処理です。
問題の1行を削除すれば、問題なく動作している為、間違い個所はここで間違いないはずなのですが・・・

宜しくお願いします。

Re: スクリプト HP増減処理

Posted: 2017年4月08日(土) 12:13
by まっつUP
ましゅ~様
お世話になります。

結論を言うと一番上と一番下の行の記述が不要です。
thisで指定するものが変わってしまうため
メソッドが見つからないのは当然かと思います。
(thisの内容はGame_Interpreterである必要があります。)

Re: スクリプト HP増減処理

Posted: 2017年4月08日(土) 12:18
by ましゅ~
ありがとうございました、解決しました。
これが不要とは想定外でした・・・私JSは未経験ですが、昔C言語をかじってたことがありまして・・・
function()はCの#includeのように必須文と思っておりました。
#includeの意味を説明せよ って言われたら そこまで理解できてるわけではないんですが・・・
ともかく助かりました、もう少しJSについて勉強していきたいと思います。