アフィリエイト広告を利用しています
 

2023年07月11日

Laboratoryテーマ12「「Ctrl」+「STOP」が押されたか調べたい」




今回は、Laboratoryテーマ12「「Ctrl」+「STOP」が押されたか調べたい」です。
Laboratoryの続きは3DダンジョンRPG完成後と言っていたのですが、マウス動かなくてストレスですので、気分転換も兼ねて追加した簡単なテーマを全部一気に。
現実逃避ともいう…。

マシン語を起動させると、プログラムが終了するまで中断させることは出来ません。
そこで、BASICと同じように「Ctrl」+「STOP」が押されたらプログラム中断するように、メインループに組み込んで使います。

今回は特に難しいことはありません。
ただ、そういう機能があることを知らないと、結構面倒臭いことをしないといけないので、機能を紹介します。

MSXには、どのMSXでも必ず動作するプログラムが作れるように「BIOS」(バイオス、Basic Input Output System)というサブルーチン群が用意されています。
そのBIOSに「Ctrl」+「STOP」が押されたか調べるサブルーチンが用意されています。
BIOSの使い方は簡単で、必要なデータを所定のレジスタに設定し、目的に応じたBIOSをコールするだけです。















ラベル名アドレス変化するレジスタ使い方
BREAKX&H00B7AFコールした時、「Ctrl」+「STOP」が押されていればCyフラグがセット、押されていなければCyフラグがリセットされる。


これまでの私自作のサンプルでも、当たり前のように使っています。
410行で、「Ctrl」+「STOP」が押されたか調べ、押されていればBASICに返ってきます。
7_14_1.png

では、次回はLaboratoryテーマ13「「GRAPH」キーが押されたか調べたい」です。
posted by J-JSOFT at 13:00 | Comment(0) | TrackBack(0) | Laboratory

2023年07月10日

【ゲーム制作】3Dダンジョンロールプレイングゲーム 第5回



3Dダンジョンロールプレイングゲーム第5回目です。
未だマウスが使えず、全くFONT作成捗りません。

昨日1日掛けて「BlueMSX」の他、いろんなMSXエミュレータ触って試しましたが、どれもマウス動かない…。
おかげで更新1日空いてしまいました。
うーん、これだけやって動かないって事は、もしや実機でも動かない可能性もあるのかな?
実機持ってないので試せません…。

とりあえず制作進めるために簡単にFONT作成したので、しばらくはこの(仮)FONTで進めます。
(仮)なので非常に雑ですが、画面イメージはこんな感じになります。
7_11_1.png
とりあえず、ジョイスティック使ってポチポチドット打ちして制作しました。
あぁ、面倒臭い!
敵モンスターのデザイン始める頃に、まだマウス使えなかったら止めるかも…。

では、システム面を考えていきます。
見た目はレトロでも、操作性に関するシステムは新しいもので行きたいと思います。

【設定@】自動マッピング機能の有無?
【決定】今回は広いマップを作るわけでもないので、「無し」でいきます。

【設定A】メッセージエリアにステータス等を表示するか?
【決定】メッセージエリアを分割すると狭く感じるから、メッセージエリアは基本メッセージのみ。
コマンドメニュー等をBボタンでメッセージエリアにメニュー表示。(上部に表示するとFONT書き換えが必要になり遅くなるから。)

【設定B】そうするとメッセージエリアが狭くないか?
【決定】昔よくあった「見る」「調べる」など面倒くさいコマンドはなくして選択肢を減らす。
だから宝箱などがあった際は、Aボタンで開く。
人がいた場合も、Aボタンで話す。

【設定C】パーティ制の採用?
【決定】うーん…、本格的なものは次にするので、今回はソロでいきます。

【設定D】アイテム、お店、宿屋の有無?
【決定】必要なので、スタート地点の壁に商人と宿を埋め込んで置いておくことにします。

…とりあえず、現段階ではこれくらい決めておけば大丈夫。
パーティ制でなければ、初期段階でそこまでガチガチに決めなければならないこともないかな。
色々無理そうなら、都度方針変更の予定です。

次回からプログラムに入ります。

posted by J-JSOFT at 22:30 | Comment(0) | TrackBack(0) | 開発

2023年07月08日

Laboratoryテーマ追加!




