改行

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
TowaK

改行

#1

投稿記事 by TowaK » 15年前

はじめて質問させていただきますTowaKです。
問題のソースは下にあるのですが……。


#include "DxLib.h"

// プログラムは WinMain から始まります
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
SetMainWindowText("SnowDome");
ChangeWindowMode(TRUE);
if(DxLib_Init()==-1) return -1;
SetDrawScreen(DX_SCREEN_BACK);
int bgm,menu=0,white,back; //1:最初から 2:続きから 3:Special 4:EXIT
bgm=LoadMusicMem("星の雫 -2000-.gsd"); ChangeVolumeSoundMem(100,bgm);
white=GetColor(0,0,0);
PlaySoundMem(bgm,DX_PLAYTYPE_LOOP);
SetDrawScreen(DX_SCREEN_BACK);
back=LoadGraph("title.bmp");


while(1){
ClsDrawScreen();
DrawGraph(0,0,back,FALSE);
if (menu==0){
DrawFormatString(150,200,white,"■New\n Load\n Special\n Exit");
if(CheckHitKey(KEY_INPUT_RETURN)==1)
break;
}
if (menu==1){
DrawFormatString(150,200,white," New\n■Load\n Special\n Exit");
if (CheckHitKey(KEY_INPUT_RETURN)==1)
break;
}
if (menu==2){
DrawFormatString(150,200,white," New\n Load\n■Special\n Exit");
if (CheckHitKey(KEY_INPUT_RETURN)==1)
break;
}
if (menu==3){
DrawFormatString(150,200,white," New\n Load\n Special\n■Exit");
if (CheckHitKey(KEY_INPUT_RETURN)==1)
break;
}
if ((CheckHitKey(KEY_INPUT_UP)==1)&&(menu<3))
menu--;
if ((CheckHitKey(KEY_INPUT_DOWN)==1)&&(menu>0))
menu++;
ScreenFlip();
WaitTimer(250);
if (ProcessMessage()==-1)
break;
if (CheckHitKey(KEY_INPUT_ESCAPE)==1)
break;
}
end:
DxLib_End() ; // DXライブラリ使用の終了処理

return 0 ; // ソフトの終了
}


といったふうにメニューの選択をできるようにした(つもりな)のですが、どうも、改行が出来ていないらしく、\nの部分に変なマークが出るだけで改行出来ていません。
まだ現段階では試し状態なので、どの選択をしてもbreakするようにしています。
どこが悪いのか、ご教授いただければ幸いです。
使用コンパイラはVC++2010で、DXライブラリを使っています。 画像

Re:改行

#2

投稿記事 by » 15年前

DrawFormatStringって改行できましたっけ?
多分、出来なかった気がします・・・。
間違ってたらすみません。

#define FONT_SIZE 16

//フォントサイズのセット

y座標系に+FONT_SIZEすれば改行してるように見えると思います。

TowaK

Re:改行

#3

投稿記事 by TowaK » 15年前

お聞きした方法を試してみると、見事開業することに成功しました!
ありがとうございました。

しかし、方向キーで選択しても、なぜかメニューのカーソルが移動しないのです^^;
どなたかよろしければ、そちらの方もご教授願えませんか?

TowaK

Re:改行

#4

投稿記事 by TowaK » 15年前

自己解決できました。

if ((CheckHitKey(KEY_INPUT_UP)==1)&&(menu<3))
menu--;
if ((CheckHitKey(KEY_INPUT_DOWN)==1)&&(menu>0))

のmenu>0とmrnu<3が反対になっていたみたいです。
これで、解決とさせていただきたいと思います。
ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る