試作品です。
https://github.com/munokura/MNKR-MZ-plu ... Command.js
これを拡張していく予定なのですが、コードの通り
variableID
variable
setup
を繰り返し使う事になりそうです。
let pluginName = "MNKR_VariableCommand";
の下に
let variableID = Number(args.variableID);
let variable = $gameVariables.value(args.variableID);
let setup = eval(args.setup);
と入れてみたのですが、argsに上手く追加できないでエラーになってしまいます。
このようなケースの簡略化方法がございましたら、ご指導いただきたく、お願いいたします。
【解決】リファクタのお願い:プラグインコマンドで同じパラメーター名を使いまわしたい
【解決】リファクタのお願い:プラグインコマンドで同じパラメーター名を使いまわしたい
最後に編集したユーザー ムノクラ on 2020年10月02日(金) 12:46 [ 編集 1 回目 ]
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
Re: リファクタのお願い:プラグインコマンドで同じパラメーター名を使いまわしたい
https://github.com/munokura/MNKR-MZ-plu ... Command.js
関数化を思い出して、入れてみました。
一応動いているようですが、変な処理や書き方になっていないでしょうか?
関数化を思い出して、入れてみました。
一応動いているようですが、変な処理や書き方になっていないでしょうか?
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
- Plasma Dark
- 記事: 669
- 登録日時: 2020年2月08日(土) 02:29
- 連絡を取る:
Re: リファクタのお願い:プラグインコマンドで同じパラメーター名を使いまわしたい
1回使ってそれきりではダメでしょうか。わざわざ variableID, variable, setup のスコープを広げる理由が見当たりません。
registerCommandに渡している関数の中だけでスコープを閉じてしまうほうが結果として見通しが良くなりそうです。
registerCommandに渡している関数の中だけでスコープを閉じてしまうほうが結果として見通しが良くなりそうです。
コード: 全て選択
PluginManager.registerCommand(pluginName, "addActor", args => {
const actorID = $gameVariables.value(Number(args.variableID));
const doSetup = args.setup === "true";
if (actorID) {
if (doSetup) {
$gameActors.actor(actorID).setup(actorID);
}
$gameParty.addActor(actorID);
}
});
Re: リファクタのお願い:プラグインコマンドで同じパラメーター名を使いまわしたい
Plasma Dark さんが書きました:1回使ってそれきりではダメでしょうか。わざわざ variableID, variable, setup のスコープを広げる理由が見当たりません。
registerCommandに渡している関数の中だけでスコープを閉じてしまうほうが結果として見通しが良くなりそうです。コード: 全て選択
PluginManager.registerCommand(pluginName, "addActor", args => {
const actorID = $gameVariables.value(Number(args.variableID));
const doSetup = args.setup === "true";
if (actorID) {
if (doSetup) {
$gameActors.actor(actorID).setup(actorID);
}
$gameParty.addActor(actorID);
}
});
スコープについて下記記事を読みました。
https://techacademy.jp/magazine/25697
設計思想として、「スコープは狭めたほうがトラブルが防ぎやすく、メリットがなければ広げるべきではない」ということのようですね。
関数化したのは、シンプルに「同じことを何度も書かないで済む」のでメンテナンスもしやすいかな?と思ったのですが、浅知恵だったようです。
実直に1つずつ書いていくことにします。
下記進める前にご指導いただき、助かりました。
ありがとうございました。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。