DrawFormatStringの使い方が分かりません・・・
Posted: 2012年5月28日(月) 03:35
カーソル(赤色のボックス)を9×9のマスないで動かし、選択した場所に1~9の数字を入力するプログラムです。3つの関数で構成されています。
カーソルはきちんと動きます。数字も入力まではできるのですが、それが出力されません。DrawFormatString ( x1+20 , y1+20 , red ,"%d" , InputNo );の使い方が間違っているのでしょうか?ゲームプログラミングは初めたばかりなのでなるべく丁寧に教えて下さいm(__)m
もし、宜しければDrawFormatString 以外に気になったこと事があれば、今後の参考にしたいで教えて下さい。
カーソルはきちんと動きます。数字も入力まではできるのですが、それが出力されません。DrawFormatString ( x1+20 , y1+20 , red ,"%d" , InputNo );の使い方が間違っているのでしょうか?ゲームプログラミングは初めたばかりなのでなるべく丁寧に教えて下さいm(__)m
#include "DxLib.h"
#include "spgame.h"
int GoCorsor()
{
int white = GetColor(255,255,255);
int red = GetColor(153,0,0);
int in_no[9] ={1,2,3,4,5,6,7,8,9};
int x1 = 20;
int y1 = 20;
int x2 = 70;
int y2 = 70;
int InputDirection;
int InputNo;
while(1)
{
if( ProcessMessage() == -1 )
{
break ; // エラーが発生したらループを抜ける
}
InputDirection = GetInputCharWait( TRUE );
switch(InputDirection)
{
case CTRL_CODE_UP :
DrawBox ( x1 , y1 , x2 , y2 , white , FALSE ) ;
y1 -= 50; y2 -= 50;
DrawBox ( x1 , y1 , x2 , y2 , red , FALSE ) ;
break;
case CTRL_CODE_DOWN :
DrawBox ( x1 , y1 , x2 , y2 , white , FALSE ) ;
y1 += 50; y2 += 50;
DrawBox ( x1 , y1 , x2 , y2 , red , FALSE ) ;
break;
case CTRL_CODE_RIGHT :
DrawBox ( x1 , y1 , x2 , y2 , white , FALSE ) ;
x1 += 50; x2 += 50;
DrawBox ( x1 , y1 , x2 , y2 , red , FALSE ) ;
break;
case CTRL_CODE_LEFT :
DrawBox ( x1 , y1 , x2 , y2 , white , FALSE ) ;
x1 -= 50; x2 -= 50;
DrawBox ( x1 , y1 , x2 , y2 , red , FALSE ) ;
break;
}
ScreenFlip();
if((CheckHitKey(KEY_INPUT_Z) == 1) && ((InputNo =KeyInputNumber( x1+20 , y1+20 , 640 , 0 , TRUE )) ==1))
{
DrawFormatString ( x1+20 , y1+20 , red ,"%d" , InputNo );
return InputNo;
}
}
}
void DrawGameMain()
{
int InputNo;
MakeField();
OutQues();
while(1)
{
InputNo = GoCorsor();
SolveQues(InputNo);
ScreenFlip();
}
}
void SolveQues(int InputNo)
{
int yellow;
yellow = GetColor(255,255,153);
int red = GetColor(153,0,0);
if(x1==20 && y1 ==20 && x2==70 && y2==70)cel[0][0]=InputNo;
if(x1==70 && y1 ==20 && x2==120 && y2==70)cel[1][0]=InputNo;
if(x1==120 && y1 ==20 && x2==170 && y2==70)cel[2][0]=InputNo;
if(x1==170 && y1 ==20 && x2==220 && y2==70)cel[3][0]=InputNo;
if(x1==220 && y1 ==20 && x2==270 && y2==70)cel[4][0]=InputNo;
if(x1==270 && y1 ==20 && x2==320 && y2==70)cel[5][0]=InputNo;
if(x1==320 && y1 ==20 && x2==370 && y2==70)cel[6][0]=InputNo;
if(x1==370 && y1 ==20 && x2==420 && y2==70)cel[7][0]=InputNo;
if(x1==420 && y1 ==20 && x2==470 && y2==70)cel[8][0]=InputNo;
if(x1==20 && y1 ==70 && x2==70 && y2==120)cel[0][1]=InputNo;
if(x1==70 && y1 ==70 && x2==120 && y2==120)cel[1][1]=InputNo;
if(x1==120 && y1 ==70 && x2==170 && y2==120)cel[2][1]=InputNo;
if(x1==170 && y1 ==70 && x2==220 && y2==120)cel[3][1]=InputNo;
if(x1==220 && y1 ==70 && x2==270 && y2==120)cel[4][1]=InputNo;
if(x1==270 && y1 ==70 && x2==320 && y2==120)cel[5][1]=InputNo;
if(x1==320 && y1 ==70 && x2==370 && y2==120)cel[6][1]=InputNo;
if(x1==370 && y1 ==70 && x2==420 && y2==120)cel[7][1]=InputNo;
if(x1==420 && y1 ==70 && x2==470 && y2==120)cel[8][1]=InputNo;
if(x1==20 && y1 ==120 && x2==70 && y2==170)cel[0][2]=InputNo;
if(x1==70 && y1 ==120 && x2==120 && y2==170)cel[1][2]=InputNo;
if(x1==120 && y1 ==120 && x2==170 && y2==170)cel[2][2]=InputNo;
if(x1==170 && y1 ==120 && x2==220 && y2==170)cel[3][2]=InputNo;
if(x1==220 && y1 ==120 && x2==270 && y2==170)cel[4][2]=InputNo;
if(x1==270 && y1 ==120 && x2==320 && y2==170)cel[5][2]=InputNo;
if(x1==320 && y1 ==120 && x2==370 && y2==170)cel[6][2]=InputNo;
if(x1==370 && y1 ==120 && x2==420 && y2==170)cel[7][2]=InputNo;
if(x1==420 && y1 ==120 && x2==470 && y2==170)cel[8][2]=InputNo;
if(x1==20 && y1 ==170 && x2==70 && y2==220)cel[0][3]=InputNo;
if(x1==70 && y1 ==170 && x2==120 && y2==220)cel[1][3]=InputNo;
if(x1==120 && y1 ==170 && x2==170 && y2==220)cel[2][3]=InputNo;
if(x1==170 && y1 ==170 && x2==220 && y2==220)cel[3][3]=InputNo;
if(x1==220 && y1 ==170 && x2==270 && y2==220)cel[4][3]=InputNo;
if(x1==270 && y1 ==170 && x2==320 && y2==220)cel[5][3]=InputNo;
if(x1==320 && y1 ==170 && x2==370 && y2==220)cel[6][3]=InputNo;
if(x1==370 && y1 ==170 && x2==420 && y2==220)cel[7][3]=InputNo;
if(x1==420 && y1 ==170 && x2==470 && y2==220)cel[8][3]=InputNo;
}