DXライブラリを再度触り始めて3ヶ月ちょっと。
徐々にわかり始めてきた気がしないでもない今日この頃。
基本ツクールのRGSSが思考の土台になっているのでRGSSだとぱっとできたことでも言語が変わると
あれできないこれできないとか多いですよね。RGSSが言語()とかいうのは置いといて。
例えばScene_Battleの@active_battlerってインスタンス変数、行動中の敵味方を格納するインスタンスですけど
これC++だとどうかくのかわからなくて3日ぐらい色々考えたけどポリモーフィズムって概念がRGSSを前提に考えると重要ぽいですね。
シーン管理もそうなんですけど
class Base{ //RGSS=GameBattler
}
class A: public Base{ //RGSS=GameActor
}
class B: public Base{ //RGSS=GameEnemy
}
int main(){
Base* ActiveBattler; //基底クラスのポインタ
A Actor;
B Enemy;
ActiveBattler = NULL; //いるのかわからんけどNULLで初期化
ActiveBattler = Actor;
ActiveBattler = NULL; //同上
ActiveBattler = Enemy;
return 0;
}
RGSSだと私は変数の型とか全然気にしなかったのでどうしようか困りましたが多分これでおkなはず。
基底クラスのポインタに派生クラスを代入するとそれっぽい動きをするので多分これであってる。というか今書いてる。
「もっといい書き方があるよ」
はよ はよ
徐々にわかり始めてきた気がしないでもない今日この頃。
基本ツクールのRGSSが思考の土台になっているのでRGSSだとぱっとできたことでも言語が変わると
あれできないこれできないとか多いですよね。RGSSが言語()とかいうのは置いといて。
例えばScene_Battleの@active_battlerってインスタンス変数、行動中の敵味方を格納するインスタンスですけど
これC++だとどうかくのかわからなくて3日ぐらい色々考えたけどポリモーフィズムって概念がRGSSを前提に考えると重要ぽいですね。
シーン管理もそうなんですけど
class Base{ //RGSS=GameBattler
}
class A: public Base{ //RGSS=GameActor
}
class B: public Base{ //RGSS=GameEnemy
}
int main(){
Base* ActiveBattler; //基底クラスのポインタ
A Actor;
B Enemy;
ActiveBattler = NULL; //いるのかわからんけどNULLで初期化
ActiveBattler = Actor;
ActiveBattler = NULL; //同上
ActiveBattler = Enemy;
return 0;
}
RGSSだと私は変数の型とか全然気にしなかったのでどうしようか困りましたが多分これでおkなはず。
基底クラスのポインタに派生クラスを代入するとそれっぽい動きをするので多分これであってる。というか今書いてる。
「もっといい書き方があるよ」
はよ はよ
私はVC++2008を使用していますがVC++2010ぐらいからNULLのほかにnullptr(ヌルポインタ)が使用できる らしいです。
このヌルポインタ、調べたところNULLとは若干違うそうです。
どうもNULLは整数(0)らしくnullptrは文字列 らしいです らしいです。
勝手にrubyのnilみたいなもんかと思ってたけど違うんかいな。
おそらくRGSS全般はC++でいうSTATEっていうデザインパターンで書いてる らしい らしい
まだよくわからんがな 勉強になるからいいけど
ガッ
このヌルポインタ、調べたところNULLとは若干違うそうです。
どうもNULLは整数(0)らしくnullptrは文字列 らしいです らしいです。
勝手にrubyのnilみたいなもんかと思ってたけど違うんかいな。
おそらくRGSS全般はC++でいうSTATEっていうデザインパターンで書いてる らしい らしい
まだよくわからんがな 勉強になるからいいけど
ガッ