お知恵をお借りしたく質問させていただきます
1
4 2
3
ジョイパッドのボタン配置変更についてなのですが、
例えば、1のボタンを2に変更したとします
その時、同じボタンが存在しているのは不自然なので
2のボタンを1のボタンに変更させるわけですが、
これを考えれば考えるほどややこしくなります
1と2だけで考えるなら簡単ですが、
例えば1を3にして、3を1に変更、
さらに1に変更した3を2に変更する、
すると2は1に変更される
プレイヤーが制作者の意図する順にボタンを変更してくれるなら
組むのは簡単ですが、どの順番でどのボタンをどのボタンに変更するのかは
その時のプレイヤーの気分次第です
1
4 2
3
もしかすると、4を3に変更して
3が4になり、
2を1にして、1が2になり、
「やっぱやーめた」と言って
2になった1を1に戻し、1になった2は2に戻り、
4になった3を2に変更することにして、2が4になることもある
このように片方のボタンを別のボタンにした時に、
その変更前のボタンを自動的にそのボタンに変更する
というプログラムに頭を悩まされています
お知恵をお借りできればと思い質問させていただきました
1
4 2
3
1.1を2にすると2を1に変更する
2.1を3にすると3を1に変更する
3.1を4にすると4を1に変更する
4.2を1にすると1を2に変更する
5.2を3にすると3を2に変更する
6.2を4にすると4を2に変更する
7.3を1にすると1を3に変更する
8.3を2にすると2を3に変更する
9.3を4にすると4を3に変更する
10.4を1にすると1を4に変更する
11.4を2にすると2を4に変更する
12.4を3にすると3を4に変更する
ノーマルで考えるならこういうことになるのだが、
これは、それぞれのボタンがそれぞれのボタンの時のものです
1が2や3や4になっていたり、
2が1や3や4になっていたり、
3が1や2や4になっていたり、
4が1や2や3になっている場合もある
それらのパタンもすべて考えると、かなりたくさんの条件式になってしまうので、
もっと短く簡潔にできないかなと考えています。
ボタンは4つしかないのです
片方を別のボタンに変更したら、変更前のボタンを変更後ボタンが
元あった場所のボタンに自動的に変更させる
という仕組みを考えれば考えるほどややこしくなるぜ
もしかしたら全ボタン2にしたいかもしれないのでそのままにする!
やった!かっちょよく決まった!
変更前のボタンを一時的に記憶する。
ボタンを変更する。
変更後のボタンと重複してるのをループで探す。
(さっき変更したところはスキップ)
見つけたらそこを一時的に記憶したので上書きする。
単純にボタン番号をスワップしてるだけにしか見えないんだが
複雑になるのか?
何を悩んでるのかがわからないw
初期状態が、
ButtonMap[0]=1
ButtonMap[1]=2
ButtonMap[2]=3
ButtonMap[3]=4
で、これを入れ替えるとすると、
たとえばswap(&ButtonMap[1],&ButtonMap[3])で、2と4を入れ替えて
ButtonMap[0]=1
ButtonMap[1]=4
ButtonMap[2]=3
ButtonMap[3]=2
になるとかいう話じゃなかったりするのか?
826 :
名前は開発中のものです。:2013/05/24(金) 11:02:17.17 ID:u2VY/BUA
プッ