検索
<< 2024年12月 >>
1
2 3 4 5 6 7
8
9 10 11 12 13 14
22
23 24 25 26 27 28
29
30 31
広告
駿河屋レトロゲーム
最新記事
ブログランキング
にほんブログ村 ゲームブログ ゲーム制作へ
プロフィール
J-JSOFTさんの画像
J-JSOFT
高校時代、あれほど熱心に取り組んだMSXに触れなくなって30年余…。 MSXエミュレータとの出会いで、MSX愛が再燃中。
カテゴリーアーカイブ
ファン
QRコード

2024年10月31日

【ゲーム制作】シューティングゲーム 第22回






シューティングゲーム 第22回です。
今回は、プレイヤーのパワーアップ(速度)について考えます。

パワーアップ(速度)=スピードアップです。
24_10_31_1.png
こちらがスピードアップのパワーアップアイテムです。

前回、移動カウンタを小数点扱いとしました。
実はスピードアップすることも、勘案しております。

プレイヤー速度の初期値を、縦横方向は「100」、斜め方向は「70」としました。

スピードアップは、1つ取ると速度が1割アップする事とします。(縦横方向+10、斜め方向+7)
スピードアップは、最大で5つまで取得できます。



取得数

縦横方向

斜め方向


1

+10(110)

+7(77)


2

+10(120)

+7(84)


3

+10(130)

+7(91)


4

+10(140)

+7(98)


5

+10(150)

+7(105)



最大時は、縦横方向150、斜め方向105となり、初期値の1.5倍の速度となります。
これ以上速くなると、操作が困難となる速さです。
(まぁ、無制限でも面白いと言えば面白いのですが…。)

パワーアップの仕組みについては当たり判定時に、パワーアップアイテムとプレイヤーとの衝突時に組みますので、ここでは速度のアップ率のみ決めておきます。

次回は、プレイヤーの弾を組んでいきます。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年10月30日

【ゲーム制作】シューティングゲーム 第21回






シューティングゲーム 第21回です。
今回は、前回説明した内容に則り、プレイヤー移動を組んでいきます。
24_10_30_1.png

斜め方向移動が、狙撃弾と同じ考え方と言う事は、小数点以下が必要になります。
そこで移動カウンタを設け、その値を小数点扱いとし、加算値を加え1を超えたら実際の座標を±1する事にします。

移動速度の初期値を、縦横方向は+100、斜め方向は、Laboratoryテーマ??9「32方向弾」の45度時の加算値を利用し+70と設定します。
移動カウンタが100を超えたら1ドット移動します。
変数的には、このように取っています。



変数用途

備考

プレイヤーY座標

プレイヤーが表示されるY座標

プレイヤーX座標

プレイヤーが表示されるX座標

Y座標移動カウンタ

加算値を加え100を超えたらY座標に±1

X座標移動カウンタ

加算値を加え100を超えたらX座標に±1

縦横方向加算値

初期値:100

斜め方向加算値

初期値:70


因みにX・Y座標をX・Yカウンタと別々にせず、それぞれ16ビットで取り「100」を「256」として換算すれば、もう少し楽に計算できます。(桁上がりなど)
でも、自分で分かり易いように組んでます。

この仕組みで、縦横方向は1回の移動で1ドット移動し、斜め方向は2回で1ドット移動します。(70+70=140-100 余り40)
これで、8方向弾と同じ速度比になります。

24_10_30_2.png
んー、長い!
なんか凄く回りくどいロジックになった気がする…。
2,710行からの「P MOVE COUNT」で移動カウンタを加算。
2,930行からの「P MOVE」で移動カウンタの100越えをチェックし、座標値加減算しています。
さっき書いた16ビット化なら、「P MOVE」は不要ですね…。
まぁ、今回はこれでいいか、次回作はもう少しスッキリさせたいな。

次回は、プレイヤーのパワーアップ(速度)を組んでいきます。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年10月28日

【ゲーム制作】シューティングゲーム 第20回






シューティングゲーム 第20回です。
今回は、プレイヤー移動処理について考えます。

さて、プレイヤーの移動ですが、MSX1のゲームは基本8方向に移動します。
(STICK命令で取得できる方向が8方向だから。)
この時注意しなければいけないのは、縦横方向の移動速度に対し、斜め方向は8方向弾のように「少し遅く」なる事です。(上手く説明できないので下図参照。)
24_10_28_1.png

