오늘의 할일 :

일치하면 없어지고 새로 생성   ...... clear..?

4,5,6개짜리 특수블럭 추가하기 ..... continue;

[+]

블록 선택 조건 수정

 

 

 

 

 

 

이 내려오는 것을 처리하기 전에.. 블록선택하는 조건을 전반적으로 뜯어 고쳤다..

마치 새로 코드를 짠 기분. .ㅠㅠ

 

 

 

1) 블록 선택 조건문 변경

이전에는 처음 선택을 하면, 첫번째 선택을 했다는 bool 변수를 true로 변환하고,

그 true 조건 안에서 처리를 하려고 하는데...

 

계속 있던 문제가, 두번째 클릭을 먼 곳을 했을 때 그쪽 방향으로 바뀐다는 것..

그리고 클릭이 하나씩 안될때가 있었다..

 

아예 바꾼것은..

첫번째 클릭했다! 두번째 클릭이 필요하다!! 이 두가지의 bool 변수를 조건으로 줬다.

 

<슬라이딩 시>

슬라이딩하면 처음 클릭했을때의 좌표를 기준으로 방향을 가져와서, 그쪽의 렉트와 바꾼다.

바꾸고 나면  첫번째 클릭했다 true - 두번째 클릭 필요하다 false로  변경하고,

바꿈이 이뤄지고 나면 첫번째 클릭과 두번째 클릭 관련 변수를 false로 바꾸어 준다.

 

<클릭 시>

클릭으로 선택할 때는 마우스가 선택한 렉트에서 떨어지는 것을 염두하여,

만약 첫번째 클릭했는데 그 블록 안에서 마우스가 떨어지면 

첫번째 클릭했다 true - 두번째 클릭 필요하다 true 로 해주고

두 조건일때 다른 블록을 선택 할 수 있게 했다.

 

 

 

 

2) 슬라이딩 블록 선택 방법 변경

블록을 선택하면 clickPoint에 마우스의 좌표가 저장된다.

그리고 움직이는 방향에 따라 상하좌우 방향이 결정되는데..

이 쉬워보이는게... 쉽게 안된다...

 

종이에다가 그림도 엄청 그려보고.. 결국 엑셀로 (문명의 이기를 잊고있었다) 특정 발생 조건을 찾아서..

 

DIRECTION BlockBoard::getDirection()
{
	int distanceX = clickMouse.x - _ptMouse.x ;
	int distanceY = clickMouse.y - _ptMouse.y;
	int _standardDistance = 25;

	//상
	if (distanceX < BLOCK_SIZE && distanceY > _standardDistance) return UP;
	//하
	else if (distanceX < BLOCK_SIZE && distanceY < -_standardDistance) return DOWN;
	//좌
	else if (distanceY < BLOCK_SIZE && distanceX > _standardDistance) return LEFT;
	//우
	else if (distanceY < BLOCK_SIZE &&  distanceX < -_standardDistance) return RIGHT;

	else return NONE_DIRECTION;
}

이렇게 예쁘고 깔끔한 코드가 탄생했다.. 흐흐

25픽셀만 마우스가 움직이면 블록 안에서 움직여도 가로세로 잘 판단해서 움직인다.. 흑흑

이거 너무 힘들었어.. 무려 3시간 넘게 걸렸다... ㅠ 이 몇줄 코드 뽑느라구 ㅠㅠ...

 

 

 

3) 가로 세로 일치 할 때  블록 삭제..

엊그제 가로세로 일치 조건문 줄였다고 좋아했는데..

쩔수없이 걍 하나로 합쳤다...

이건 뭐 내 맘대로 늘이고 줄이고 할 수 있으니까 상관은 없는데...

아직 내려오는 모션들이 이쁘지 않아서 손을 좀 더 봐야한다..

 

 

 

 

 

내일의 할 일

내려오는 모션 이쁘게 수정..

가끔 터지는 문제 해결해보자.. (y의 -1 을 추가하면 될지도..?

오전중에 저것들이 끝나면 ... 특수블럭 하자! 라고 하려고 했는데,, 오전은 cocos2d 때문에 시간이 없겠구나 .ㅠㅠ

 

이런.. 하루 스케쥴이 짧아졌다... 이거 여유가 없겠는데..?

'Project (C++) > 1 Month Project' 카테고리의 다른 글

2주차 - 셋째날  (0) 2019.11.20
2주차 - 둘째날  (0) 2019.11.19
1주차 - 여섯째날  (0) 2019.11.16
1주차 - 다섯째날  (0) 2019.11.15
1주차 - 넷째날  (0) 2019.11.14
Posted by 파인애옹
,