api는 처음해보는 ㅈ밥인데 지금 소스가 양쪽벽에 닿으면 체크변수 1추가 시켜서 움직일 수 없게 하는건데 벽에 닿더라도 옆에 벽을 벗어나지 않게 회전을 시키고 싶은데 어떡해 해야할지 모르것네.. 일단 소스가




양쪽 벽에 닿아서 움직일 수 있는지 판별하는 함수고


BOOL BlockCanMove(int x, int y)


{


    // 체크 변수


    int check = 0;




    // 열, 행


    int row, col;




    // 아래 두 반복문은 블록의 값을 검사한다.


    for (row = 0; row


        for (col = 0; col


            if (Block[BlockNum][RotateNum][row][col]) // BlockNum는 블록의 종류, RotateNum는 블록의 회전 종류 (==1 없어도 같은 의미이다. 즉 true는 1)


                check += BackGround[y + row][x + col + 1];// 블록이 배경 경계에 걸릴때...체크 변수 1 추가        




    // 이동 가능


    if (check == 0)


        return YES;


    // 이동 불가능


    else


        return NO;


}




판별하는 변수 받아서 회전하는 함수임


// 블록 회전 함수


void Rotate()


{


    // 플레이어가 죽었을때


    if (PlayerState == DEAD)


        return;




    // 현재 값 임시 변수에 넣자


    int temp = RotateNum;


    // RotateNum 값 1 증가


    RotateNum++;


    // 변수의 한계 값을 3까지만 갖기 위함(if 안써도 됨 스킬이니 기억해두길)


    RotateNum %= 4;




    // 회전이 가능 하면


    if (BlockCanMove(NowX, NowY))


    {


        // 복구


        RotateNum = temp;


        // 블록을 지우고


        EraseBlock();


        // RotateNum 값 1 증가


        RotateNum++;


        // 변수의 한계 값을 3까지만 갖기 위함(if 안써도 됨 스킬이니 기억해두길)


        RotateNum %= 4;


        // 회전한 블록 그리기


        DrawBlock();


    }


    // 회전이 불가능 하면 복구


    else


        RotateNum = temp;


}




형들 제발 부탁드립니다


여기서 Rotate함수에서 왼쪽 벽에 닿으면 오른쪽으로 1칸 옮겨서 돌리고 오른쪽 벽에 닿으면 왼쪽으로 1칸 옮겨서 돌리고싶음