質問: c++とwin32apiとゲームプログラミング windowsで動くゲームを作りたくて3日ほど前からc++の勉強を始めました。 (最終的にはグラディウスのような横スクロールシューティングが作りたいです。) そこで質問なんですが 1、win32apiについて調べるとc言語を使っての入門サイトばかりがヒットします。 win32apiはc言語で書くものなんでしょうか? そうなってくると今windowsのguiアプリを作るのにc++を勉強していますが無駄ってことでしょうか? 例: 猫でもわかるプログラミング http://www.kumei.ne.jp/c_lang/index.html win32api入門 http://wisdom.sakura.ne.jp/system/winapi/win32/index.html ちなみに今学習に利用しているサイトは以下のサイトです。 c++入門 http://www.asahi-net.or.jp/~yf8k-kbys/newcpp0.html 2、ポインタの概念について ポインタのイメージですが値を格納している場所みたいな感じで大方あってますでしょうか? 僕は組み込み系をやっているのでアセンブラにどっぷり漬かっています。 なんていうかレジスタの番地がポインタに該当するのかなって思っています。 ↓みたいなイメージで考えています。 ポインタ=データの場所=レジスタ番地 これであってますか? 3、まだguiには進んでませんがウインドウのメニュー(ファイル、編集等)を作るのにリソースファイルも作るって説明が上記ページ(猫でもわかる)に書いてましたがリソーススクリプトとかヘッダーもプログラム言語とは別に勉強する必要があるんでしょうか? 4、c++のクラス概念について クラスとは複数の関数をひとまとめにしてグループ管理(おおざっぱに言うとサブルーチンの集まり的な)するようなものってイメージであってますか? 5、windowのguiアプリのプログラムの概要ですが各オブジェクト(ウインドウやボタン、マウスポインタ等)に対して「クリックされた」とかのアクションに対して動作するプログラムを書くって事でいいんでしょうか? 6、お勧めの参考書籍について 今までアセンブラをはじめperlやjavascript、c言語のお勧め入門書をいろんなサイトのレビューを見て買いましたが本よりネットの入門サイトのほうがかなり役にたってきました。それでも入門書を買うのは気持ち的に安心するからなんですが・・・ それを踏まえた上で僕の最終的な目的にあうような本があったら是非教えてください。 7、勉強の進め方や「合わせてこれも勉強しろ」っていう項目があれば教えてください。 現状としては 「c++の基礎(必要ですか?)」→「win32api」→「directx」で行こうと思っています。
回答: >言語の中にapi関数を記述しその機能を呼び出してるんですよね? >osの機能を使うための関数がapiみたいな? ざっくり言うとその通りです。 ウィンドウ制御などosの機能を使うための関数がwindowsapiです。 >ポインタについてですがポインタ自体はわかりましたが(参考ページは読ませてもらいました。) >利便性がいまいち理解できてません。たとえば文字列で何文字目の 文字だけ取り出すとかだと使えそうですがポインタのポインタとか さらにそのポインタとかこんなややこしいことしたら自分がこんがらがってしまいそうです。 使わないで済むなら、それが一番かも知れません。c++なら参照渡しができますし、stringクラスで文字列も扱えます。 ただ、文字列の処理はchar型の配列であることから逃れらない部分がありますので、そのうち使わざるおえない事があると思います。ポインタと実体は違うものだと意識していないとクラステンプレート等を使うときにぜったい間違いをしでかしますんで覚えておいてください。 >「4」でいいんでしょうか? 正解です! 私は最初1バイト足すんだと勘違いしました。 アセンブラのインクリメントとは違うんですよね。 >お勧めいただいたc++の本ですが本屋さんで実際に見て厚さにビビってしまい「ゲーム作りで学ぶ!実践的c言語プログラミング」だけ買ってきました。せっかく進めてくれたのにすみません。 c++をちゃんと勉強するためには、あのぐらいの厚さがどうしても必要です。今は不十分な理解のままでも良いので、ゲームを作ることでプログラミングに慣れる事を優先してください。 でも、将来的には購入を考えてくださいね。薄い本では、どうしてもモノ足らないんです。 サイトの紹介をしていなかったんで紹介しておきますね。 猫でもわかるプログラミング http://homepage2.nifty.com/c_lang/ c++入門 http://www5c.biglobe.ne.jp/~ecb/cpp/cpp00.html ロベールのc++教室 http://www7b.biglobe.ne.jp/~robe/cpphtml/index.html c++のオブジェクト指向をやっていくうちに、デザインパターンと言うものに出会うと思いますが、たぶん薄い本の知識だけでは、これを読むことは難しいと思います。 「c++で読むデザインパターン」 http://www.01-tec.com/document/cpp_design_pattern.html 今は読めなくて良いので、こういう物がある&プロは知っていないと話にならないってことだけ理解しておいてください。