2017年8月28日月曜日

JSはガバガバ

ごめんなさい(タイトル).


この投稿はめんどくさい話なんで読まなくていいです.
あとJSもツクールMVも初心者なんでおそらく間違った情報があります.

JSは(データ型の定義が)ガバガバだからどんなものでもなんでも入る(代入できる)んですよね.しかも保護者(アクセス修飾子)もいないからどこ(スコープ)からでも入れられるんです.
だからいまいち中に何が入っててどんな動作があるのかわからないしどこから見られているかもよくわからない.
そういう話です.

ツクールMVをいじってるんですよ.スクリプト.
JavaScriptなんですよね.
これがVX AceのRubyより輪をかけてわからない.

以下結論です.結論以外は読まなくていいです.
hoge = [];
hoge.push(new nyan());
hoge[0].nyanFunc();
でそれっぽく動きました.
はい.
あとSpriteset_Battle.prototype.createUpperLayerの中でSprite hogeをthis.addChild(hoge)してやればバトル中に画像を表示できるんですね.
それと$gameTroop.members()[n].screenXで表示画像の原点が取得できるんですね.
以上です.


以下愚痴.



MVのコアが基本的にオブジェクト指向なんですけどJSのクラスもどきが何を思ったか関数とメンバ変数とかを別ブロックに分けて書いてるんですよね.
あとそもそも変数がどんなものでも入るっていうか関数すら変数と同じように代入できてよくわからない.
C++でヘッダーとソースを完全に分けてわざわざ書く冗長性が何のためにあったかちょっとわかった気がします.
MVのっていうかツクールの仕様で,というかまあ人の書いたコードって大体そうなんですがどこから参照されてどんな動きをしてるのかわからない.
もうなにもわからない.
C++で書かれた他人のコードを何かしらのアレ的なもので引き継いだ時ですらよくわからなかったのに.
あれは今思えばJSよりはましだったなあ.
ROSっていうイカしたシステムで組んであったし,ほぼC++だったからpublicなものに気を付ければどっからどう呼んでるのか,Linuxだったから全ファイルにgrep使えばすぐわかったし......
せめて型付けをきちんとしたいなあ.
クラスもES6からわかりやすい形式になってprototypeしなくていいみたいだけど.
MVはES5らしいからなあ.
prototypeってあれ何?
おまじない?
#include <stdio.h> /*おまじない*/ と同じ?
いや最近はもうプログラミング初心者にCなんて勧めないか.
じゃあ#include <iostream> /*おまじない*/ かな?
初心者にC++とか修羅かよ.
JSの話に戻るけどソースを見たときにインデントがほぼなくてどれがどこに入ってるか一瞬でわからないのわかりにくいと思わないの?それともみんなわかってるの?
Javaみたいに1クラスに1ファイルとかにしてほしい.
JavaもJavaScriptも同じようなもんでしょw
ハムもハムスターも同じようなもんでしょw
あー
プログラム書く作業に戻ろ.
ていうかもう寝よう.

0 件のコメント:

コメントを投稿