#include "DxLib.h"
#include <math.h>
#define PI 3.141592
#define MIN_ANGLE (PI/3*2)
#define MAX_ANGLE (PI/3*7)
#define ADD_SPEED (PI/220)
#define SUB_SPEED (PI/180)
double angle;
char Key[256];
void calc_angle(){
if(Key[KEY_INPUT_Z]!=0){
if(angle<MAX_ANGLE){
angle+=ADD_SPEED-ADD_SPEED*(0.97*(angle-MIN_ANGLE)/(MAX_ANGLE-MIN_ANGLE));
if(angle>=MAX_ANGLE)
angle-=ADD_SPEED*3;
}
}
else{
if(angle>MIN_ANGLE){
angle-=SUB_SPEED;
if(angle<MIN_ANGLE)
angle=MIN_ANGLE;
}
}
}
#define BUNKATU 30
void meter_graph(){
int i;
double ang=MIN_ANGLE;
for(i=0;i<=BUNKATU;i++){
DrawLine(320+210*cos(ang),280+210*sin(ang),320+180*cos(ang),280+180*sin(ang),GetColor(255,0,0));
ang+=(MAX_ANGLE-MIN_ANGLE)/BUNKATU;
}
}
void graph(){
DrawLine(320,280,320+200*cos(angle),280+200*sin(angle),GetColor(255,255,255));
DrawFormatString(300-70,380,GetColor(0,255,255),"%5.1fkm/h",(angle-MIN_ANGLE)*57.6);
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
angle=MIN_ANGLE;
if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1;
SetDrawScreen( DX_SCREEN_BACK );
SetFontSize(36);
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && Key[KEY_INPUT_ESCAPE]==0){
calc_angle();
meter_graph();
graph();
ScreenFlip();
}
DxLib_End();
return 0;
}
私は高校でC言語をちょっぴりかじっている程度の初心者です!
このプログラムの行すべての意味をこ初心者でもわかりやすく教えてくれませんか?
ちなみにこのプログラムは
サンプルプログラミングの館で見つけました。