ページ 1 / 1
キー入力が上手くいきません
Posted: 2009年2月26日(木) 00:07
by KEYONN_
DXライブラリを使って、
UFOキャッチャーゲームを作っているのですが、上手くいきません。
どういう風にうまく行かないのかというと、
”キャッチャーをZキーで右へ移動の後にXキーで下に下ろす。”
これが出来ません。
Z、Xキーそれぞれのキーを押したのを判定するのは出来るのですが、
状態遷移が上手くいきません。
ソースコードを一部添付するので、見てもらえますか?
Re:キー入力が上手くいきません
Posted: 2009年2月26日(木) 01:52
by kazuoni
まず仕様がわからないのでアドバイスができません。
まずいところをとりあえずあげておきます。
counter,counter2ともに入力がなければずっとデクリメントしていますが、
放置時間が続くとオーバーフローします。
またここも仕様がわからないので何とも言えませんが、
結構な間放置したあと(counter,counter2は負に大きな数)
zキーが数百ループ(数秒間)押されたとします。(2ずつインクリメント×数百)
counterは負に大きな数ですので、絶対にif文の条件をみたし、flag=0となります。
しかし、、ゲーム開始早々zキーを押したままだとずっと2ずつインクリメントしてます。
ゆえにzキーを離してもif文に合致せず、フラグが立ちません。
xキーも同様です。
フラグの使い分けは自分の意図したようになっていますか?
一度counter,counter2の変数の移り変わりを画面に表示してみると分かりやすいと思いますよ。
Re:キー入力が上手くいきません
Posted: 2009年2月26日(木) 17:14
by KEYONN_
キーの離された瞬間を処理したら、うまくいきました。
ありがとうございました。
今日、一日授業中に作っていたのですが、
なんとか形にはなりました。
ただ、UFOキャッチャーとオブジェクトの当たり判定が
うまくいきません。
Re:キー入力が上手くいきません
Posted: 2009年2月26日(木) 17:38
by kazuoni
うまくいきませんとおっしゃられても、添付されているファイル
の中にはそれらしき画像ファイルはありませんし、その処理も見当たりません。
もう一度ソースファイルをUPされては?
(自分はテスト勉強しなければいけないので^^;)
Re:当たり判定がうまくいきません。
Posted: 2009年2月26日(木) 17:43
by KEYONN_
>うまくいきませんとおっしゃられても、添付されているファイル
>の中にはそれらしき画像ファイルはありませんし、その処理も見当たりません。
>もう一度ソースファイルをUPされては?
>(自分はテスト勉強しなければいけないので^^;)
すみません。
こっちの都合ばかり考えてましたが、いけませんでしたね。
ソースファイルをUPします。
Re:当たり判定がうまくいきません。
Posted: 2009年2月26日(木) 18:37
by toyo
x,yの範囲はcatcher.pngから適当に判断しました
void HitCheck(int x,int y)
{
int i;
for(i=0;i<MAX;i++)
{
if(Ball.x > x+8 && Ball.x+Ball.width < x+116 &&
Ball.y > y+370 && Ball.y+Ball.height < y+470 )
{
Ball.putonflag=1;
}
}
}
Re:当たり判定がうまくいきません。
Posted: 2009年2月26日(木) 19:32
by KEYONN_
toyoさんへ
ありがとうございます。
おかげで、少しシビアなゲームになりそうです。
あとは、コインの数が0になったとき、下にスクロールして、
落ちたものを確認する状態で、きちんと確認できれば最高です。
Re:当たり判定がうまくいきません。
Posted: 2009年2月26日(木) 20:08
by toyo
私のソースではボール全体が枠内にないと掴めません
大きいボールは掴めませんがそれでよかったのでしょうか
Re:当たり判定がうまくいきません。
Posted: 2009年2月26日(木) 20:18
by KEYONN_
toyoさんへ
大きいボールは、もう少し小さくします。
そして、キャッチャーで拾えるようにします。
心配をおかけして、すみません。
Re:当たり判定がうまくいきません。
Posted: 2009年2月27日(金) 18:07
by KEYONN_
自分でやってみた結果、
全ての処理が上手くいきましたので、完成です。
まあ、あと、少し手を加えますが…。