ちょうどいい値を見つけられるようツールモドキにしてみました。
先ほどdefineで定義していた値はそのキーを押しながら左右キーを押す事で変動します。
つまり周期Tを変化させたい時は、キーボードのTキーを押しながら十字キーの左右を押してください。
L,Rキーも押しながら左右キーを押す事でそれぞれ値が変動します。
確認しながら値が変更できるので、ちょうど良い値が見つけやすいと思います。
なお、0割りなどのエラー処理はしていませんので、値が0や負にならないようにして下さい。
#include "DxLib.h"
#include <math.h>
#define PI 3.1415926535898
//周期
int T=200;
//ぐにゃぐにゃする間隔
double L=0.6;
//ぐにゃぐにゃする大きさ
int R=20;
int Key[256];
int GetHitKeyStateAll_2(int GetHitKeyStateAll_InputKey[/url]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key[i]==1) GetHitKeyStateAll_InputKey[i]++;
else GetHitKeyStateAll_InputKey[i]=0;
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
int i,image,count=0;
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;
image=LoadGraph("apple.png");
while(ProcessMessage()==0&&ClearDrawScreen()==0&&
GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
for(i=0;i<480;i++){
SetDrawArea( 0 , i , 640 , i+1 ) ;
DrawGraph(100+R*sin(PI*2*((int)(count+i/L)%T)/T),0,image,TRUE);
}
if(Key[KEY_INPUT_T]>0){
if(Key[KEY_INPUT_LEFT ]==2)T-=10;
if(Key[KEY_INPUT_RIGHT]==2)T+=10;
}
if(Key[KEY_INPUT_[/url]>0){
if(Key[KEY_INPUT_LEFT ]==2)L-=0.05;
if(Key[KEY_INPUT_RIGHT]==2)L+=0.05;
}
if(Key[KEY_INPUT_[/url]>0){
if(Key[KEY_INPUT_LEFT ]==2)R-=1;
if(Key[KEY_INPUT_RIGHT]==2)R+=1;
}
SetDrawArea( 0 , 0 , 640 , 480 ) ;
DrawFormatString(0,460,GetColor(255,255,255),"T=%d,L=%.2f,R=%d",T,L,R);
count++;
ScreenFlip();
}
DxLib_End();
return 0;
}