6_2_1.png
突然ですが、「Laboratory」のテーマを追加しました。
あちこち色んなサイトを見てきましたが、「初心者には必要かな?」と思われるのにあまり紹介されていないロジックを「Laboratory」に4テーマ追加しました。
(まぁ、「初心者がいないのでは?」と言われればそれまでなのですが…。)
中には「Laboratory」のテーマとして挙げる程のものでもないのもありますが、他に紹介するカテゴリがないので取り敢えず「Laboratory」で。










テーマ
12「Ctrl」+「STOP」が押されたか調べたい

初心者がマシン語でしがちなのが「永久ループ」。
私もよくしました…。
ですのでこれは必須です。
メインループに組み込めば、いつでもどこでもプログラムを止められます。
当然ですが、暴走を止めるのは不可能です。







13「GRAPH」キーが押されたか調べたい

ゲームのコントローラーとしてキーボードを使う時、ジョイスティックのBボタンに該当するキーとして、「GRAPH」キーが良く利用されます。
その「GRAPH」キーが押されたかの調べ方です。
と言うか、キーボード全キーの押されたかの調べ方です。







14簡単にBGMを鳴らしたい

本格的でない、簡易BGM演奏ルーチンです。
ここまでに公開している自作ゲーム(作品10)までは、これに近い(もっと簡易)ルーチンでBGMを鳴らしています。
本格的になると、ドラムっぽいのを鳴らしたり、デチューンかけられたりしますが、そうなると今度はBGMデータの製作が大変になります。
なので、とりあえず「無音は寂しいから何か鳴らしたい。」という人向け。







15任意サイズのFONTキャラクタを指定座標に表示したい

意外と他のサイトで説明されていないのがこれ。
ボスキャラ表示など、大きめのFONTキャラクタを表示するサブルーチンです。
私が初心者の頃は大きなキャラクタ表示させるの大変だったんだけどなぁ…。(まぁ、力技で何とかなりますが…。)
BレジスタにX座標、CレジスタにY座標、Dレジスタに横キャラ数、Eレジスタに縦キャラ数、HLレジスタにキャラデータのある先頭アドレスを入れてコールすると、任意サイズのFONTキャラクタを指定座標に表示します。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | Laboratory

2023年07月07日

BlueMSXでマウス動かず(再チャレンジ!)

4_19_1.png
あれから何度もチャレンジしていますが、やっぱり「FONT EDITOR」でマウス動かない…。
おかげで全然3DダンジョンRPGのFONT製作進まない…。
FONT制作進まないと、やる気起きません…。
(私は先にキャラクタを制作して、それを見て気分を盛り上げながら、プログラミングに入るタイプです。)
ジョイスティックは問題なく動くのに…。
やっぱり自分のパソコンがペンタブ(液タブも使う)接続環境だからダメなのかな?

よし!
一度、マウスだけの環境のノートパソコンで試してみよう。

「ツール」の「コントローラー/キーボード構成編集」を開き、「Joystick1」を「マウス」に設定。
BlueMSX再起動。

…動かん!
ノートパソコンも再起動。

…動かん!!
なんでだろう?
ノートパソコンだから、タッチパッドがいけないのか?
念のためWebMSXでも試しに。

…動かん!!!
あぁ、ストレスです…。
うーん…、あと何が考えられますか?
誰かご教授くださいー!
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | MSX雑記

2023年07月06日

Laboratoryテーマ9「32方向弾」そのB




7_8_1.png

Laboratoryテーマ9「32方向弾」そのB、最終回です。
Laboratoryテーマ8「32枚を超えてSPRITEを表示させたい(非走査線割込)」が未公開なので、敵と自機はFONTで作成しました。
敵はそれを動かしています。
(自機の上を敵が通ると、自機消えちゃいますけど気にしない…。)
動作は、十字キーの↑で4方向弾、→で8方向弾、↓で16方向弾、←で32方向弾を敵が撃ちます。
全弾空いている時にしか撃てません。

ロジック的には前回書いた通り、データは16バイト分しか用意していません。(&HC078~&HC087)
処理速度的には32方向弾の時はさすがに重いかな?
これは弾道計算で遅いのではなく、キャラクタ処理で遅くなっているのでやむ無しです…。

BASIC部分のサンプルプログラムです。

「32SMPL.BAS」【ダウンロード

7_8_2.png

スカスカですが、変数表です。
7_8_4.png

マシン語のサンプルです。
起動すると、32SMPL.BINを作成します。

