0

フリップフロップの楽しみ

しばらくの間、c でゲームパッドを使用していくつかの関数をコーディングしようとしました。ゲームパッドでボタンを押したままにすると、呼び出しvexRT[Btn4D](「4D」は下方向の 4 番目のボタン セットを意味します) は true または false を返します。x などのブール値があり、ボタンを 1 回押して離すだけで「x」をオンにして、オンのままにしたい場合、定義済みの単純なメソッド/関数はありません。そこで私は時間をかけて、ここで見ることができる単純なフリップフロップを思いつきました:

if (vexRT[Btn7D]) {
        if (y)
            x = false;
        else
            x = true;
    }
    else if (counter == 0) {
        counter = 25;
        if (x)
            y = true;
        else
            y = false;
    }
    else
        counter--;

次に、単純に、 if (x) または if (!x) と言って、やりたいことを何でもすることができます。

問題は、ゲームパッドに 8 つのボタンがあり、それぞれに「フリップ」する独自の機能を持たせたいことです。コードを 8 回コピーして、x2 や counter2 などの新しい変数を作成することもできますが、これは冗長に思えます。コード全体を短縮する方法を作成しようとしましたが、うまくいかないことはわかっています。とにかくここにあります:

bool tFlip(bool x) {
bool y = !x;
if (y)
    return true;
else
    return false;
}

簡単に言えば、これらのことを適切にコーディングする方法を誰かが知っているなら、私はその方法を知りたいです. グーグルで検索してみましたが、何も見つかりません。ありがとう。

TLDR: フリップフロップのコーディング方法を知っている人はいますか?

編集:これはすべてループ内にあるため、単純に行うことはできません

x = !x

ボタンが押されていると継続的に呼び出されるため。x の値は、リリース時に基本的に「ランダム」になります。ネイティブのキーが押された/キーが押された検出方法がないため、 y は「キーが離されるまで待機」として機能するためにあります。

4

1 に答える 1