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

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

//4月20日 AM6:00追記
//オートボム使用時は自機上に表示するように変更しました
//4月21日 PM22:00追記
//ステージセレクトで4面を選択するといきなりボスが登場するのを修正しました。


ジョイスティックとキーボードを別々にボタン設定する処理を追加してVer4.5として公開します↓
Solid State SURVIVOR Ver4.5 (右クリック→対象をファイルに保存で保存して下さい。)

dd62b3b3.jpg
キーボードとジョイスティックで別々にボタン設定が可能になりました^^

この処理に関しては、もっと簡単に出来ると思っていたのですが思いのほか苦労しました^^;
というのも、ジョイスティックってボタンが4個以上ある物が殆どです。
で、私が使用しているプラグインのck Joyforce dllでは、ジョイスティックのボタン1からボタン4までが
それぞれキーボードのZXCVに対応しているのですが、ボタン5以上はキーボードの
どのキーにも対応していないんです。

なので、例えばショットボタンをジョイスティックのボタン6などに設定した場合は
キーボードからは操作出来なくなってしまうんです。
これでは、あまり具合が良くないなぁと思って、どうしたら良いか?と考えたところ
ジョイスティックとキーボードの設定を、完全に別々に分ければ良いのでは?と思って
色々考えてみました。

まず、ボタンの設定を変える方法ですが、これはck_joyconfig命令で変更出来ます。
例えば、zキーのキーコードは本来は2048なのですが、これのキーコードを64に変更したければ
ck_joyconfig 11,64,1
という風に記述すればOK。
今回の場合はZXCVを変更したかったので
ck_joyconfig 11,64,1
ck_joyconfig 12,256,1
ck_joyconfig 13,512,1
ck_joyconfig 14,1024,1
という風に変更しました。
で、64、256、512、1024には、それぞれ本来の対応したキーがあるので
それを
ck_joyconfig 6,0,1
ck_joyconfig 8,0,1
ck_joyconfig 9,0,1
ck_joyconfig 10,0,1
と記述して無効にしました。

これで、キーボードとジョイスティックを別々に設定できる!と思ってスクリプトを作ってみたのですが
非トリガーキー指定でつまずきました。
と言うのも、例えばボタン1(キーコード2048)を非トリガーキー指定しようと思った場合
ck_joystick ky,2048
と記述すれば、ボタン1の押しっぱなしを検出してくれます。

で、これと同様に上記のck_joyconfig命令でキーコードを変更したキーを指定すると
上手くいかないんですよね・・・
具体的には
ck_joyconfig 11,64,1
として
ck_joystick ky,64
としても、押しっぱなしを認識してくれないんです。
このキーの押しっぱなしを認識させる為には変更する前の数字で指定しなければならない事が
わかりました。
なので、この場合は
ck_joystick ky,2048
と記述すれば、押しっぱなしを認識させる事は可能なのですが、そうするとジョイスティックと
キーボードで別々の設定にした時に困ってしまうんですよ。

なので苦肉の策として、ゲームスタート時に使用したのがジョイスティックならゲーム中は
ジョイスティックを優先して押しっぱなしを認識するようにし
キーボードでゲームを開始した場合は、キーボードを優先して押しっぱなしを認識するように
しました。
とりあえず、これで困る事はないと思うのですが、もっと良い方法がわかったら変更しようかと
思っています。

あと、4面のリプレイがおかしかったのとランキング表示がおかしかったのも修正しました。
PR
この記事にコメントする
お名前
タイトル
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
無題
うーん、なかなか両設定に対応は難航されているようですね…。

不具合ですが、ステージセレクトで4面を開始すると、いきなりボスの最終形態との戦いから始まってしまいました。
ASD 2008/04/21(Mon)06:50:44 編集
無題
ASDさん>
思った以上に両方に対応するのは難しかったです^^;

ステージセレクトで4面を選ぶといきなりボスから始まってしまいますね・・・
デバック時のなごりで元に戻すのを忘れていました(汗)
ご報告ありがとう御座いましたm(_ _)m
kt. 2008/04/21(Mon)22:21:52 編集
無題
確認しました。

私のPC(dynabook EX1)は、付属のXPでは、何故かディスプレイドライバのアップデートが出来なかったんです。
インストールしようとしても弾かれてしまって…。
今回、思い切って手持ちのWin2000を入れてアップデートしてみました。
すると、かなりパフォーマンスが改善されたようで、
このS3も今までは3面も序盤等で処理落ちしていたのですが、
今回はほぼフルフレームで動きました。4面も同様です。
まさかドライバの更新だけでここまで性能が上がるとは思いませんでした。
2000に下げたことで多少軽くなったというのもあるかもしれませんが。
どうして東芝はアップデートできないようにしてたんだろう…。
ASD 2008/04/23(Wed)00:17:59 編集
無題
ASDさん>
確認ありがとう御座います^^

パフォーマンスについてですが、ひょっとすると
OSの違いでもかなり差があるのではないかと思っています。
と言うのも、家のパソコンでwin98の時はあまり重くなかったのに、同じパソコンをXPに入れ替えたらゲームの動作がとても重くなった事があるので。

なんにせよ軽くなったのは良い事ですね^^
今後とも宜しくお願いしますm(_ _)m
kt. 2008/04/24(Thu)12:05:46 編集
無題
Win98とXPではかなり違いますからねぇ。
そうなると今のPCは、VISTAのお陰でスペックが底上げされたと言いますが、それでも結構OSに食われてて発揮できてない部分は多いでしょうね。

OSは基本的な部分ですからできるだけ軽く作ってほしいものです。
ASD 2008/04/24(Thu)16:38:22 編集
この記事へのトラックバック
この記事にトラックバックする:
Twitter
カレンダー
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/20 kt.]
[04/19 うぇむ]
[11/24 kt.]
[11/21 NONAME]
[11/24 kt.]
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
忍者ブログ [PR]