Path: chuka.playstation.co.uk!news1.scei.co.jp!usenet From: Yuichiro Okamura Newsgroups: playstation.ny.program.beginner Subject: Re: =?iso-2022-jp?B?GyRCJVElQyVJJE5GSSRfPGgkahsoQg==?= Date: Sun, 22 Mar 1998 23:58:58 +0900 Organization: PlayStation Net Yarouze Lines: 59 Message-ID: <35152732.9BD7F1F8@ba.mbn.or.jp> References: <35144557.7D2E@ed.noda.sut.ac.jp> NNTP-Posting-Host: 202.217.122.171 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 4.04 [ja] (Win95; I) tako wrote: > いくら軽く押しても何回も情報を読んでしまいます > つまりRPGのコマンドなどを選ぶ時に1つ下のコマンドを選ぼうと > 下を1回押しても何個も下に動いてしまうということです. > 具体的には下を押しっぱなしで2秒までは1つ下を選択,その後はすこし速くカ > ーソルを > 移動する,などです. こちらこそ始めまして。Yuuです。 下を1回おして何度も情報を得てしまうのを防ぐには、前の入力では押していない が、 今は押しているというとこを検出すればOKです。プログラム方法は int key; //今のキー int old_key; //前のキー if((key&PADLdown)!=0 && (old_key&PADLdown)==0){ //ここにしたが押されたときの 処理 } old_key = key; でもできますが普通トリガーというのをつくって int key,old_key,triger; triger = (~old_key) & key; //トリガーをつくる if(triger&PADLdown){ //ここにしたが押されたときの処理 } old_key = key; で手軽に使えます。 下を押して2秒したらどんどん切り替えるときなんかは押されているときにカウント アップされるカウンターを 使えばいいです。 int ctr=0; //カウンター if(key&PADLdown) ctr++; else ctr=0; if(ctr >= 60*2){ if((ctr - 60*2) % 30 == 0) { 1個下に切り替える。ちなみにフレームレートは60と想定して、2秒は1 20フレーム 少しわかりにくいがこうすると2秒後に下に一段下がって、その後キーを押 しっぱなしにしていたら 0.5秒(=30フレーム)ごとに下につぎつぎと切り替わる。 } } とすれば、単純にできると思います。 Yuu(seryu@ba.mbn.or.jp)