「BINSET.BAS」【ダウンロード

7_8_3.png

計算関係のサブルーチンは、すべて削除してあります。
弾のデータセットは、1,030行〜1,270行(&HC298~&HC317)までの128バイトです。
まぁまぁ短くできたかなと思います。

では、今度こそ本当に、ここで一旦Laboratoryは中断して3DダンジョンRPGの制作に専念します。(2023年6月26日記事参照「開発案件広げすぎ…」)
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | Laboratory

2023年07月05日

Laboratoryテーマ9「32方向弾」そのA




さて、Laboratoryテーマ9「32方向弾」そのAです。

現在サンプルプログラム準備中です。
そこで今回は、データベース作成時のデータ順を説明します。
32方向弾のデータベースですが、データ配列を工夫することで、そのデータベースのまま16方向弾、8方向弾でも流用できます。
因みに16方向弾と8方向弾のデータ表です。
7_5_1.png

お気付きかと思いますが、8方向弾のデータは16方向弾のデータに完全に含まれています。
当然、16方向弾のデータは32方向弾のデータに含まれます。

という事は、弾にデータをセットする順番は決まっていないので、データベースを8方向弾、16方向弾、32方向弾の順に登録してやればいいのです。
7_5_2.png
実際のデータベース登録順です。
8方向弾の場合は先頭から2弾分、16方向弾の場合は4弾分を読み込み、4エリア分セットすれば良いという事です。

次回サンプルを用意します。
今回の実践もかねて、十字キーの↑で4方向弾、→で8方向弾、↓で16方向弾、←で32方向弾を撃てるサンプルにしますね。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | Laboratory

2023年07月04日

作品I流行りもの

次はこれ。
当時流行っていた「テトリス」を作ってみました。
g28_t.png
■主な新テクニック
 ・特になし

こちらも友人の依頼で懐かしいゲームを真似て作りました。
実は巷で流行っていたのですが、私は全く存在を知らずこのゲームも依頼者から「こんな風に動く」と聞きながら作りました。
ですので、細かな動作はオリジナルと異なります。(ブロックの速度が上がった時の横移動など)
ライセンサーはどこなんだろう?
「ザ・テトリス・カンパニー」で、良いのかな?
(もし違っていたらご指摘ください。)
g28_1.png
































タイトル『 テトリス 』作品10
内容上から落下するブロックを横移動・回転させて上手く積み、横一列ブロックで埋まったらその列は消えます。次のブロックが落下できなくなったらゲームオーバーです。
操作方法

起動し、しばらくしてタイトルが表示されたら、Aボタンでゲーム開始

十字キーの「←」、「→」で、ブロックを左右に移動

Aボタンで、ブロック落下

Bボタンで、ブロック回転
対応機種MSX1、MSX2、MSX2+製作年1988年
ダウンロードリンク先へジャンルパズル
ライセンステトリスはザ・テトリス・カンパニーの登録商標です。






※ゲーム内のキャラクタ、音楽は制作当時の物です。

公開前提に製作していないため、雑誌等から流用している物もあるかも知れませんので、著作権侵害の恐れのあるものは、ご連絡をお願いします。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | MSX回顧録

2023年07月03日

Laboratoryテーマ9「32方向弾」その@




さて、今回はLaboratoryテーマ9「32方向弾」です。
「あれ? 3DダンジョンRPGが終わった後じゃなかったっけ?」と思われた方、正解。
実は私のMSX仲間(プログラマーに非ず)から久しぶりに連絡があって、「先日の16方向弾の動画面白かった! 32方向弾やって!」と、要請されました。
思わぬYouTube効果に驚き。
というか、貴方プログラミングしないでしょう?
経緯を説明し、「3DダンジョンRPGが終わってからね。」と説明するも、「誰も見てないブログだろ?」と言われ、ショックのあまり了承してしまいました…。
まぁ確かに、反応があった方を優先したいですが…。

一応、「32方向弾は自機・敵含めSPRITE同時表示32枚以上だから、せめてLaboratoryテーマ8「32枚を超えてSPRITEを表示させたい(非走査線割込)」の後で。」と抵抗はしましたが、「誰も見てないブログだろ?」とダメ出しされ、観念しました…。

余りにも唐突だったので、サンプルプログラム何も手を付けていないので、今回は考え方のみ。
そう、前回書いた「なんちゃって弾道計算」です。(2023年6月7日記事参照「しまった」)

