저는 자바 일반 그래픽 장치, awt 및 스윙 물건을 그래픽, Graphics2D 등으로 사용하고 잠시 후 LWJGL에 대한 일련의 자습서를 보았습니다. 나는 그 시스템에서 나의 게임 중 하나를 정말로 즐겁게하고 다시하기로 결정했다; 나는 이미 논리가 있었기 때문에 쉽게 될 것이라고 생각했다. 그리고 나는 단지 하나의 개념적 문제에 부딪쳤다.LWJGL을 사용하여 이미지를 메모리에 저장하는 방법은 무엇입니까?
이 특별한 경우에는 상자를 나타내는 클래스 상자가 있었지만 이미지로 그려 테두리를 만들었습니다. 나는 9 개의 이미지를 가지고 있는데 하나는 중앙 (하나의 보통 컬러 1 픽셀 너비 이미지), 4 개는 측면, 4 개는 모서리입니다. 이 이미지는 모두 BufferedImage 배열에 포함되어있었습니다. 정적 인 이미지는 모든 상자에서 동일했기 때문입니다. 그런 다음, 각 상자에는 상자를 그린 전역 BufferedImage가 있습니다. 이는 상자의 모든 부분에 이미지를 그려야하기 때문에 느린 과정입니다. 그런 다음, 실제 그리기 방법 (Graphics g을 수신)에서 BufferedImage를 올바른 위치에 그렸습니다. 일단 상자가 생성되면 상자의 크기가 변경되지 않았으므로 상자의 이미지를 생성자에서 한 번만 '생성'해야했습니다.
glW 메서드 (glBegin(), glVertex2i())가 화면에 항상 그려지기 때문에, LWJGL을 사용하여이를 수행하는 방법을 파악할 수 없었습니다. 그렇다면 어떻게 이미지에 그림을 그릴 수 있으며 (BufferedImage를 사용하여) 이미지를 메모리에 저장하는 방법과 필요할 때 화면에 어떻게 그릴 수 있습니까? 나는 LWJGL이 텍스처를 사용한다는 것을 알았고, BufferedImage의 첫 번째 정적 배열을 텍스처의 정적 배열로 만든 다음, 그 안에 9 개의 텍스처 각각을 올바르게 저장했습니다. 올바른 방법인가요? 글로벌 BufferedImage는 글로벌 Texture일까요? 이 경우 텍스처에 '그리는'방법은 무엇입니까?
대단히 감사합니다. 지금 당장 검색 중이므로 매우 유용 할 것입니다. 상자에 관해서는 텍스처가 어떻게 작동하는지 정확히 알지 못하지만, 이렇게하는 것입니다. 만드는 상자 하나마다 크기가 다르며 모두 고정 된 크기의 테두리가 있습니다. 그래서 나는 더 나은 방법은 9 개의 이미지를 만드는 것이라고 생각했습니다. 더 좋은 방법이 있는지 나는 모른다. 정적 텍스쳐로 경계가 상자와 함께 커지게 될 것이라고 상상했다. 나는 그것을 원하지 않는다. –