実はこれまでに公開してきている過去作品の「シューティングゲーム」で斜め移動できるものは全て、縦横移動と同じ速さで(斜め移動時もX・Y座標それぞれ1ドット)移動しているので、斜めだけ早く移動します。(敵も同様。)
24_10_28_2.png

まぁ、過去作品の敵の弾は、まっすぐ下に進むタイプなので大きな問題にはならないのですが、今作は狙撃弾を予定しています。
という事は、弾は当然斜め方向だと遅くなります。
よって、プレイヤーが敵の狙撃弾から逃げる時、斜めに逃げると早く逃げれるという現象が発生します。
それは大きな問題です。

前置きが長くなりましたが、上記問題の解消の為、プレイヤーも敵も斜め方向は遅くします。

次回は、今回の内容に則ったプレイヤーの移動処理を組んでいきます。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年10月27日

【ゲーム制作】シューティングゲーム 第19回






シューティングゲーム 第19回です。
今回は背景の「疑似スクロール」処理を組んでいきます。

擬似スクロールは試作ディスクで紹介したSCREEN1.5のOUT命令版を利用します。
FONT作成時に作った絵柄をドットシフトしますので、4FONT×4FONT×3ブロック×8バイト=384バイト×2(パターン、カラー)=768バイト(&H300)分シフトとさせる必要があります。
結構な負荷になりますね…。

24_10_14_3.png
まずは、シフトに必要なFONTデータをワーク(&HBD00~&HBFFF)へ転送。

24_10_14_4.png
ワーク内でシフト処理して、OUT命令で一気にVRAMへ転送します。


良い感じです!
「SPRITE水平方向5枚以上表示」処理と「BGM演奏」した状態で、疑似スクロールをしています。
画面がチラついていますが、今後全体的に処理が遅くなると自然に直る(希望)と思いますので、今は放置します。
最後まで直らなければ、色を2色固定にしてパターンテーブルのみのスクロールにします(カラーの処理がなくなるので転送量は半分になる)、それで画面チラつかないことは確認済み。

次回は、プレイヤー移動を組んでいきます。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年10月26日

【ゲーム制作】シューティングゲーム 第18回






シューティングゲーム 第18回です。
今回はタイトル処理を組んでいきます。

タイトルは、前作そのままのBASICロジックで、タイトル画面で放っておくと、ストーリーに替わるパターンです。
こちらがタイトル。
24_10_13_1.png
少し時間に余裕があったので、縁取り加工をしてみました。
良い感じです。
タイトルが飛び出しているような立体にしても良かったのですが、今回はパス。
タイトルを「海底大冒険」から「海底大戦争」に変更。
元は同じでも違うものなんだよと意識づけの為に。

ロゴ表示、宣言通り「SINCE 1987」は除きました。
24_10_13_3.png
こっちの方がいいですね。

エンディングはストーリー以外、どんなのにするか考えていないので、最後の方でやります。

次回は、「疑似スクロール」を組んでいきます。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年10月25日

【ゲーム制作】シューティングゲーム 第17回






シューティングゲーム 第17回です。
今回はオープニング処理を組んでいきます。

オープニングは、いつものタイトル画面で放っておくと、ストーリーに替わるパターンです。
翻訳はやっぱり安定のMicrosoftの Bing翻訳 を使用。
詳細設計時に作ったストーリーを翻訳しています。

今作はストーリーが長い!
1画面に無理に収めるとギュウギュウになるので、上にスクロールするようにします。

さて、ストーリーが長いと翻訳結果を「STG.BAS」に手打ち入力する気にならない…。
なんとか、いつもの方法でできないか思案…。
あ、DATA文としてMSXに取り込んで、MERGE命令でくっつければいい。と、思い付きました。

・・・が!
MERGE命令って、どうやってやるんだっけ!?

全く持って、失念している…。
昔あんなにお世話になった命令なのに…。

色々なページを巡っても、今更詳しく乗っているページはない…。
止む無く、過去の記憶を呼び起こし、試行錯誤へ…。

