画像(logo)

HOME/[C言語DXライブラリ]STGの作り方 目次/初日 STGの考え方

広告

[C言語 DXライブラリ STGの作り方]
初日 STGの考え方

広告

↓2016年02月29日発売↓

12歳からはじめる ゼロからのC言語 ゲームプログラミング教室

目次へ戻る

STGの考え方

STGを作ろうとして詰まるところはおそらくこんなトコロではないでしょうか。

1・動きがしょぼい

2・連射できない

3・敵データの数がすごい事になってきた

4・敵の弾データの数がすごい事になってきた

5・プログラムがすごい事になってきた

などなど。

今回使用しているDXライブラリ、またはグラフィック機能が充実している高級言語などを使用すれば動きのあるプログラムも意外に簡単に作る事ができます。

なんとなくプレイヤーを配置、敵を配置、動かしてみて、弾とばしてみて・・・。

「なんだ、STGなんて簡単に作れるじゃん!」

なんて思っていたら世の中そんなに甘くなく、あれよあれよと悲しい結果に。

弾幕系のような弾1000発軽く超えるような表示を全て個別に行う方はそうそういないと思いますが、ある程度リサイクルも頭に入れてプログラムを組んだのになにやら上手くいかない。

そんなSTG作りのギモンを解決していきたいと思います。

「動き」を数学の関数で表現

まず動きのしょぼさですが、x座標、y座標の縦横移動のみではどうしても動きの限界があります。

これを簡単な数学関数を使う事によって滑らかな曲線なども表現していきます。

↓y = a / x↓

画像(cdxs_1_1)

↓y = ax^2↓

画像(cdxs_1_2)

↓sin↓

画像(cdxs_1_3)

広告

「弾の入れ物」・「敵の入れ物」etc...

STGに登場する弾、敵などを全て個別に作るとなると膨大なプログラムの量になります。

なのでまず先に「弾の入れ物」・「敵の入れ物」などそれぞれ用意します。

そしてそこにタイミングが来たら「出現位置」・「動き方」・「ショットの種類」などを登録してその情報に従って動きなどを計算、表示していきます。

そして使い終わったらその入れ物を解放する事によって一定量で使い回せるようにします。

例えば一日1000人来店するレストランに必要な皿の枚数は1000枚ではないですよね。

同時に来店できる最大人数プラスちょっとあれば洗いながら回せますよね。

そんな感じです。

画像(cdxs_1_4)

たとえば自機ショットを打つまでの流れを見てみましょう。

1・ショット発射ボタンを押す

2・現在未使用の「弾の入れ物」を調べて使用中に

3・その時のプレイヤーの「弾の動き方」を登録

4・その「弾の動き方」に応じて発射・計算・表示

5・終わったら再び「弾の入れ物」を未使用に

こんな感じになります。

そしてここに当たり判定などを加えてSTGの骨組みを作っていきます。

では次回は実際にプログラムを組んでいきましょう!

次回

二日目 最低限のプログラム

□ページの先頭へ□

□目次へ戻る□

□HOME□

広告

↓2017年06月16日発売↓

やさしいC 第5版 (「やさしい」シリーズ)

新品価格
¥2,700から
(2017/5/1 13:05時点)

↓2014年08月09日発売↓

新・明解C言語 入門編 (明解シリーズ)

新品価格
¥2,484から
(2017/5/1 13:08時点)

↓2016年02月20日発売↓

新・解きながら学ぶC言語

新品価格
¥2,160から
(2017/5/1 13:10時点)

↓2017年02月11日発売↓

C言語プログラミング基本例題88 88

新品価格
¥3,024から
(2017/5/1 13:12時点)

↓2016年12月15日発売↓

Cの絵本 第2版 C言語が好きになる新しい9つの扉

新品価格
¥1,490から
(2017/5/1 13:13時点)

↓2017年02月08日発売↓

新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ)

新品価格
¥2,700から
(2017/5/1 13:15時点)