• ベストアンサー

C言語でゲーム

今、独学でC言語を勉強しているんですが。 大きく、 条件処理、繰り返し処理、配列、関数、2次元配列、文字列、構造体、ファイル処理、乱数、検索、バブル・ソート、ポインタ を勉強したんですが。 もしも、ゲームを作るとしたら・・ もし、ボンバーマンみたいなのを作るとなるとどういう勉強をすればいいんでしょうか? もうひとつはHALOみたいなxbox関係などはどの様な勉強をすればいいんでしょうか? 質問が多いですが、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#88772
noname#88772
回答No.4

こんにちは。  本屋でゲームプログラミングの本を立ち読みすることをお勧めします。 おそらく“なんじゃこりゃ?”と思うでしょう。 個々の文法(for文とか)は解ると思いますが、全体的に何をしようと しているのか見当もつかないと思います。  今の段階はプログラムの“書き方”を習っただけです。 これからは自分のやりたいことが何でそれを実現するにはどういう処理 をさせていけばいいかを考えてみてはどうでしょうか? そのウォーミングアップに家計簿とか電話帳とかがいいのではと思いました。  ゲームのプログラミングはいままで習ったC言語のように一本道でないです。 イベント(タイマーやキー入力等)に対しての処理をしていきますし、 OSやGUIが提供するAPI等を使っていくことになりますので、 その辺りも勉強してみるのもいいかもしれません。  それらが充分に理解できたらゲームプログラミングの本で実際に プログラムを作成してみてはどうでしょうか?  ご参考までに。

その他の回答 (3)

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.3

・C言語の基本構文を修得。 ・アルゴリズムとデータ構造についての知識を修得。 ・アルゴリズムの修得と平行してコーディングも修得しておく。 ・コードリーディングや人が作ったコードの改造なども進める。 ・C言語のイディオムなんかも学習しておく。 ・ゲームライブラリの作成を行う。 ・実際にゲームを作ってみる。 とこんな感じでしょうか。 ・コードリーディングや人が作ったコードの改造なども進める。 オープンソース系のサイトを回るとか、 ゲーム製作系のサンプルコードが載っている本を買来るなどして、 人の書いたコードを読んだり改造したりしていると、コーディング技術の向上 に有効と思われます。 平行して、 ・C言語のイディオムなんかも学習しておく。 と、より効率的にコードリーディングや、コーディングを進める事が出来ると 思われます。

  • DESTROY11
  • ベストアンサー率23% (782/3372)
回答No.2

ゲームでしたら、タイマ制御の概念も必須ですね。 一定時間ごとに何か処理を行わせることは、いくらでもありますから。

  • newta777
  • ベストアンサー率58% (20/34)
回答No.1

あとは ボタン等の入力部分とグラフィックの部分を勉強すれば出来るのでは? HALOみたいなのだと3Dを扱う知識が必要かもしれないですが。 もし上ボタンが押されていれば 何々 もし上が壁で無いならば 何々 もしBが押されたら 何々 もし何秒経ったなら 何々 のような条件と あとはそれのループするだけなので ボタン入力やグラフィック部分はハードによって違うので なんとも言えません。 とりあえずPCで作りたいならば、DirectXを勉強しとくと良いと思います。 コンシュマー系のやつはなかなか手に入らないんじゃないかな。

