내 간단한 2D 안드로이드 게임 엔진에 비트 맵 애니메이션을 추가하려고합니다 (아직 D ..라고 부르는 경우). 미리 정의 된 FPS/속도로 프레임을 순환하는 문제에 직면하고 있습니다.안드로이드 비트 맵 애니메이션
내가 지금해온 것은 단순히 currentTimeMillis를 가져 와서 참조로 사용하는 시스템이지만, 그게 최선의 결정이 아니라고 확신한다. 나는 현재 프레임을 드로잉 메서드에 전달하여이를 사용할 수 있다고 생각했다. 그리기 방법.
현재 나는 당신이에서 드로어 블을받을 객체를 가지고 있고이 같은 렌더러를 사용
canvas.drawBitmap(animation.getDrawable(), (int)x, (int)y, null);
및 getDrawable는()을 heres 애니메이션의 현재 프레임 또는 유일한 프레임 경우의 정지 영상과를 반환 코드
if(frames.size() > 1) {
long current = System.currentTimeMillis();
if (currentFrame == frames.size() - 1 && frameDirection == 1) {
frameDirection = -1;
} else if (currentFrame == 0 && frameDirection == -1) {
frameDirection = 1;
}
if ((current - lastFrame) > delay) {
currentFrame += frameDirection;
lastFrame = current;
}
}
return frames.get(currentFrame);
과 너무 나쁜 unefficient 보이는 내 눈에
.. 내가 이것에 대해 무엇을 할 수 있습니까? getDrawable에 현재 프레임을 전달하는 유일한 방법입니까, 아니면 어떻게해야합니까?
감사합니다. 스프라이트 시트를 거의 잊어 버렸습니다. 정말 고마워요! – Ruuhkis