2014-04-10 4 views
0

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)

+0

업데이트 : 원래 해상도의 크기 인 BufferedImage를 처음부터 만들었습니다. 그런 다음 이미지를 한 번만 디스플레이의 크기만큼 그렸습니다. B) – MrMysterious2502

답변

1

JOGL 또는 Java2D에 대한 많은 경험이 없으므로 두 번째 질문에 완전히 답할 수는 없지만 충돌이나 불편한 이유는 없습니다.

첫 번째 질문은 분명히 다릅니다. 타겟 고객이 무엇입니까? 게임 메모리가 집중적입니까 (많은 게임이 고해상도/저해상도 옵션을가집니다). 엄청나게 다른 화면 크기에서도 사용할 수있는 게임입니까? 그렇다면 각기 다른 크기의 원본 (최대 크기)으로 크기가 조정 된 2-3 개의 서로 다른 "패키지"자산을 제공 할 수 있습니다. 이미지를 그리는 수학은 생각만큼 많이 아닙니다. 또한

: 당신이 게임 올바른 방법을 구축 할 경우

, 당신은 전혀 많은 수학을 할 필요가 없습니다 것입니다. 어떤 종류의 Camera 클래스를 가지고 있다면 GameWorld을 볼 수 있습니다. 그러면 각 이미지를 독립적으로 스케일링하는 대신 카메라의 이미지를 스케일링하면됩니다.

+0

입력 해 주셔서 감사합니다. 제 상황에서는 극도의 이식성이 필요합니다. 그렇습니다. 자원 집약적이고 메모리 집약적 인 방법이 적합합니다. 특정 플랫폼에 필요하지 않은 리소스는 항상 제외 할 수 있습니다. 카메라의 아이디어는 훌륭합니다. 어쩌면 해상도가 문제가되지 않도록 일종의 OGL 퍼스펙티브를 2D 퍼스펙티브 (-1 대 1)에 적용 할 수 있습니다. 좋은 대답. – MrMysterious2502