ただいま項目を選択して画像を表示するプログラムを作っております。
そこでいまつまずいているところが、選択した項目の画像を表示させたままのこして
複数画像を表示するということをしたいのですが形は頭で想像できてもプログラムが
どうかけばいいのかは頭にうかんでこないのです。。
無題
Re:無題
-----------------------
if(Key[KEY_INPUT_Z]){ //'Z'が押されているなら
画像を表示
}
-----------------------
Zを押したときにif文の中を実行するようになっているので、
Zが押されていなければ、if文の中は実行されなくなり、画像を表示する処理は行われません。
なので、画像は消えます。
↓あと、こういう流れで描画しているという事はわかりますよね?
--------------------------------------------
裏画面のデータを削除
画像A表示
画像B表示
画像C表示
裏画面データを表画面へ反映
裏画面のデータを削除
画像A表示
画像B表示
画像C表示
裏画面データを表画面へ反映
裏画面のデータを削除
画像A表示
画像B表示
画像C表示
裏画面データを表画面へ反映
:
(以下繰り返し)
--------------------------------------------
描画した画像は毎回クリアされて、また画像を初めから順に描画してます。
よって描画処理を止めれば、全てクリアされた状態でウィンドウに表示されます。
「一度描画処理をすれば、しばらく残り続ける」という様なイメージがあるのかもしれませんが、それは違います。
毎回消されて、また表示、という事の繰り返しなので、描画処理を止めた瞬間 画像は消えます。
if(Key[KEY_INPUT_Z]){ //'Z'が押されているなら
画像を表示
}
-----------------------
Zを押したときにif文の中を実行するようになっているので、
Zが押されていなければ、if文の中は実行されなくなり、画像を表示する処理は行われません。
なので、画像は消えます。
↓あと、こういう流れで描画しているという事はわかりますよね?
--------------------------------------------
裏画面のデータを削除
画像A表示
画像B表示
画像C表示
裏画面データを表画面へ反映
裏画面のデータを削除
画像A表示
画像B表示
画像C表示
裏画面データを表画面へ反映
裏画面のデータを削除
画像A表示
画像B表示
画像C表示
裏画面データを表画面へ反映
:
(以下繰り返し)
--------------------------------------------
描画した画像は毎回クリアされて、また画像を初めから順に描画してます。
よって描画処理を止めれば、全てクリアされた状態でウィンドウに表示されます。
「一度描画処理をすれば、しばらく残り続ける」という様なイメージがあるのかもしれませんが、それは違います。
毎回消されて、また表示、という事の繰り返しなので、描画処理を止めた瞬間 画像は消えます。
Re:無題
>>えと描画処理をしなければいいということでしょうか?
>>もしくはどのようにすればいいのでしょうか。。。。
前回のコメントは「画像が消える理由は何ですか?」という質問に対して
理由を説明しただけのものです。
「画像をずっと表示させたい」という要望については、画像を表示させる処理を毎回行えば良いと思います。
↓この条件文(if文)を消せば画像はずっと表示されると思います。
-----------------------
if(Key[KEY_INPUT_Z]){
画像を表示
}
-----------------------
また、「Zを押した後ずっと表示させたい」というのであれば、
フラグか何かを用意してやればいいと思います。
-----------------------
if(Key[KEY_INPUT_Z]){
flag = true;
}
if(flag){
画像を表示
}
-----------------------