스레드 에 대해 질문 있습니다.
새밝
게임 제작 중 캐릭터로 포탄 발사에 스레드를 사용 하고 있습니다.
현재 문제점은 포탄을 하나 발사하고 그다음 다시또 하나 발사하면 여려개의 출력이 일어나서 이상합니다.
스레드
unsigned __stdcall RThread(void *arg)//
{
int i=2;
int x1=x+3; // 포탄의 초기 위치를 저장하기 위한
int y1=y+2; // 포탄의 초기 위치를 저장하기 위한
while(1)
{
//fflush(stdin);
if(Map[y1][x1+i] == 1){
i--;
printf(끝);
break;
}
gotoxy(x1+i,y1);
printf(*);
Sleep(100);
gotoxy(x1+i,y1);
printf( );
i++;
// gotoxy(20,20);printf(%d %d,x1+i,y1);
}
return i;
}
메인 함수
if(kbhit())
{
//버퍼를 초기화 시켜준다 . 그래야 포탄이 다른 버 퍼로
player.NowDirect = getch();
if(player.NowDirect == RIGHT )
{
Char[1][2]=┣;
DeleteCharacter(x,y);
x++;gotoxy(x,y);
printCharacter(x,y);
Char[1][2]=┃;
player.nDirect=RIGHT;
gotoxy(x+1,y+2); // 총알의 시작 위치를 위해 .
}
else if(player.NowDirect == SPACE )//&& Map[x][y] == 0)
{
if(player.nDirect == RIGHT) _beginthreadex(NULL, 0, RThread, 0, 0,NULL);
이렇게 하였는데.. 어떻게 해야 될지 모르겠습니다. 도움좀 주세요 .