キー入力が上手くいきません

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
KEYONN_

キー入力が上手くいきません

#1

投稿記事 by KEYONN_ » 16年前

DXライブラリを使って、
UFOキャッチャーゲームを作っているのですが、上手くいきません。
どういう風にうまく行かないのかというと、
”キャッチャーをZキーで右へ移動の後にXキーで下に下ろす。”
これが出来ません。
Z、Xキーそれぞれのキーを押したのを判定するのは出来るのですが、
状態遷移が上手くいきません。
ソースコードを一部添付するので、見てもらえますか?

kazuoni

Re:キー入力が上手くいきません

#2

投稿記事 by kazuoni » 16年前

まず仕様がわからないのでアドバイスができません。

まずいところをとりあえずあげておきます。
counter,counter2ともに入力がなければずっとデクリメントしていますが、
放置時間が続くとオーバーフローします。

またここも仕様がわからないので何とも言えませんが、
結構な間放置したあと(counter,counter2は負に大きな数)
zキーが数百ループ(数秒間)押されたとします。(2ずつインクリメント×数百)
counterは負に大きな数ですので、絶対にif文の条件をみたし、flag=0となります。
しかし、、ゲーム開始早々zキーを押したままだとずっと2ずつインクリメントしてます。
ゆえにzキーを離してもif文に合致せず、フラグが立ちません。
xキーも同様です。
フラグの使い分けは自分の意図したようになっていますか?

一度counter,counter2の変数の移り変わりを画面に表示してみると分かりやすいと思いますよ。

KEYONN_

Re:キー入力が上手くいきません

#3

投稿記事 by KEYONN_ » 16年前

キーの離された瞬間を処理したら、うまくいきました。
ありがとうございました。
今日、一日授業中に作っていたのですが、
なんとか形にはなりました。

ただ、UFOキャッチャーとオブジェクトの当たり判定が
うまくいきません。

kazuoni

Re:キー入力が上手くいきません

#4

投稿記事 by kazuoni » 16年前

うまくいきませんとおっしゃられても、添付されているファイル
の中にはそれらしき画像ファイルはありませんし、その処理も見当たりません。
もう一度ソースファイルをUPされては?
(自分はテスト勉強しなければいけないので^^;)

KEYONN_

Re:当たり判定がうまくいきません。

#5

投稿記事 by KEYONN_ » 16年前

>うまくいきませんとおっしゃられても、添付されているファイル
>の中にはそれらしき画像ファイルはありませんし、その処理も見当たりません。
>もう一度ソースファイルをUPされては?
>(自分はテスト勉強しなければいけないので^^;)
すみません。
こっちの都合ばかり考えてましたが、いけませんでしたね。
ソースファイルをUPします。

toyo

Re:当たり判定がうまくいきません。

#6

投稿記事 by toyo » 16年前

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;
        }
    }
}

KEYONN_

Re:当たり判定がうまくいきません。

#7

投稿記事 by KEYONN_ » 16年前

toyoさんへ

ありがとうございます。
おかげで、少しシビアなゲームになりそうです。

あとは、コインの数が0になったとき、下にスクロールして、
落ちたものを確認する状態で、きちんと確認できれば最高です。

toyo

Re:当たり判定がうまくいきません。

#8

投稿記事 by toyo » 16年前

私のソースではボール全体が枠内にないと掴めません
大きいボールは掴めませんがそれでよかったのでしょうか

KEYONN_

Re:当たり判定がうまくいきません。

#9

投稿記事 by KEYONN_ » 16年前

toyoさんへ

大きいボールは、もう少し小さくします。
そして、キャッチャーで拾えるようにします。
心配をおかけして、すみません。

KEYONN_

Re:当たり判定がうまくいきません。

#10

投稿記事 by KEYONN_ » 16年前

自分でやってみた結果、
全ての処理が上手くいきましたので、完成です。
まあ、あと、少し手を加えますが…。

閉鎖

“C言語何でも質問掲示板” へ戻る