Windows 10
Visual Studio 2019 Community
※上記環境にて動作確認しましたが、もし動作しない場合はご了承ください!
[DXライブラリ]の使用方法などにつきましては作者様のページ「DXライブラリ置き場」こちらをご覧ください!
広告
↓発売日:2018年09月22日↓
新品価格 |
こちらはSTGに登場する自機、敵、弾などをテキスト(文字の事)で表したSTGの骨組みみたいなものになります。
なので派手な画像、音楽などは一切ありません。
DXライブラリをインクルードした状態で
最終ソースファイル開く→[ctrl+a]ですべて選択→[ctrl+c]でコピー→[ctrl+v]で貼り付け→コンパイル
でそのままお使いいただけます。
このような背景画像(440×480)を用意して「back_img.jpg」の名前でプロジェクト名のフォルダ内(ソースファイルが置いてある一つ上の階層です)に配置して頂ければほんの少しだけ臨場感が増すかもしれません。
こちらは上記のプログラムに簡単な画像と音楽を加えたものになります。
以下のような内容で用意した画像と音楽を同じようにプロジェクト名のフォルダ内に配置して
完成ソースファイル開く→[ctrl+a]ですべて選択→[ctrl+c]でコピー→[ctrl+v]で貼り付け→コンパイル
でお使いください。
当サイトの素材は「無料イラスト素材ドットコム」さんの素材を少し加工して使わせて頂いております。
星空の写真のみぱくたそさんの画像を使わせて頂いております。
bgm、効果音などは「音楽素材/魔王魂」さんから使わせて頂いてます。
「player_chip.png」
一マスが(70×70)、画像全体で(280×70)のプレイヤーの画像になります。
当たり前ですが透過を加えた「png」画像で用意してください。
同じように
敵画像「enemy_chip.png」(70×980)
ボス画像「boss_chip.png」(600×1200)
プレイヤーショット画像「player_shot_img.png」(20×20)
敵ショット画像「enemy_shot_img.png」(20×20)
ボスショット画像「boss_shot_img.png」(20×20)
バリアー画像「barrier_img.png」(20×20)
爆発エフェクト画像「exp_effect_chip.png」(140×70)
アイテム画像「item_img.png」(20×20)
オープニング画像「op_img.jpg」(640×480)
エンディング画像「ed_img.jpg」(640×480)
背景画像1「back_img.png」(440×480)
背景画像2「back_img2.jpg」(440×480)
背景画像3「back_img3.jpg」(200×480)
オープニングや背景画像などで「jpg」も使っているのでご注意ください。
あと背景画像1「back_img.png」はわかりずらくなるので最初に紹介した簡単な星空画像と同じようにしましたが、背景画像2の上に重ねて表示するので透明な画像の上に星を表す点を打ったような画像になります。
次に音楽素材になります。
オープニングbgm「bgm1.ogg」
ステージ開始プレイヤー登場bgm「bgm2.ogg」
ステージ通常bgm「bgm3.ogg」
ボスbgm「bgm4.ogg」
ステージクリアbgm「bgm5.ogg」
エンディングbgm「bgm6.ogg」
決定se「se1.ogg」
プレイヤーショットse「se2.ogg」
爆発se「se3.ogg」
アイテム取得se「se4.ogg」
敵シールドse「se5.ogg」
プレイヤーボムse「se6.ogg」
ダウンロード版になります。
解凍後sample_gameフォルダ内のexeフォルダ内のsample_game.exeをダブルクリックしてお使いください。
あらためましてこちらは「C言語の入門は終わりました!」という方向けにゲームプログラミングの入門として「シューティングゲーム」の作成を目指した内容になっております!
今からC言語を始める方はぜひ当サイトの「小学生でもわかるC言語1・2・3」をご利用ください!
[DXライブラリ]を使用します。
DX Library Copyright(C)2001-2018Takumi Yamada
「ゲームプログラミングの館」さんのサイトを参考に、より初心者向けに内部構造に焦点を当ててゲームを作っていきます。
本格的なSTGに挑戦したい方はぜひ上記のサイトをご覧になってください!
1・ソース分けはしてません
2・テキスト(文字の事)で自機、敵機、ショットなどを表示
3・座標原点を画面中央に移動
4・数学の初歩的な関数の動きを使用
などなどキレイなグラフィック表示は置いといてまずはSTGの骨組みを完成させるところまでを目標とします。
なので画像や音楽を使用せずにテキストベースで話を進めてまいります。
標準関数と区別がつきやすいように自作関数の先頭に「my」とつけてあります。
当STG入門の特徴の一つに座標原点を中央に配置というのがありますが、実際はその必要はまったくありません。あくまでも初歩数学の学習用として中央に配置しているだけです。
実際のプログラミング手法には合ってない表現などもありますので、あくまでも入門としてお使いください。
もし「グラフィックじゃなきゃいやだ!」という方は、敵などの表示に用いている
DrawFormatString(x座標,y座標,色の指定, "本文",変数);
こちらの関数を
int img; img = LoadGraph("img.jpg");
使いたい画像ファイルを関数「LoadGraph()」で読み込んだ後で
DrawGraph(x座標, y座標, img, TRUE);
こちらの関数か
DrawRotaGraph(x座標, y座標, 1.0, 0.0, img, TRUE);
こちらの関数に置き換えてください。
「DrawGraph()」の方は画像左上の座標、「DrawRotaGraph()」の方は画像中心の座標を指定します。
「DrawRotaGraph()」の中ほどの数字は「1.0」となっているところは拡大率と「0.0」となっているところは回転率になります。
回転率についてはラジアン値を使用します。
最後の「TRUE」は透明度を利用する時は「TRUE」になりますが通常はどちらにせよ「TRUE」のままで大丈夫です。
画像のロードは一度すれば大丈夫なので初期化の時(whileのループに入る前)に行っておく事にも注意です。
完成ソースにもありますが画像を分割して読み込みたい場合は
LoadDivGraph("元画像パス",合計分割枚数,横分割数,縦分割数, 横幅,縦幅,画像を保存する配列);
こちらの関数をお使いください。
例えば先ほどのプレイヤー画像「player_chip.png」(280×70)を読み込みたい場合は
int player_chip[4];
画像を保存する為の配列を用意して
LoadDivGraph("../player_chip.png",4,4,1,70,70,player_chip);
このように読み込みます。
これでplayer_chip[0]~player_chip[3]にさきほどの画像が分割されて読み込まれます。
広告
最低限のプログラムになります。
背景を表示
プレイヤーを表示
プレイヤーショットを表示
敵を表示
敵ショットを表示
当たり判定を追加
爆発エフェクトを追加
アイテムを表示
ボスを表示
ボスの爆発エフェクトを追加
ステージやらゲームオーバーやら
敵の動き方を追加
敵ショットの種類を追加
自機ショットの種類を追加
背景の敵
敵の動き方を追加2
バリアーとボム
簡単な弾幕
ボスの動き方を追加
実際のゲームの流れに合わせて敵を配置
画像や音楽を加えて完成!
広告
↓発売日:2016年02月29日↓
12歳からはじめる ゼロからのC言語 ゲームプログラミング教室 新品価格 |
↓発売日:2018年06月22日↓
新品価格 |
↓発売日:2018年03月09日↓
新品価格 |
↓発売日:2017年06月14日↓
新品価格 |
↓発売日:2018年05月21日↓
新品価格 |
↓発売日:2017年12月07日↓
新品価格 |
↓発売日:2017年02月08日↓
新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ) 新品価格 |
↓発売日:2017年09月26日↓
新品価格 |