지금은 화면을 끊임없이 다시 그리는 메인 게임 루프가 있습니다. 이 스레드를 느리게 할 필요가 있지만 더 빠른 속도로 다른 항목을 그립니다. 새 스레드를 만들어야합니다. 문제는 새 스레드를 만드는 방법을 알기가 어렵다는 것입니다. 새 스레드를 만드는 방법을 알고 있습니다. 새 스레드에서 Graphics2D 드로잉을 구현하는 방법에 대해 고민하고 있습니다. 예를 들어, 나는 전형적인 시작점 인 코드를 가지고 있고 그 다음에는 무엇을 그리고 언제 드로잉 할지를 지시하는 다른 클래스에 정의 된 draw 메소드가있다. 나는 분기하고 다른 드로잉 드로잉을하고 자체 일을하고 싶다면 어떻게해야합니까?Java에서 화면을 그리는 새 스레드는 어떻게 만듭니 까?
완전히 새로운 PaintComponent()를 만드는 새로운 클래스를 만들어야합니까? 아니면 단순히 새로운 Graphics2D 객체를 만들면 다른 글꼴 색상 등을 사용할 수 있습니까? 내가 가장 혼란스럽게 생각하는 것은 g2d를 인수로 전달해야하기 때문에 다른 draw 메소드를 호출 할 수 없다는 것입니다. 따라서 g2d 객체가 이미있는 다른 메소드 내에서 스레드를 만들어야합니다.
혼란 스러울 경우 자바 초보자로서 사과드립니다. 더 많은 정보가 필요하시면 알려주세요. 미리 감사드립니다.
public abstract void draw(Graphics2D g2d);
@Override
public void paintComponent(Graphics g)
{
Graphics2D g2d = (Graphics2D)g;
super.paintComponent(g2d);
draw(g2d);
}
저는 게임 전문가가되는 것과는 거리가 멀지만 각 반복마다 빠른 속도로 다시 그려야하는 것을 다시 그리는 독특한 게임 루프를 고수해야합니다. N 회 반복마다 느린 속도. –
그건 분명히 일에 대해가는 한 방법입니다. 네가하는 말을 이해한다면 내가 카운터를 사용할 수 있고 모든 루프마다 하나의 루프 만 가질 수 있다고 제안한다. 이 경우에는 실제로 여러 스레드를 사용해야한다고 생각합니다.보다 진보적 인 게임이 그것을 필요로하기 때문에 어쨌든 더 잘 사용하는 법을 배우는 것이 좋을 것입니다. 귀하의 의견을 보내 주셔서 감사합니다. 나는 누군가 다른 아이디어를 기다리고 기다릴 것이다. – user3312030