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칸 옮겨서 돌리고싶음
해당 댓글은 삭제되었습니다.
ㅈㅅ
고수네
받은거 원본임.. 응용이 개딸림..
api는 어딨노?
요고 일단 움직이고 회전하는 함수 부분만 짜른건데 원하시면 풀소스 드릴 수 있음