2017-04-19 2 views
1

저는 LWJGL 래퍼 인 Slick2D에서 일하고 있습니다. 나는 새로운 글꼴과 트루 타입 폰트를 만드는 데 드는 성능 비용을 들이지 않고도 문자열의 글꼴 크기를 애니메이션/크기 조절하려고합니다. 여기에 내가 현재 가지고있는 작업은 다음과 같습니다각 렌더링마다 새 글꼴 인스턴스를 만들지 않고 Slick2D에서 글꼴 크기를 애니메이션화하는 방법은 무엇입니까?

public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException { 
    Font pulsingFont = new Font("Verdana", Font.PLAIN, (int) Math.abs(Math.sin(frameCount) * 20) + 10); 
    TrueTypeFont pulsing = new TrueTypeFont(pulsingFont, true); 
    pulsing.drawString(200, 200, "Pulsing Text", Color.black); 
} 

public void update(GameContainer gc, StateBasedGame sbg, int DELTA) throws SlickException { 
    frameCount += 0.1; 
} 

내가 글꼴 크기를 변경하려면 알고있는 유일한 방법은 내가 또한 TrueTypeFont 매 프레임의 새로운 인스턴스를 만들 필요가 의미 글꼴에 있습니다. 이 선들만으로 막대한 지체가 발생합니다.

각 프레임마다 새로운 인스턴스를 만들지 않고 글꼴 크기를 움직이게 할 방법이 있습니까?

답변

1

예 그래픽 구성 요소의 크기를 조절할 수 있습니다. 이렇게하면 모든 것을 조절할 수 있으므로 텍스트 렌더링과 함께 내려간 후에 다시 크기를 조정하십시오.

그래픽 크기의 증가/감소 때문에 x/y 위치를 조정해야합니다. Slick2d의 문서에서

: http://slick.ninjacave.com/javadoc/org/newdawn/slick/Graphics.html : 당신이 수직 또는 그래픽 요소 아래 수 있음을 의미

scale(float sx, float sy) 
    Apply a scaling factor to everything drawn on the graphics context 

. 텍스트를 렌더링하십시오. 그래픽 구성 요소를 보통으로 다시 조정하십시오. 나머지 렌더링 작업을 수행하십시오.

관련 문제