関連するQ&A

  • C言語

    今、独学でC言語を勉強しているんですが。 大きく、 条件処理、繰り返し処理、配列、関数、2次元配列、文字列、構造体、ファイル処理、乱数、検索、バブル・ソート、ポインタ まではやったんですが(参考書で勉強)。 その次になにを勉強したらよく分からないので、 何を勉強するべきか教えてください。 将来的にこれっと言った作りたいものは決めていません。 お願いします。

  • C言語のことで…

    C言語のポインタの勉強をしているのですが、 9×9の整数型2次元配列を格納する関数kuku_makeを作成。 結果確認はmainで上記関数を呼び出して結果を表示。 void kuku_make(int kuku[][9]) 方向性だけでもいいので教えてください。

  • C言語についての質問です><

    0から100までの乱数を発生させ要素20個の整数配列aに乱数を格納し、 その配列を大きい順番に並び替える。 その際もともと格納されていた配列の場所もあわせて 表示するプログラムを示せ。 乱数発生にはsrand関数とrand 関数を使います。 二次元配列を使うこと. プログラムリソースとプログラム解説をつけてほしいです>< 例 number place a[0]=98 3 a[1]=94 19 a[2]=90 1 のようになるようにお願いしますm(_ _)m

  • C言語のvoid型ポインタを使いたいのですが…

    C言語のvoid型ポインタを使いたいのですが… 関数の引数として、void型ポインタを使おうと思ったのですが、内部でどのように処理すればいいのかわかりません キャストすれば問題なく使えるとのことですが、どの型でキャストするのかをどのように判断するのかがわかりません 具体的には、画像処理で画像の構造体をいくつか作ったのですが、それぞれの構造体ごとに関数を書くと関数が多くなるので、void型ポインタでまとめてつくろうとしています どのように型の判断を行えばいいのかを教えてください

  • C言語 よく使うのは?

    C言語の参考書で、例えば1章~8章まであるとすると、 1章~前半くらいは、printfや変数や、演算など出てきると思うんですが、後半にかけて、配列やポインタや関数など出てくると思います。 実際に仕事で、よく使うのを挙げるとどんなのですか?(例えば、ポインタはよく使うや配列もよく使うや) もちろん、変数や演算などが出来ないと条件分岐や配列もポインタも何も出来ないと思うんですが、 上手く言えないんですが、for文はよく使うから、ちゃんと理解していないとダメとか、仕事ではポインタがしょっちゅう使うとか、ありますか? 本屋さんで見ると、ポインタ専用の本や、関数専用の本があるので、よく使うのかなと思いました。 それか、難しく理解が難しいから、より詳しく書かれているんでしょうか? 上手く説明が出来ていないですが、よろしくお願いします。

  • C言語の問題

    C言語を勉強している初心者です。大学の課題なのですが、よくわかりません。 5人分の名前と点数を入力し、点数の良い順に並べ替えよ。並べ替えの部分には関数(配列またはポインタ)を使用すること。 点数を入力させるのは分かるのですが、同時に名前の文字列を入力させるのがわかりません。 ソートも名前と点数を同時に並べ替えるやり方がわかりません。 宜しくお願いします。何分、初心者なので…申し訳ありません。宜しくお願いします。

  • C言語のメモリ領域確保

    ポインタ変数ををmain関数で宣言し、関数test()にて必要分だけ領域確保してそのアドレスをmain関数のポインタ変数に渡して利用することは可能でしょうか。 (サイズのわからないテキストデータを、十分に大きな配列に入れるのではなく、関数でメモリを動的確保して無駄の無い配列に入れたい等) C言語ではやはり無理で、構造体のリストにするのが一番でしょうか。 初歩的なことで申し訳ありませんがどなたかお願いいたします。

  • c言語のmalloc関数、またrealloc関数

    c言語のmalloc関数は確保するメモリの領域を、配列としてのみしか処理出来ないのですか。 つまり、malloc関数で確保したメモリの領域を変数、また多次元配列、また構造体としては処理出来ないのでしょうか。 c言語のrealloc関数は以前の確保したメモリの領域から、確保し直したメモリの領域の場所が変わるかもしれないという事ですが、この場合の場所が変わるという意味は、メモリの領域のアドレスが変わるという事でしょうか。 また、以前の確保したメモリの領域に代入していたデータが使用出来なくなるという事でしょうか。

  • C言語 ポインタと配列

    C言語で配列をあつかう場合、ポインタをつかうか、配列の添え字を使って処理するか迷うのですが、どちらが良いのでしょうか? 処理速度ではどちらが上でしょうか?

  • C言語の勉強方

    基本情報の試験の言語がCで受験しなくてはいけないんですが、独学で0からのスタートなので難しくて参ってます。2週間かけて、基礎の部分を一通り勉強して、前半部分は理解できたんですが、後半の 構造体、ポインタ:なんとなく理解 ユーザ関数:理解不能 といった感じなので、応用問題とかになると全然分からなくて参ってます。 C言語の勉強の仕方や初心者でも分かりやすく理解できる参考書などは無いでしょうか??教えて下さい。 1週間シリーズがいいと聞いたんですが、あれはどうなんでしょうか??

専門家に質問してみよう