1) 대 그림 그리기
종류의 철학적 질문이지만 ... "올바른"또는 "허용 된"게임 렌더링 방법은 무엇입니까 (2d, OGL 퍼스펙티브의 작동 방식을 이해합니다 ...)) 다른 해상도로? 내 이미지 (예 : Android APK)에 별도의 크기를 포함하고 하나의 캔버스에서 그리기 할 때 각 개체의 크기를 개별적으로 조정해야합니까? 아니면 해상도가 설정된 드로잉 캔버스에서 드로잉해야합니까? 그런 다음 이미지를 다른 디스플레이 캔버스로 크기를 조정해야합니까? 나는 일반적으로 말하고 있지만, 당신이 나를 필요로한다면 나는 자바를 사용하여 엔진을 구축하고있다.렌더링 : 한 번 그리거나 다시 그릴 수 있습니까? JOGL + Java2D + Java Swing이 번거롭습니까?
예측 가능한 장점/문제 :
#1) Resize at Draw
+ No additional drawing step
+ Sweet resolution
- Possible math/physics/placement issues
- Tons of math each step for scale
- Lots of resources
#2) Resize at Render
+ No additional math; one step
+ One set of images; smaller res. package
+ One set canvas size (easier to do math/phys./placement)
- Additional drawing step
- Poor resolution =(
그것은 # 2 문제 때문에 대 혜택의 수의 확실한 선택임을 보일 수있을 것입니다, 그러나 ...인가? 2D 게임의 크기를 조정하는 표준 방법이 있습니까?
2) JOGL + Java2D에 + 자바 스윙
가 동시에 JOGL, Java2D에, 그리고 자바 스윙을 사용하는 것이 번거로울 수시겠습니까? JOGL에서 2D 또는 레이아웃을 수행하는 것이 가치가 있습니까? 그 이유는 무엇?
EDIT : BufferedImage를 사용하여 그려지고 BufferedImage를 가로 세로 비율에 따라 패널 크기로 렌더링하면 스윙이 매우 비효율적입니다. 각 이미지/요소의 크기를 개별적으로 조정하면서 패널에 즉시 그려주는 것이 좋습니다. 내 첫 번째 가설이 아니야 ...
EDIT 2 : 바보 같은 ... 그냥 그래픽 컨텍스트을 스케일링하고 다른 조작을 수행하기 전에 조정 된 해상도의 크기로 변환하십시오. 성능 향상은 슈퍼 dooper 최고입니다. 이 질문에 대한 정답입니다. 규모/번역을 위해 그리기. B)
업데이트 : 원래 해상도의 크기 인 BufferedImage를 처음부터 만들었습니다. 그런 다음 이미지를 한 번만 디스플레이의 크기만큼 그렸습니다. B) – MrMysterious2502