忍者ブログ
まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

とりあえず中ボス前まで完成しました。
新たにザコを2種類増やし、先日作った皮むき出来るキャラと絡めて
作成しました。
2007_6_12.jpg

で、中ボスを作成しようと思っているのですが、中ボスは早回し出来るように
したいので、弱点をどういう風にするか考え中です。
前回作ったのはボムで瞬殺出来るようにしたのですが、今回はどうするか・・・
PR

私が小学生の頃、セガマークIIIと言うゲーム機がありました。
それ用のゲームで北斗の拳と言う横スクロールのアクションゲームがあったのですが
このゲームの1面目で横スクロールの多重スクロールを行っており
当時、非常に感動したのを覚えています^^

で、その多重スクロールをやってみたいと思い、簡単なスクリプトで試しに作ってみました↓
2007_6_10.jpg
画像はHamCorossamさんの所の背景画像を使用させてもらっています。

画像ではわかりにくいですが、6重スクロールしています。
方法としては、es_exput命令で外側から順番にスクロール速度を落としていき
奥行きがあるように見せています。
一番手前の棒?だけスプライトで動かしています。

スクリプトはこちら↓
es_exputを使用した多重スクロールスクリプト

とりあえず、コレを利用して宇宙からスペースコロニー?に入って行くように
しようと思っているのですが、問題は最初の宇宙からコロニーに切り替わる部分なんですよね・・・
切り替わる時はスクロール速度を一定にして、切り替わった後に
スクロール速度を徐々に変えていこうかと思っています。

ステージ1用の曲を作ってから、ステージの内容を作って行こうかと思って
曲を作っていたのですが、コレってのが出来ないので先にスクリプトから
作っていってます^^;

で、新しい敵を作成してみました↓
2007_6_91.jpg
まずは普通に攻撃してくるのですが、敵の体力が一定以下になると・・・

2007_6_92.jpg
画像のように羽?が回転して、激しい攻撃を行うようにしました。

2007_6_93.jpg
こんな感じ。

で、倒すと弾がアイテムに変わるようにしました。
イメージとしては皮むきですね^^;

前回の教訓を生かして、ステージの長さを長くなり過ぎないようにするのと
難易度を高くしないように注意しながら作成しています^^
ステージ1の作成をはじめました。

まず、ステージ選択用の変数を作って、変数が1の時はステージ1のスクリプトを読むようにし
変数が2の時はステージ2を、変数が3の時はステージ3を読むようにスクリプトを書き換えました。

で、ステージ1は宇宙から地球上空を飛ぶようにして、ステージ1から2の間で大気圏突入・・・
といった感じにしようかと、今のところ思っています。

ステージ1を作っていくにあたって、とりあえず背景を完成させようと思って、宇宙から地球に
繋がる背景を作って、スクロールするようにスクリプトを作りました。
2007_5_31.jpg
絵が下手なのはどうしようもないので、あまり気にしないで下さい^^;
しかし、絵ってどうやったら上手くなるんでしょうかねぇ?
タブレットとか買えば上手く書けるんでしょうか・・・

地球の上を飛んでいるような感じの背景を作りたいな~と思って
頑張って背景は下手なりに書いたのですが(写したともいう^^;)
問題はスクロール方法でした。

私の現在のスクロール処理方法はスプライトを使用してes_adir命令で
自動移動させていたました。
ですが、この方法だと必ずスクロールさせる方向とは反対側にes_area命令で
有効範囲を多めにとらなければなりませんでした。
例えば、縦が480ドットの絵を下に動かす場合は、es_area 0,-480,640,480
のような感じ。
これだと、画面の上側に行った弾などのスプライトが消えず、画面外でも動いて
しまうため、効率が悪いですしFPSが落ちる原因にもなります。

で、今回の地球の上を飛んでいるような感じにしたいと思って、考えたのが
地表が下にスクロールして、その上に雲が右にスクロールしていくという物でした。
これを、スプライトを使用してスクロールさせようと思うと、es_areaの範囲が非常に
大きくなってしまう為、何とかならんもんかなぁ?と思って色々と考えてみました。

以前スクロールの検証を行った時にes_copyは動作が重過ぎて使えなかったので
(私の使い方がおかしいのかもしれませんが)他に良い命令はないかと探してみると
es_put命令が目につきました。
これを使ってやってみると、なぜかes_putでは上手くスクロールしなかったんですが
es_exput命令を使うと、上手くスクロールしてくれ、動作も軽くて非常に良い感じに
動作させる事が可能で、es_areaの制限も受けないので理想的と言えます。

スクリプトの書き方も簡単で、例えば縦スクロールなら
;/////////////////////////////////////////////////
mapd1++;スクロール速度
es_exput 0,mapd1,1
es_exput 0,mapd1-480,1
if mapd1>480 : mapd1=0
;/////////////////////////////////////////////////
↑このような感じで書けば良いので、わかりやすくて良いです。

で、簡単なスクリプトを作って考えてみました↓
es_exputを使用した二重スクロールスクリプト
上記のスクリプトを動かすとこんな感じ↓
2007_5_25.jpg
ちゃんと地表は下にスクロールし、雲は右にスクロールしてくれました。
FPSも安定していますし良い感じです^^

Twitter
カレンダー
04 2025/05 06
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
最新コメント
[04/20 kt.]
[04/19 うぇむ]
[11/24 kt.]
[11/21 NONAME]
[11/24 kt.]
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
忍者ブログ [PR]