옵션 |
|
자꾸 질문드려서 죄송합니다.
제가 물어볼곳이 여기밖에 없어서요...
메뉴가 있고 방향키로 그 메뉴들을 선택할 수 있고
엔터키를 누르면
메뉴선택창이 사라지고
선택한 창으로 변환이 되어야 하는데
4시간 좀 넘게 하고있는데 여기서부터는 혼자 무리가 있어서 질문드려요
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#define LEFT 75 // 좌측방향키
#define RIGHT 77 // 우측방향키
#define UP 72 // 위쪽방향키
#define DOWN 80 // 아래방향키
#define ENTER 13 // 엔터키
int menuPos = 0;
int menuNum = 0;
void gotoxy(int x, int y)
{
COORD Cur;
Cur.X=x;
Cur.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),Cur);
}
void hideCursor()
{
CONSOLE_CURSOR_INFO CurInfo;
CurInfo.dwSize=1;
CurInfo.bVisible=FALSE;
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&CurInfo);
}
void printMenu()
{
gotoxy(0, 0);
puts("1.게임 시작");
puts("2.게임 방법");
puts("3.게임 종료");
puts("4.만든 사람");
gotoxy(0, menuPos);
puts("★");
}
void gamestart()
{
puts("게임을 시작합니다.\n");
}
void tutorial()
{
puts("게임 설명ddddddddd.\n");
}
void endgame()
{
puts("게임 종료aaaaaaaaaaaa.\n");
}
void creator()
{
puts("만든사람ffffffffffffff\n");
}
void startMenu(int menuNum)
{
switch(menuNum)
{
case 0:
system("cls");
gamestart();
break;
case 1:
system("cls");
tutorial();
break;
case 2:
system("cls");
endgame();
break;
case 3:
system("cls");
creator();
break;
}
}
int selectMenu()
{
int ch;
ch = getch();
if( ch == 0xE0 || ch == 0x00 ) // 확장키가 눌렸다
{
ch = getch();
switch(ch)
{
case 72: // 위쪽 화살표키
menuPos--;
if(menuPos < 0)
menuPos = 0;
break;
case 80: // 아래쪽 커서키
menuPos++;
if(menuPos > 3)
menuPos = 3;
break;
}
}
else if( ch == 13 )
{
menuNum=menuPos;
startMenu(menuNum);
}
return 0;
}
int main()
{
int ch;
ch=getch();
hideCursor();
while(1)
{
if(ch==13)
{
startMenu(menuNum);
break;
}
printMenu();
selectMenu();
}
system("cls");
return 0;
}
제가 보기엔 break 문을 어디서 빠져나와야 하는지와
system("cls"); 를 어디서 써야할지가 문제인것 같은데
도통 여기저기 집어넣고 빼봐도 안되네요ㅠㅠ