まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ジョイスティックのコンフィグを実装しようと思って、まずck_joyforceの説明書を読んでみました。
すると「● ck_joyconfig 0~15, 0~, (0)~ ;// ck_joystick命令で取得されるキーコードを変更する」
と言う命令を見つけ、これを使えばエエんかな?と思い色々と試してみたのですが
どうも上手く行きませんでした。
で、ここで頭をもう一度最初に戻って考えてみました。
例えば、ボタン1で弾を発射させる場合、スクリプトは↓みたいな感じで書きますよね。
ck_joystick ky,2048
if ky&2048 : {hassya=1}else{hassya=0}
これをボタン2で発射させたいと思ったら↓になります。
ck_joystick ky,4096
if ky&4096 : {hassya=1}else{hassya=0}
つまり、この数字の部分を変数にしてキーコードをその変数に入れておけば
自由に発射キーを変更する事が出来るようになると言う事です。
ck_joystick ky,key1
if ky&key1 : {hassya=1}else{hassya=0}
こんな感じで書いて、key1に2048とか4096とか8192とかが入れば良いって事です。
これを踏まえて以前作ったリプレイのスクリプトを流用して
簡単なキーコンフィグスクリプトを作ってみました↓
キーコンフィグスクリプト
これを実行すると最初に発射キーにしたいボタンを押すと
そのキーが発射キーになりゲームがスタートします。
まず最初にココでキーの入力を待っています↓
ck_joystick ky
key1=ky
if key1>2047 : goto *main
変数key1にジョイスティックで押されたボタンのキーコードが入力されます。
なんで2047以上にしてるかと言うと、ジョイスティックの十字キー以外のボタンのキーコードが
2048以上だからです。
そうしないと、十字キーで発射って言う設定にも出来てしまうので・・・
で、メインループでは↓のようにしてキーのチェックをすれば
自由にキーの変更が出来るようになりました^^
ck_joystick ky,15+key1
if ky&1 :px-=3
if ky&4 :px+=3
if ky&2 :py-=3
if ky&8 :py+=3
if ky&key1 {hassya=1}else{hassya=0}
でも、この方法だとキーボードの場合の変更はZXCVしか変更できません。
ck_joyconfig命令が使いこなせたらもっと色々と設定出来るんだと思うんですが
まぁ、キーボードの場合はZXCVが変更できれば十分かな?と自分に良いように考えてます(笑)
すると「● ck_joyconfig 0~15, 0~, (0)~ ;// ck_joystick命令で取得されるキーコードを変更する」
と言う命令を見つけ、これを使えばエエんかな?と思い色々と試してみたのですが
どうも上手く行きませんでした。
で、ここで頭をもう一度最初に戻って考えてみました。
例えば、ボタン1で弾を発射させる場合、スクリプトは↓みたいな感じで書きますよね。
ck_joystick ky,2048
if ky&2048 : {hassya=1}else{hassya=0}
これをボタン2で発射させたいと思ったら↓になります。
ck_joystick ky,4096
if ky&4096 : {hassya=1}else{hassya=0}
つまり、この数字の部分を変数にしてキーコードをその変数に入れておけば
自由に発射キーを変更する事が出来るようになると言う事です。
ck_joystick ky,key1
if ky&key1 : {hassya=1}else{hassya=0}
こんな感じで書いて、key1に2048とか4096とか8192とかが入れば良いって事です。
これを踏まえて以前作ったリプレイのスクリプトを流用して
簡単なキーコンフィグスクリプトを作ってみました↓
キーコンフィグスクリプト
これを実行すると最初に発射キーにしたいボタンを押すと
そのキーが発射キーになりゲームがスタートします。
まず最初にココでキーの入力を待っています↓
ck_joystick ky
key1=ky
if key1>2047 : goto *main
変数key1にジョイスティックで押されたボタンのキーコードが入力されます。
なんで2047以上にしてるかと言うと、ジョイスティックの十字キー以外のボタンのキーコードが
2048以上だからです。
そうしないと、十字キーで発射って言う設定にも出来てしまうので・・・
で、メインループでは↓のようにしてキーのチェックをすれば
自由にキーの変更が出来るようになりました^^
ck_joystick ky,15+key1
if ky&1 :px-=3
if ky&4 :px+=3
if ky&2 :py-=3
if ky&8 :py+=3
if ky&key1 {hassya=1}else{hassya=0}
でも、この方法だとキーボードの場合の変更はZXCVしか変更できません。
ck_joyconfig命令が使いこなせたらもっと色々と設定出来るんだと思うんですが
まぁ、キーボードの場合はZXCVが変更できれば十分かな?と自分に良いように考えてます(笑)
PR
この記事にコメントする
レポート色々
前回のコメント、なぜか文字が背景と同一色でした。すみません。
キーコンフィグも実装されて我が家のリアルアーケードPro環境でも俄然プレイしやすくなりました(笑)
ところで、サウンドテストはうちの環境ではガンガン落ちまくっていたのですが、メモリを増やしたらあまり落ちなくなりました。再現性がないのでそれが原因かわからないんですけどね。
(Athlon64x2 4200+,GeForce 7600GT,2Gメモリ,WinXP)
何気にiniファイルも実装されているところがさすがです。こういうきちんとしたiniファイルだとメモ帳などで編集できて便利ですよね。
ちなみにサウンドテストのメーターはうちの環境では動きません。スピーカー出力をラインインか、マイクに差せばなんとかなりそうですが……オーディオインターフェースからギターを入力している関係で差し替えが面倒です(笑)上手い方法があるといいですね。
あとは問題なく動作しています。
ではでは。
キーコンフィグも実装されて我が家のリアルアーケードPro環境でも俄然プレイしやすくなりました(笑)
ところで、サウンドテストはうちの環境ではガンガン落ちまくっていたのですが、メモリを増やしたらあまり落ちなくなりました。再現性がないのでそれが原因かわからないんですけどね。
(Athlon64x2 4200+,GeForce 7600GT,2Gメモリ,WinXP)
何気にiniファイルも実装されているところがさすがです。こういうきちんとしたiniファイルだとメモ帳などで編集できて便利ですよね。
ちなみにサウンドテストのメーターはうちの環境では動きません。スピーカー出力をラインインか、マイクに差せばなんとかなりそうですが……オーディオインターフェースからギターを入力している関係で差し替えが面倒です(笑)上手い方法があるといいですね。
あとは問題なく動作しています。
ではでは。
カレンダー
10 | 2024/11 | 12 |
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 |
リンク
カテゴリー
最新記事
(04/04)
(12/26)
(12/25)
(11/17)
(10/11)
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
最古記事