오늘의 할 일:
0) 챡! 들러붙는 거 수정하기..... clear
여유되면 매치 4개 5개 추가하기.. .....pass
오늘 한 일:
1) 블록 생성 방법 수정 - 삭제하는 블록들이 삭제하기 전 생성 -> 0번째줄 블록만 생성. 나머진 0번째 줄 애들이 내려가며 생성
2) 블록이 줄줄이 겹쳐서 내려오다가 1번째 줄이 먼저 도착/ 아니면 한참 뒤에 내려오는 거 수정
3) 프레임 속도 개선 - 중복된 백터 검색 삭제, 불필요 검사 삭제
일단 0) 챡 들러붙는 문제는 예상대로 이동한 블록의 검사문이 원인... 맞았다...
특히 가로세로 중간에 있는 블록 검사문.
이게 밑에서 윗줄 중간에 가는건 아무 문제가 없는데,
좌우 이동시 이 검사문에 걸리면 자기 자신이 검사 대상에 들어가, 일치하는 것으로 나온다...
그걸 엄청난 디버깅과 고민과 생각 끝에 알아냈는데 해결법에 고심하다가...
어?? 어차피 내 자신이 그 가운데 낀블럭의 검사대상(좌우 양쪽)에 들어가면 제외 시키면 되잖아???? 하는 번뜩! 떠오른 생각때메..
Block* _target2;
Block* _target3;
//가로 중간에 낀블럭일 때
_target2 = getNearBlock(_other, LEFT);
_target3 = getNearBlock(_other, RIGHT);
//가로로 이동 했을때 검사 막기 위해서 검사 대상이 나 자신일 경우 제외
if (_target != _target2 && _target !=_target3 && _target2 !=NULL && _target3 !=NULL)
{
if (_targetBlockType == _target2->getNum() && _targetBlockType == _target3->getNum())
{
return true;
}
}
이렇게 조건을 수정했더닠ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
깔 ㅡ 끔. 세상 편 ㅡ 안.
결국 숫자와 블록들로 검사하는 함수같은건 필요없던 것이닼ㅋㅋㅋㅋ
되돌아가는 매치는 그냥 가로세로 3개만 검사하고
전체검사하는거에서 카운트 ++ 해서 점수 더주면 될듯.
2) 블록이 삭제하며 생성할 때는 자신의 좌표의 -만큼 위에 생성하게 했다. 그렇게하면 늦게는 떨어져도 겹치지는 않으니까... 근데 삭제하는 애들은 그냥 삭제만 되고 0번째줄이 내려갈때 생성하는게 맞는거 같아서, 그렇게 다시 바꿨더니 ... 포개져서 생성되는 관계로 포개져서 내려오고 상대적으로 가까운 0번째줄이 먼저 도착하는 현상이 생긴다..ㅠㅠ
별 짓을 다 하다가... 생각해보니 이거 상호참조 되어있잖아? 블록이랑 보드랑.
그럼 블록이 보드한테 내 밑 블록 좀 소환해 달라고 한 다음...
내 밑 블록 rect.top이 내rect.bottom에서 여백 만큼 벌어졌을 때 내려가게 하면 되자너...?
어차피 밑 블럭 없으면 null이 소환되니까 그때를 예외를 넣어주면 해결.
.....
뭔가... 오래 고민하다가..
백터 쓰지말걸..ㅠㅠ 클래스 쓰지 말걸 그랬나..ㅠㅠ 라며 절망에 빠지고...
한달프로젝트를 지난 맵툴 프로젝트였던 닭크서울을 개선해서 마무리 해야겠다.. 이런 느낌으로 마음을 비우고 다시 코드를 봤더니... 쨘 ㅡ 하고 해결되어버렸다...
근데 백터 대신 배열 쓰는것이 좋을 거 같기도 하다.. 속도면에서..
하지만 그건 급한게 아니니까!
내일의 할 일:
블럭 사이즈들 줄이고
위에 코난 달리는거 띄우쟈.
블록들에 이미지도 씌우쟈
야호 드디어 이미지 시작!
'Project (C++) > 1 Month Project' 카테고리의 다른 글
3주차 - 넷째날 (0) | 2019.11.28 |
---|---|
3주차 - 셋째날 (0) | 2019.11.27 |
3주차 - 첫째날 (0) | 2019.11.25 |
2주차 - 다섯째날 (0) | 2019.11.22 |
2주차 - 넷째날 (0) | 2019.11.21 |