自作で円の波紋?のようなエフェクトを作ってみました。↓
#include "DxLib.h"
int Key[256]; // キーが押されているフレーム数を格納する
// キーの入力状態を更新する
int gpUpdateKey(){
char tmpKey[256]; // 現在のキーの入力状態を格納する
GetHitKeyStateAll( tmpKey ); // 全てのキーの入力状態を得る
for( int i=0; i<256; i++ ){
if( tmpKey[i] != 0 ){ // i番のキーコードに対応するキーが押されていたら
Key[i]++; // 加算
} else { // 押されていなければ
Key[i] = 0; // 0にする
}
}
return 0;
}
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更と初期化と裏画面設定
int White,Red,Blue,Green;
int r=1;
int L=255;
while( ScreenFlip()==0 &&ProcessMessage()==0 && ClearDrawScreen()==0 && gpUpdateKey()==0 ){
if( Key[ KEY_INPUT_RIGHT ] >= 1 ){ // 右キーが押されていたら
White = GetColor( 255 , 255 , 255 ) ;
for(r=1,L=255;r<300,L>0;r++,L--){ //半径が大きくなるにつれ線を暗くする
if( ProcessMessage() != 0 ){ // メッセージ処理
break;//ウィンドウの×ボタンが押されたらループを抜ける
}
SetDrawBright ( L , L , L ) ; //明度処理
DrawCircle( 200, 300, r , White , FALSE) ; // 円を描画(塗りつぶし無し)
Sleep(10); //0.1秒待つ
r = r + 1; //rを1増やす
L = L - 3; // Lを3減らす
ScreenFlip(); //裏画面を表画面に反映
ClearDrawScreen(); // 画面を消す
}
}
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
(右キーを押す→円の描画→for文の条件から外れる→処理終了)
この一連の処理の間に再度右キーを押すと連続して円が描画されるようしたいです。(こんな感じで→◎
何かアドバイスお願いします><
コンパイラはbcc5.5です