void CChar::ballMove(int MouseX, int MouseY)
{

 for(int i=0;i<50;i++)
 {
  
  if(MouseX >0 && MouseX<341 && MouseY>0 && MouseY<256)
     {
      ShotAttack[i].x-=2;
      ShotAttack[i].y-=2;
     }
   if(MouseX >341 && MouseX<682 && MouseY>0 && MouseY<256)
     {
      ShotAttack[i].y-=2;
     }
    if(MouseX >682 && MouseX<1024 && MouseY>0 && MouseY<256)
     {
      ShotAttack[i].x+=2;
      ShotAttack[i].y-=2;
     }
    if(MouseX >0 && MouseX<341 && MouseY>256 && MouseY<512)
     {
      ShotAttack[i].x-=2;
     }
    if(MouseX >682 && MouseX<1024 && MouseY>256 && MouseY<512)
     {
      ShotAttack[i].x+=2;
     }
    if(MouseX >0 && MouseX<341 && MouseY>512 && MouseY<768)
     {
      ShotAttack[i].x-=2;
      ShotAttack[i].y+=2;
     }
    if(MouseX>341 && MouseX<682 && MouseY>256 && MouseY<512)
     {
      ShotAttack[i].y+=2;
     }

    if(MouseX >682 && MouseX<1024 && MouseY>512 && MouseY<768)
     {
      ShotAttack[i].x+=2;
      ShotAttack[i].y+=2;
     }
  
 }
}

 

이 소스를 설명해드리면 일단 마우스 클릭값에 따라서 총알이 나가는 방향을 설정하려구 한건데요

if문 안에 있는 비교한 숫자들은 윈도우 창 기준으로

1 2 3

4    6

7 8 9

이런식으로 한건데요 문제는 일단 각 번호의 위치에 찍으면 그방향으로 미사일이 움직이는데
문제는

다같이 움직입니다

쉽게 설명하면 6번 방향으로 날라가던놈이 4번을 찍게되면 6번으로 진행하던 총알이 다시 4번 방향으로 가는 현상이 생기는겁니다

로직에서 문제가 있는것 같은데 왜 그런지 해결법좀 조언해주시면 감사하겠습니다

참고로 else if도 써봣는데 똑같았습니다.

이 밑은 키를 눌렀을경우 실행되게 한 로직입니다

 

if(myChar.MouseClick==HOLD_KEY)
 {
  if(myChar.getCharactorChange()==1)

  {
   if(myChar.ShotAttack[myChar.BallAttackNum].fire==FALSE)
   {
   myChar.ShotAttack[myChar.BallAttackNum].x=myChar.getPosX();
   myChar.ShotAttack[myChar.BallAttackNum].y=myChar.getPosY();
   
   myChar.ShotAttack[myChar.BallAttackNum].fire=TRUE;

   
   if(myChar.BallAttackNum==49) myChar.BallAttackNum=0;
   else       myChar.BallAttackNum+=1;
   }
 }