온라인에서 둘러보고 다음에 대한 유효한 답변을 찾을 수 없습니다. 안드로이드에서 SurfaceView와 Thread를 사용하여 게임 루프를 돕는 경우, 일반적으로 onDraw 호출은 영구적으로 실행됩니다. 게임을 렌더링하는 데는 문제가 없지만 게임 논리가 조건 (게임 오버, 마우스 이벤트 등)을 확인하는 루프에 있기 때문에 한 번만 실행해야하는 코드가 있다면 어떻게해야할까요?Android Game Loop Logic Confusion
내가 이것이 불분명하다고 생각하기 때문에, 예를 들어 보겠습니다.
나는 여러 주에서 게임을하고 있습니다. 상태가 title로 설정되면, 게임 루프는 titleScreenRendering() 메소드를 수행하는데, 0에서 1 사이의 알파벳이 희미 해지는 이미지가 있습니다. 스플래시 화면과 같은 것입니다. 이 호출은 게임 루프에 있기 때문에 "titleScreenRendering"은 9999999 번 호출되기 때문에 이미지 페이딩 로직이 작동하지 않으며 분명히 작동하지 않습니다.
해킹처럼 느껴지는 한 가지 방법은 게임 루프가 메서드를 처음 실행할 때 부울을 만들고 false로 설정하는 것입니다. 따라서 코드 999999에서 적어도 코드의 일부만 호출하면됩니다. 더 이상 실행되지 않습니다.
내가 뭘 잘못하고 있니? 내 디자인이 잘못 되었습니까? 그렇다면 안드로이드 게임 자습서 중 99 %가이 방법을지지하는 이유는 무엇입니까? 나를 올바른 방향으로 인도 할 수있는 영리한 동료가있게하십시오. 나는 이것을 스스로하고 싶다. 그러나 나는 도서관을 사용하기를 매우 유혹한다.
안녕하십니까. 안녕하세요. 따라서 부울을 사용하여 코드의 일부를 한 번만 실행하도록 제한하고 루프를 끝없이 렌더링하도록 제안 하시겠습니까? 나는 마치 게임 루프가 이런 식으로 작동해서는 안되는 것처럼 느낍니다. 왜 "initTitleScreen"같은 것을 한 번만 호출하지 않고 9999x 번 호출해야합니까? 이게 내가 디자인 한 실수라고 생각해. – Fenix
내 대답이 업데이트되었습니다. – Nocare