結果。
24_10_24_1.png
「STG.BAS」 最後の行番号は1,340行
くっつけたい方(プログラムの前に来る方、今回は「STG.BAS」)をアスキーセーブ。(オプションで「,A」を付ける。)



SAVE [ファイル名],A


24_10_24_2.png
「オープニングデータ」 今回はRENUMしなくてもいいように最初から行番号に5,000番を付けました
くっつけられる側(オープニングデータ)のファイルを開き、行番号をくっつけたい側の最後の行番号より大きい番号からスタートするようにRENUM命令します。(今回の例だと、1,350番以上を付ければいいので5,000番を付番)



RENUM [新行番号][,旧行番号][,増分]


24_10_24_3.png



MERGE [アスキーセーブされたファイル名]


MERGE命令実行で、くっつきます。
この後、普通にファイルセーブ(SAVE "STG.BAS")すればOKです。

成功しました。

24_10_13_2.png
ちなみに、1ドットスムーズスクロールではありません。

次回は、タイトルを作成します。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年10月24日

【ゲーム制作】シューティングゲーム 第16回






シューティングゲーム 第16回です。
今回もBGM作曲です。

エンディング。
考えているエンディングシナリオが暗いので、あまり楽しそうなのは控えて…。

24_8_26_1.png
「MMLコンパイラ(通常版)」を使いデータ化。
「左SHIFT」+「F9」で高速実行。

24_10_11_2.png
テストも兼ねて、BGM PLAYER作りました。


簡単なBGMばかりですが、それなりにはなったかなと…。
ゲーム中は、Aチャンネルにソフトウェアエンベロープ掛けるので少し異なると思いますが、曲の雰囲気はつかめると思います。
いかがでしょうか?

次回は、オープニングを作成します。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年10月23日

【ゲーム制作】シューティングゲーム 第15回






シューティングゲーム 第15回です。
今回もBGM作曲です。

3面と、ボス戦。
ボス戦は特に「テンポ良く」、「激しく」が求められますよね。

地味に音符データからMMLデータへ変換して登録するのが面倒臭くて時間が掛かる…。(手動)
直接MSXで使えるMMLデータ吐き出してくれるツールないかしら…。

24_10_15_1.png
24_10_15_2.png
「MMLコンパイラ(通常版)」を使いデータ化。
「左SHIFT」+「F9」で高速実行。

次回も引き続きBGM作曲です。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年10月22日

【ゲーム制作】シューティングゲーム 第14回






シューティングゲーム 第14回です。
今回はBGM作曲です。

今まで後ろの方の工程だったBGMを、なぜ前に持ってきたのかと言うと、テストプレイ中にBGM鳴ってた方が、作ってるって実感沸くかなって…、それだけです。(集中力維持のため)
しかも、今作では、1面、2面、3面、ボス戦、エンディングと5曲もあります。
後半戦で前作みたいに集中力が途切れた状態で、5曲は難しいと思ったのも、最初に持ってきた理由です。

やっぱり、シューティングゲームのBGMは、「カッコいい」、「テンポが良い」、「臨場感がある」ですよね。
5曲一気には難しいので、とりあえず1面と、2面。

24_10_14_1.png
24_10_14_2.png
「MMLコンパイラ(通常版)」を使いデータ化。
「左SHIFT」+「F9」で高速実行。

次回も引き続きBGM作曲です。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発

2024年10月21日

【ゲーム制作】シューティングゲーム 第13回






シューティングゲーム 第13回です。
今回は、前回作成したサブルーチンのデバッグです。

いくつかのサブルーチンを使い、プログラムを実行してみます。
まず、ごっそりアドレス入替した「走査線割り込み処理」部分に関しては、アドレスエラーで相当数飛びました…。
やっと動いた時には、ちょっと涙出そうなくらいでした…。
サブルーチン群も若干アドレス入替ありましたが、こちらはおおむねエラーなし。

24_10_9_1.png
ゲーム画面が表示され、BGMが流れています。
仮に配置した敵で「SPRITE水平方向5枚以上表示」処理の動作の確認もできました。
それ以外のサブルーチン(16進数→10進数変換や、スコア表示等)も可能な限りチェック。
良い感じです。

一通りのデバック終わったので、次回はBGMを作曲します。
駿河屋
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | 開発
Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: