C言語ゲームプログラミング




2014年10月より個人の方を対象に、Study C無料提供を開始しました。
C言語を勉強中の方は、学習・教育に最適なC言語インタープリタのStudy Cを使ってみてください(個人の方は無料です)。
大学・高専・高校などの教育機関での採用実績も多数あるロングセラー商品Study Cが、個人向けに無料提供を始めました。
インタープリタの手軽さに加え、ゲームや3Dタートルグラフィックで楽しく勉強したりと、C言語の学習を協力にサポートします。
ブロック崩しゲーム 3Dツリー クリスマスツリー
また、このようなボタンの用意されているページでは、掲載しているプログラムをStudy Cに直接ロードし実行したりすることができます。
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する
Study C無料利用についての詳細は、このページを参照してください。



◆◆◆ C言語ゲームプログラミング ◆◆◆
・C言語は、ある程度理解できているでしょうか
 C言語については、C言語学習塾で解説しております。

・C言語ゲームプログラミングを勉強するための手順
 Study Cを購入していただくか、サンプル版をダウンロードしセットアップします。

Study Cについて...
Study Cで作成してみたゲームです。この程度のゲームをStudy Cで作成することができます。
ゲーム1  ゲーム2  ゲーム3
・上のブロックくずしゲームで遊んでみたい方は、EXEファイルをブロックくずしゲームダウンロードできます。
・上のシューティングゲームで遊んでみたい方は、EXEファイルをシューティングゲームダウンロードできます。
・特別C言語講座がアクセス可能な方は、下記からこのゲームのソースプログラムをダウンロードできます。

・個人レベルで開発可能なゲームの実行環境をまとめてみました。
 以外と知られていませんがNitendo DSPSPなど市販のゲーム機を含め、色々な環境でプログラムを作成することができます。

ブロック崩しAndroidに移植
ブロック崩しゲームをAndroidに移植してみました。
予備知識は、ほぼ0でしたが3日で移植できました。
1日目...開発環境作成(実機デバックにしました)からビットマップ等の画面表示と画面タッチイベント取得のテストプログラム作成
2日目...取り合えず動くように強引に移植。2日目にしてとりあえずブロック崩しゲームとして動くようになりました。
3日目...Javaとしてソースをきれいにして移植は完了しました。

◇◇◇ C言語ゲームプログラミング講座 ◇◇◇
はじめに 下記でゲームプログラミングの準備を整えてください。
 

(1)個人レベルで開発可能なゲームの実行環境をまとめてみました。
以外と知られていませんがNitendo DSPSPなど市販のゲーム機を含め、色々な環境でプログラムを作成することができます。

(2)C言語はある程度理解しているでしょうか?
C言語自体の解説ページも用意してあります。

(3)C言語検定試験(入門編)
○×問題が出題されるので、あなたの実力を判定してみてください。ちょっと難しくしすぎてしまいました。 あまり点数は気にしないで、関連事項の勉強と思ってチャレンジしてみてください。
C言語検定試験

(4)文字表示で作ったゲームの基礎
文字表示で作った簡単なゲームの作り方です。理解している内容か、確認してください。
キー入力
画面の好きな位置に文字を表示
カーソルキーで移動する「+」文字
カーソルキーを押していない間に処理を行う
複数の敵キャラクターを動かす
ゲームとして完成させる

第1回講座
  1.ゲームを作成するのに必要な基本機能
2.ゲーム用ウィンドウの作成
3.ウィンドウのクローズ
4.ビットマップファイル
第2回講座
  1.ビットマップファイルのロード
2.ビットマップの描画
第3回講座
  1.ビットマップ描画の練習
2.ビットマップファイルの作成
第4回講座
  1.表示した絵の消し方
2.絵の移動
第5回講座
  1.ボールの移動
2.処理速度の調整
3.待ち時間と移動量
第6回講座
  1.壁で反射するボール
2.上下左右の壁で反射するボール
第7回講座
  1.キー入力
2.キー状態の取得
第8回講座
  1.キー入力で上下左右に動くボール
2.マウスのボタン状態の取得
課題1
  今までの講座の内容で次のプログラムを作成してください。
(1)ボールは上左右の壁で反射(ボールは斜めに移動)します。
(2)下部にはラケット(横長の四角)が表示されカーソル左右キーで左右に移動します。
(3)ボールが下部へ移動しラケットに当たると反射します。
(4)ラケットに当たらなかった場合は、ビープ音(MessageBeep(0)を使用)をならしてプログラムを終了させます。

下記のような感じで作成してください。
作成例1

ブロック崩し編 第1回ブロック崩し編 第2回で課題1を完成させています。
ソースファイル ゲームソースファイルのダウンロード
 
特別C言語講座がアクセス可能な方にブロックくずしゲームとシューティングゲームプログラムのソースファイルを用意しました。
まだコメントなど入れてませんが、参考にしてください。

ブロックくずしゲームソースファイル
シューティングゲームのソースファイル

・ソースファイルとビットマップファイルが展開されます。
・ディレクトリを作成して展開した場合は、Study C内でそのディレクトリへ移動(cdコマンドを使用)してから実行してください。
例)C:\StudyC\MyProg\>cd BLOCK

第9回講座
  1.マウスカーソル位置の取得
第10回講座
  1.効果音を鳴らす
2.BGMの演奏
第11回講座
  1.テキストの描画
2.ゲームスコアの描画
課題2
  今までの講座の内容で、課題1のプログラムを次のように改造してください。
(1)ボールが上左右の壁で反射したときは、効果音を鳴らします。
(2)ラケットで反射した場合は、別の効果音を鳴らします。
(3)ウィンドウの右側にスコアを表示するエリアを作成します。
(4)ラケットに当たるたびに1点ずつスコアをアップさせます。
(5)ラケットはマウスの動きにあわせて左右に動くようにします。

下記のような感じで作成してください。
作成例2
特別C言語講座内に解答例を用意しました(自分で作ってみるまでは見ないようにしましょう)。
ブロック崩し編 第3回で課題2を完成させています。
ブロック崩し編 第1回から順番に見てください。
第12回講座
  1.背景上にビットマップを重ねて表示
2.マスクパターンビットマップを使用しての表示
第13回講座
  1.背景のあるウィンドウでのビットマップの移動
2.背景の再描画
第14回講座
  1.Study C Ver2のビットマップファイル作成/編集支援機能
2.ビットマップファイルの新規作成
3.ビットマップファイルのマスクパターン作成
4.既存ビットマップファイルの編集
第15回講座
  1.main作成ウィザード
2.マスクパターン付きビットマップ表示プログラムの作成
ライブラリ Study Cで作成したゲームプログラムをBorland CやVisual Cでコンパイルすることができるようにライブラリ
  Study Cで作成したゲームプログラムをBorland CやVisual Cでコンパイルすることができるようにライブラリを用意しました。
特別C言語講座にアクセス可能な方は、無料でダウンロードできるのでぜひご利用ください(ライブラリをリンクしたEXEファイルは自由に配布することができます)。
このページに掲載されているプログラムもコンパイルすることができます(プログラムの修正もほとんど必要ありません)。

◇◇◇ ゲームプログラミング ブロック崩し編 ◇◇◇
ブロック崩し編 第1回
  1.矩形の移動
2.左右に移動するラケット完成
ブロック崩し編 第2回
  1.壁で反射するボールとラケット
2.ボールとラケットとの当り判定
ブロック崩し編 第3回
  1.スコア表示
2.マウスでラケット移動
ブロック崩し編 第4回
  1.ゲーム画面のサイズ調整
2.ブロック表示
ブロック崩し編 第5回
  1.ボール関係の関数
2.ラケット関係の関数
3.グローバル変数、プロトタイプ宣言
4.プログラム全体

◇◇◇ グラフィック関連の関数リファレンス ◇◇◇
設定/初期化関連の関数
gl_closewin グラフィックウィンドウのクローズ gl_modeset グラフィックのモード設定
gl_openwin グラフィックウィンドウのオープン gl_refresh 画面の再描画
ビットマップ描画関連の関数
gl_drawbitmap ビットマップの描画 gl_freebitmap ビットマップデータの解放
gl_loadbitmap ビットマップファイルの読み込み gl_maskdrawbitmap マスク機能付きビットマップの描画
図形/文字描画関数
gl_arc 弧を描画 gl_chord 弓形の描画
gl_ellipse 楕円形を描画 gl_fillrect 長方形を描き塗りつぶす
gl_floodfill 領域の塗りつぶし gl_line 線の描画
gl_pie 扇形を描画 gl_rectangle 長方形を描画
gl_setpixel ピクセルの描画 gl_textout 文字列の描画
サウンド関連の関数
gl_playbgm BGMの再生 gl_playsound サウンドの再生
gl_stopbgm BGM再生の停止
その他の関数
gl_getcursorpos マウスカーソル位置の取得 gl_getkeystate キーボードの状態を取得
gl_getmousepos ウィンドウ内でのマウスカーソル位置の取得 gl_getpixel ピクセル値の取得
gl_textmetric フォント形状の取得




■C言語自体の勉強は、C言語学習塾のページをご利用ください。
■使用条件
・潟Iーキッドのホームページに掲載されている全てのドキュメントに関する複製、改変、他への引用、再使用はできません。
・潟Iーキッドのホームページに掲載されている全てのドキュメントは営利、営業目的の使用を禁止します。 学校、講習会、社員研修などの教材として使用することも禁止します。 あくまでも、個人的にC言語を学習する目的でのみ使用してください(ただし、たとえ営利目的の講習会などでも、教材としてStudy Cを購入して使用場合は使用を許可します)。
・オーキッドのホームページ(Webページ)内に含まれるすべての情報(文書)について、著作権保有者及び配布者はなんら保証を致しません。 情報(文書)を利用することにより発生した、いかなる損害や逸失利益に対して著作権保有者及び配布者はいっさいの責任を負いません。利用者自身の責任でご利用下さい。
このページ(http://www.orchid.co.jp/computer/cgame/index.html) へのリンクはご自由にお貼りください。確認の必要はありません。この表示がない ページはファイル名などを変更する可能性があります。 本サイトの内容は、ブラウザを手動で操作して1ページづつご覧になってください。巡回ソフトや一括ダウンロードソフトは使用しないでください。