Power Apps에서 게임을 만들고 배운 노하우 -2- 게임 내 타이머를 사용하여 일정 간격으로 처리를 실행합시다.

그런데, 전회의 기사에서는 게임내 타이머를 만들었습니다.

Power Apps에서 게임을 만들고 배운 노하우 -1- 게임 내 타이머를 만들자

이번은 이 타이머를 이용해, 일정 간격으로 무언가의 처리를 실시하는 방법에 대해입니다.

전환 컨트롤을 활용합시다.



슬라이더 컨트롤을 이용한 게임 내 타이머를 이용해 일정 간격으로 처리를 실행하려고 했을 때, 구현 방법의 하나로는 슬라이더 컨트롤의 「OnChange」를 이용하는 방법이 있습니다.

처리의 패턴이 적은 경우는 그쪽의 방법이라도 좋다고 생각합니다만, 게임과 같이 다양한 처리가 필요한 경우에는 「스위치」컨트롤을 이용하는 것이 추천입니다.



이유는 Power Apps에서는 스텝 실행 등의 디버그 수단이 준비되어 있지 않기 때문에, 동작의 모습을 가능한 한 눈으로 보고 확인할 수 있도록 작성해 두는 것으로 작업 효율을 대폭 향상시킬 수 있기 때문에 입니다.

전환 제어의 동작을 이해합시다.



전환 제어의 동작은 간단합니다. 「Default」프로퍼티에 지정한 조건식이 「true」의 경우는 「Check」상태가 되고, 「false」의 경우는 「Uncheck」상태가 됩니다.



그리고, 상태가 변화했을 때 「OnChange」, 변화한 결과 Check 상태가 되었을 때 「OnCheck」, 변화한 결과 Uncheck 상태가 되었을 때 「OnUncheck」에 지정하고 있는 처리가 실행됩니다.

일정 간격으로 처리를 실행하려면



이 동작을 이해한 후, 게임내 타이머를 이용해 일정 간격으로 처리를 실행하려면 「Default」프로퍼티에 지정하는 조건식이 중요하게 됩니다.

예를 들면 이번에 작성하고 있는 게임내 타이머는 1초간에 20씩 증가하는 것이므로, 20 증가할 때마다 Check 상태로 전환해 주면 됩니다. 이렇게 하려면 다음과 같은 조건식을 Default로 지정합니다.
Mod(GameTimer.Value,20)=0

GameTimer는 게임 내 타이머로 만든 슬라이더 컨트롤의 이름입니다. 그 컨트롤의 값을 Mod 함수를 이용해 20으로 나눈 나머지(잉여)를 구해, 잉여가 0이 되었을 때에 true가 되도록 조건식을 지정합니다. (잉여는 0과 19 사이의 순서로 변경되고 반복됩니다)

이 나누는 숫자를 더 작게 하면 보다 고빈도로 처리가 실행되고, 더 크게 하면 보다 저빈도로 처리가 실행되게 됩니다.

그리고는, 이 간격으로 실행하고 싶은 처리를 「OnCheck」프로퍼티에 써 둘 뿐입니다.

요약



게임 내 타이머를 이용하여 일정 간격으로 처리를 실행하려면 "스위치"컨트롤을 이용하는 것이 좋습니다. Power Apps에서는 스텝 실행과 같은 디버깅 수단을 제공하지 않으므로 가능한 한 작동하는 방식을 눈으로 보고 확인할 수 있도록 만들어두면 생성 시 효율이 크게 향상됩니다.

조건식을 고안함으로써 보다 복잡한 타이밍에서의 처리도 가능하게 됩니다.

좋은 웹페이지 즐겨찾기