ページ 11

キーを操作不可能にするには

Posted: 2011年2月26日(土) 09:18
by まさかりたろう
こんにちは。

質問なのですが、
フェードしてる最中は、操作をできないようにするって言うのはどうやったら実装できるのでしょうか?

キーの入力をその間は無効にするのでしょうけどその書き方がわからないのです。
ご教示お願いします。

Re: キーを操作不可能にするには

Posted: 2011年2月26日(土) 09:20
by Ciel
フェード中はフラグでも立ててキー操作をしないようにすればいいのでは?

Re: キーを操作不可能にするには

Posted: 2011年2月26日(土) 10:37
by h2so5
キーの入力判定の部分をどのように実装しているのかを見せてください。

Re: キーを操作不可能にするには

Posted: 2011年2月26日(土) 11:25
by Dixq (管理人)
どのような処理構造になっているかによりますが、もし以下のような構造になっていれば

コード:

メイン処理計算();
メイン処理描画();
if( フェードアウト中なら ){
    フェードアウト();
}
これを

コード:

if( フェードアウト中ではないなら ){
    メイン処理計算();
}
メイン処理描画();
if( フェードアウト中なら ){
    フェードアウト();
}
こうすればよいのではないでしょうか。
フェードアウト中も背景が動くとか、計算しなければならない処理があるならば、
メイン計算のキー入力に応じた処理をさせないようにすればよいと思います。

現在フェードアウトの計算は何を基準に判断していますか?
Cielさんの仰るように何かフラグのような物があると思いますので、それを基準に処理を分けると良いかと思います。

Re: キーを操作不可能にするには

Posted: 2011年2月26日(土) 18:19
by まさかりたろう
>>Cielさん
>>h2so5さん
>>Dixqさん

ご返答ありがとうございます。


>>Cielさん
>>Dixqさん
--
フラグを立ててやればできました。
ご教示ありがとうございます!!


>>h2so5さん
--
今回は解決できました!
ご返答ありがとうございました。



中々頭固いです。。

Re: キーを操作不可能にするには

Posted: 2011年2月26日(土) 18:22
by まさかりたろう
ごめんなさい

解決にしてしまいましたが、もうひとつ質問があります。


現在

if( c >= 0 && c < 256 ) SetDrawBright( c, c, c );

というゲームプログラミングの館さんにあるように書いているのですが、
これをfor文で

for( c = 0; c < 256; c++ ) {
SetDrawBright( c, c, c );
}

と書いても成功しません
これはいったいなぜなのでしょうか?

Re: キーを操作不可能にするには

Posted: 2011年2月26日(土) 21:34
by h2so5
if 文と for 文の意味を理解していますか?
もう一度入門書などをよく読むことをおすすめします。

Re: キーを操作不可能にするには

Posted: 2011年2月26日(土) 22:05
by パコネコ
いちおう書いときますね・・・
for文では他の処理ができないんですよね・・・
(中の処理しかできないため)
ですのでfor文の中に描写関数?を用意してあげればできるとは思います。
(あと処理待ち・・・)
if文ならば中の処理の後、外の処理も行ってくれるため、
成功するのではないでしょうか?
ただ、他の処理も行いたいならやはりif文のほうがいいのではないでしょうか?

Re: キーを操作不可能にするには

Posted: 2011年2月26日(土) 22:35
by まさかりたろう
>>h2so5さん
--
もう一度よく読みたいと思います。
助言ありがとうございます。


>>パコネコさん
--
なるほど!
よくわかりました。

for文とif文だとそんなにやれることが違うのですね。
すごくわかりやすかったです。

ご教示ありがとうございました!!