HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0916
kゲームパッドのボタンの同時押しについて教えてください(>_<)3解決


k

リンク

2010/9/16(Thu) 18:42:08|NO.35010


#include "mod_joystick.as" screen 0,100,300 repeat redraw 0 color 255,255,255 : boxf : color 0,0,0 joyGetPosEx data, 0 pos 0,0 : mes "stat = " + stat repeat 13 : mes ""+cnt+" "+data(cnt) : loop redraw 1 : await 30 loop

↑のはjoyGetPosExのサンプルをほんの少し見やすくしたものです。
data(8)に押されたボタンの数値が入ります。
data(9)には同時に押されているボタンの数が入っています。

現在ゲームパッドの情報を取得する練習をしているのですが、
分からないことが出てきたので教えていただけると嬉しいです。
今回困っているのは、ボタンを同時に押したときに
どのボタンが押されているのか分からなくなることです。
同時にボタンを押すとdata(8)に押されたボタンの数値の合計が入るのですが、
その数値でどのボタンとどのボタンが押されているか分かるようにするには
どうすればいいのでしょうか?
(あらかじめ全てのボタンの数値を一つ一つ分かっているとして。)
初心者な質問ですみません…。



この記事に返信する


ORZ

リンク

2010/9/16(Thu) 19:07:19|NO.35011

押されたボタンに割り当てられている、2のn乗の数値の合計値が入る。

ボタン1に1、ボタン2に2、ボタン3に4....と続く。
ボタン1とボタン5が同時押しされた場合、合計値には17と入っているであろう。
あとは調べろ。



GENKI

リンク

2010/9/16(Thu) 19:15:46|NO.35012

基本的な考え方はstick命令と同じです。
stick命令の使い方をきちんと理解できていれば難しくはありません。
取得した値は2進数表記にして考えると理解しやすいですよ。

関連資料:
http://hspdev-wiki.net/?%BE%AE%A5%EF%A5%B6%2Fstick%CC%BF%CE%E1%A4%CE%BB%C8%A4%A4%CA%FD



k

リンク

2010/9/16(Thu) 19:32:53|NO.35013

>>ORZさん
ヒントありがとうございます。
数値をを試しに全部2で割ってみたら本当に割り切れました。
今後のHSPのソフト制作で役立ちそうです。

>>GENKIさん
おお!なるほど。「&」を使って解決できそうです。
ありがとうございました!



ONION software Copyright 1997-2023(c) All rights reserved.