OpenGLとglutで3Dダンジョン 1

なんか、取り敢えずそれらしく動くようになった。glut使ってるけど、OpenGLについてまだ知識が浅いので、地味に大変。

一応、ダウンロードできるようにしてみる。動作環境は、Windowsのみです。右クリックでダウンロード&保存してたもれ。

操作方法は以下の通り。

w前進

z後退

as左右回転

qe左右移動

テクスチャとか貼りたいけど、Visual C+++OpenGL+glutと、XCode+OpenGL ESでは全然違うからなぁ。でもまぁ、やってみるか。

どこからも参照できなくなってしまった文字列リテラルって

どこからも参照できなくなってしまった文字列リテラルってどうなってしまうんだ。

そんなことするな、ってことか。

しかし、C++を勉強することがとても楽しい。

夢中になり過ぎて、気付けばぐったりしていることもあるけど、この楽しみはやめられそうにない。

ちゃんとC++を学ぶには、今読んでいる入門書だけでは駄目なようだ。

色々作ってみているけど、全然クラス使ってない。使った方がいいのか。クラス使ったら処理が遅くなったりしないんだろうか。

デザインパターンというのを知るといい感じになりそう。今のままだと、どこから手を付けていいのか分からない。何度か「シングルトンパターン」という言葉が出てきた。インスタンスが1つしか作られないことが保証されている、というクラスらしい。あれかな、Flashでいう「_root」みたいな存在という感じのことだろうか。

まぁ、でも、習うより慣れろ。色々作りながら「ああ、しまった、これはこう作っておけば良かった」とか自分で分からないと意味が無さそう。

取り敢えず、ぽちぽち何か作ってみるかな。

ポインタについての取り敢えずのメモ

ポインタについての、取り敢えず自分の頭の中整理メモ。

なぜ、ポインタというものを使うのか。

実数渡しでは何故駄目なのか
ポインタも実数渡しだが、ここではそういう意味では無く、引数として全てを投げることとの違いを意味している。
関数・クラス間で実数を丸ごと渡すと、渡された関数・クラス内でのローカル変数が作成され、都合、メモリを倍喰うことになる。もちろん、関数の処理が終わって帰り値が投げられればその時点でローカル変数は破棄され、メモリは解放されるのだが、関数を呼ぶ度にメモリ確保・変数設定・処理・メモリ解放を繰り返すのは非効率だ。
ポインタなら、実数渡しといっても先頭アドレスのみを渡すから、必要となるメモリが少なくて済む。更に、エイリアスを使用すれば、わざわざローカル変数を用意しなくても配列などを直接操作することが可能だ。
参照渡しでは何故駄目なのか
配列のやり取りとか、なんか超面倒くさいことになるから。

わはは。我ながら凄いまとめ。こんな理解で合ってるんかしらん。

まぁ細かい話は気にせずに進もう。