いくらマシン語とは言え、32回も同時に三角関数を使った弾道計算するとなると、さすがに重くなります。(やった事ないから真偽不明ですが…。)
Laboratoryテーマ6「自機に向かって飛んでくる敵弾」は、自機と敵の位置が常に不定の為、計算して算出するしかないのですが、32方向弾は飛んでいく方向と速度は決まってるんです。
という事は、事前に移動量と方向をデータベース化しておけば、わざわざ時間のかかる計算をしなくてもいいのです!

因みに、32方向弾は一弾当たりの角度が、360°÷32方向=11.25°となります。
角度に対応した長さを事前に三角関数で計算しておきます。
データ容量は、32方向のX・Y移動量なので、32方向×2(X・Y)=64byteで済みます。
7_3_1.png
ここで、察しの良い方は気付かれたと思いますが、符号の変化と、X・Y移動量が逆転しているだけで90°ずつ同じ値なのです。
この符号は、Laboratoryテーマ6「自機に向かって飛んでくる敵弾」の時の4つにエリア分けした符号と同じです。
それらを利用して実際に用意するデータは64byte÷4エリア=16byte分用意し、32弾÷4エリア=8弾毎に値とエリアをセットしてやれば良いのです。
7_3_2.png
と、言う訳で「なんちゃって弾道計算」は、データベースを読んで弾のX・Y移動量と、エリアをセットするロジックとなります。
弾道計算と言いながら、計算すらしないロジックです。
それでも、これだと非常に早いし、ロジックも簡単です。

次回サンプルを用意します。
posted by J-JSOFT at 00:00 | Comment(0) | TrackBack(0) | Laboratory

2023年07月02日

細かく修正F

4_19_1.png

Laboratory」の全記事に、初回テーマメニュー記事へのリンク追加。
これですぐ、メニューに戻れます。
あと、マシン語サンプルのプログラム画像に、サブルーチン化して組み込む際に変更しないといけないアドレス部分を解り易くしました。
それと、サブルーチンコールする際に必要なレジスタと値、返されるレジスタと値を、解り易い様表にしました。

あと、「動画があった方が速さが判っていいかな?」と思った、
・Laboratoryテーマ6「自機に向かって飛んでくる敵弾 そのA」のBASICサンプル
MAP8 EDITOR 活用方法のサンプル
に動画を追加しました。

ダウンロード」に「サンプル」メニュー追加、主にLaboratoryで公開したサンプルプログラムの掲載記事へのリンク追加

あと前回同様、「ダウンロード」に追加で新規公開したゲームやツールの記事へのリンク追加、「Laboratory」初回テーマメニューの公開分記事へのリンク追加。

それ以外は、画像の貼り直しや、記事の誤記の修正程度です。

2023年07月01日

YouTubeチャンネル開設!

4_19_1.png
(笑)
今更ながらYouTubeチャンネル開設しました。
この歳になって初です。
開設は「こんな簡単でいいの!?」ってくらい、思っていた以上に簡単でした。

なぜ今YouTubeチャンネル開設したのかと言うと、サンプルやゲームがどんな動きをするのか?を見たくても、現状だとわざわざディスクイメージをダウンロードして、WebMSX等で起動してみないと分かりませんよね?
考えてみれば結構ハードル高いな…と。
そう言う訳で、すぐに動画で動きを見られるようにYouTubeを活用していきます!

まずは、Laboratoryテーマ6「自機に向かって飛んでくる敵弾」で実践。
敵が自機に向かって弾を16発撃つ様子をアップします。

やっぱり動画があるとイメージ湧きやすいですよね。
動画で興味を持ってもらい、そこからダウンロードしてもらう方が良いですよね。


ついでに16方向弾もアップ!

過去のゲーム公開記事も、時間のある時に徐々に動画にしていきたいと思います。
検索
<< 2023年07月 >>
            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          
広告
最新記事
ブログランキング
にほんブログ村 ゲームブログ ゲーム制作へ
プロフィール
J-JSOFTさんの画像
J-JSOFT
高校時代、あれほど熱心に取り組んだMSXに触れなくなって30年余…。 MSXエミュレータとの出会いで、MSX愛が再燃中。
プロフィール
カテゴリーアーカイブ
ファン
QRコード