2011-11-28 2 views
0

Layer 클래스에는 원점을 기준으로 위치/크기 조정을 허용하는 편리한 SetOrigin(x, y) 함수가 있습니다. 나는 항상 이것을 이미지의 중심으로 설정하여 중심을 중심으로 회전 할 수 있습니다.Layer.SetOrigin HTML5 (PlayN)가 아닌 Java에 적용

이것은 Java 버전에서만 작동하며 HTML5 버전에서는 작동하지 않는 것 같습니다.

enter image description here

이 이것을인가 : 다음 두 항목이 제대로 오버레이되는 Java 버전의 스크린 샷은

여기

enter image description here

생성 된 HTML5 버전의 모습입니다 (중앙 중심으로 회전)의 곤충?

+0

나는 setOrigin를 사용하고 자바와 HTML5 모두에서 작동합니다. 코드를 게시 할 수 있습니까? – samskivert

+0

또한 어떤 브라우저를 사용하고 있습니까? HTML5에는 두 개의 백엔드 WebGL과 div 및 CSS를 사용하는 백엔드가 있습니다. 후자는 캔버스를 기반으로 한 재작 성을 위해 곧 사라질 것입니다. 버그가 WebGL 백엔드가 아닌 divs + CSS 백엔드에 있으면 새 Cavnas 기반 백엔드에서 수정 될 것입니다. – samskivert

+0

@samskivert 나는 오늘 밤에 나중에 코드를 게시하려고 시도 할 것이다. Chrome을 사용하고 있습니다. – ashes999

답변

2

아직로드되지 않은 이미지의 크기를 기반으로 SetOrigin을 호출 할 가능성이 있습니까?

나는과 같이 단지 내 ResourceCallback 초 이내에 SetOrigin을 사용하는 경향이 :

paddleImage = assetManager().getImage("images/paddle.png"); 
paddleImage.addCallback(new ResourceCallback<Image>() { 
    @Override 
    public void done(Image resource) { 
    centerX = resource.width()/2; 
    centerY = resource.height()/2; 
    paddleLayer.setOrigin(centerX, centerY); 
    } 
}); 
+0

Java에서이 명령은 실행되지만 HTML5에서는 실행되지 않는 이유는 무엇입니까? – ashes999

+0

이 코드는 Java 및 HTML5에서 올바르게 실행됩니다. 이미지가로드 될 때까지 기다리지 않으면 Java에서 올바르게 실행되는 것으로 나타납니다. 여기서 assetManager는 데이터를 동 기적으로 가져올 수 있으며 웹에서 실행하려고하면 깜짝 놀라게됩니다 (로드가 비동기이므로 콜백). –

관련 문제