-
카드 두 번 연속으로 맞추면 시간 추가 기능/스파르타카드게임) 미니프로젝트 1주차)게임 개발기록 2024. 4. 16. 17:57
두 개 연속으로 맞추면 시간이 추가 되는 기능을 구현한다.
여러 방법이 있겠지만 본인은 변수를 하나 생성하고 카드를 올바르게 맞추었을 때 작동 되는 함수에 변수값이 1씩 오르는 코드를 적고 그 값이 2가 되면 시간이 추가 되는 기능을 작성 하겠다.
그리고 카드를 맞추지 못 했을 때 변수에 값을 1씩 빼면 될 것이다.
여기서 주의 할 점은 변수의 값이 0일 경우에 1을 빼면 안 된다. 이것도 유의해서 코드를 작성 해준다.
먼저 변수를 하나 선언 해주겠다.
int combo
로 변수를 선언 해주었다.
그리고 카드 매치가 되었을 때 실행 되는 함수 안에
combo++
코드를 작성 해서 변수의 값이 오르게 한다.
만약 이 값이 --코드가 작동이 되는 함수가 실행 되기 전에 ++가 한 번 더 실행 되면 2가 되고 2가 되면 시간을 추가 하는 것이다. 만약 카드를 못 맞춰서 --코드가 실행이 되어서 2가 되지 않아 콤보효과가 적용 되지 않는 것이다.
그러면 매치 되었을 때 실행 하는 함수 안에 combo 값이 2가 되었을 경우에 시간을 추가 하는 코드를 작성 해준다.
if(combo ==2)
{
time += 5.0f
}
라고 적어주면 2번 연속으로 카드를 맞추었을 때 시간에 5초가 추가가 된다.
그리고 조건을 ==2로 하였으니 계속 실행이 되게 하기 위해 combo 값을 0으로 만들어 주는 코드도 추가 해준다.
if(combo ==2)
{
time += 5.0f
time = 0f
}
이러면 콤보효과가 적용이 되고 다시 0이 되고 또 두 번 연속으로 맞추었을 때 콤보값은 2가 되며 시간이 추가 될 것이다.
그리고 -- 코드도 작성 해준다.
이 것은 카드 매치를 실패 했을 때 실행이 되는 함수에 작성 해주면 된다.
그 함수 안에
combo--;
코드를 추가 시켜준다.
하지만 우린 2번 연속으로 맞출 경우에 이 기능이 실행 되게 만들 것인데, 이렇게 코드를 마무리 하면 combo의 값은 0보다 작아져 2번 연속을 맞추더라도 콤보 기능이 실행 되지 않을 것이다.
그러므로 combo의 값이 0이라면 -- 산술연산자가 실행이 되지 않게 코드를 수정 해준다.
if(combo>0)
{
combo--;
}
이렇게 하면 우린 문제 없이 2번 연속으로 맞추었을 때 시간이 추가가 되는 기능을 구현 할 수 있게 된다.
2 번 연속을 맞추는 게 쉽지 않아, 올바르게 작동이 되는지 확인 하기가 쉽지가 않다.
그래서 debug.log로 combo의 값을 계속 확인 해보는 작업을 하겠다.
Debug.Log(combo);
코드를 ++와 —가 실행 되는 곳에 추가 시켜준다.
내가 생각 한 대로 작동이 되는 모습이다.
(이 때 게임을 정지하고 인스펙터를 확인 해 카드의 위치들을 확인 해서 연속으로 맞추었다. 시간도 5초가 증가가 되고 combo의 값도 알맞게 변하는 것을 확인 했다.)
'게임 개발기록' 카테고리의 다른 글
visual Studio로 BMI 계산기를 만들어 보자. (팀 스파르타 (0) 2024.04.22 visual Studo로 화씨 온도 계산기를 만들어 보자.( 팀 스파르타 (0) 2024.04.22 카드 뒤집힌 횟수 카드 뒷면에 표시하기/스파르타캠프) 미니프로젝트1주차) (0) 2024.04.16 시작 화면에 배경색바꾸기 기능 추가/스파르타카드게임) 미니프로젝트 1주차) (0) 2024.04.16 게임이 끝날 때 매칭 시도 한 횟수 표시하기/스파르타카드게임) 미니프로젝트 1주차) (0) 2024.04.16