2017-04-16 6 views
0

JFrame 위에 캔버스를 사용하여 2D 게임 엔진 용 이미지를 렌더링하는 방법에 대해 여러 가지 자습서를 배웠습니다. 이미지를 부드럽게 유지하기 위해 BufferStrategy를 만들어야했지만, 최근에 JPanel을 대신 사용하여 이미지를 렌더링한다고 들었습니다. JPanel을 사용해야합니까? 그렇다면 BufferStrategy를 생성해야합니까, 아니면 통합되어 있습니까? 나는 단지 정말로 잘못된 정보를 전달하고 있으며 나는 심지어 의미가 있습니까? 나는 초심자이므로 나를 교정하고 나를 인도하려고 자유롭게 느낀다. 나는 어떤 이유로이 일에 압도 당한다. P 고마워.2D 게임 엔진 용 캔버스와 JPanel의 차이점 (및 버퍼링)

답변

1

버퍼링 된 범위

활성 페인팅을 사용합니다. 그것은 당신에게 뭔가

  • 프레임 속도보다 나은 제어를 제공

    그린 도착시기를 직접 제어 할 수
  • 낮은 수준의 연결을 가지고 있으며, 액세스, 하드웨어 가속

스윙

을 제공합니다

"패시브 페인팅"을 사용합니다. 언제 그리고 무엇이 그려지는지 스케쥴링을 제어하는 ​​RepaintManager이 있습니다. 이것은 이벤트 디스 패칭 스레드에 게시되고 다른 모든 이벤트와 함께 처리됩니다.

  • 그림 시스템
  • 가변 프레임 레이트

는 일반적으로이 다이렉트 X 나 OpenGL을 중 하나입니다, 같은 렌더링 파이프 라인을 통해 연결되어

게임의 직접 제어 엔진

에 따라 다릅니다. 대부분의 게임 엔진은 Canvas으로 시작해야합니다. 일반적으로 Java를 기본 렌더링 엔진에 연결할 수있는 유일한 방법이기 때문입니다. 대부분의 게임 엔진은 DirectX 또는 OpenGL을 통한 저급 기본 바인딩 또는 라이트 랩입니다. 직접 API에 액세스 할 수 있습니다.

일부 엔진은 여전히 ​​스윙을 사용할 수 있지만 상황에 따라 제한 될 수 있습니다. 3D 또는 고/일관성 프레임 속도가 필요없는 곳.

chooice

이것은 개인적인 견해입니다. 일정한 프레임 속도가 필요합니까? 3D를 원하십니까 아니면 2D입니까? 저수준 기능 (질감 조작 등)을 수행 하시겠습니까?

유용한 참조