비디오 게임에서 스킨 적용 가능한 "버튼"을 그리는 가장 좋은 방법은 무엇입니까?
문제
게임 응용 프로그램에서 스킨 가능 "버튼"을 그리는 방법에 대한 아이디어를 찾고 있습니다.버튼 배경에 벡터가 아닌 고정 스프라이트 이미지를 사용하면 버튼 크기를 쉽게 조정할 수 없습니다.크기 조정 가능한 버튼(예: Windows 버튼 그리기)을 그리는 코드를 작성하면 프로그래머가 개입해야 하며 이로 인해 스키닝이 어려워집니다.또 다른 옵션은 버튼을 9개의 작은 이미지(3x3)로 나누고 모두 늘리는 것입니다. 마치 HTML에서 둥근 모서리를 만드는 것과 비슷합니다.
또 다른 "더 쉬운" 방법이 있나요?가장 좋은 접근 방식은 무엇입니까?
해결책
정말로 이 작업을 수행하려면 텍스처 좌표를 사용하는 것이 좋습니다.테이블을 사용하여 HTML에서 늘일 수 있는 버튼/패널 디자인을 만드는 것과 마찬가지로 모서리, 위쪽 늘일 수 있는 영역, 아래쪽 늘일 수 있는 영역, 측면 늘일 수 있는 영역, 중간의 UV 좌표를 정의하기만 하면 됩니다.
XNA 엔진(비록 비공개 소스 엔진임에도 불구하고)에서 구현되는 예는 다음을 참조하세요.http://www.Flatredball.com/frb/docs/index.php?title=SpriteFrame_Tutorial
다른 팁
예.저는 편집자로 일하고 있습니다.XNA용 XAML과 유사한 언어(또는 원하는 경우 OpenLaszlo와 유사한)입니다.따라서 편집기에서 버튼 크기를 조정할 수 있습니다.버튼의 크기는 스타일 시트에 따라 조정될 수도 있습니다.
실제 디자인에서는 버튼의 크기가 모두 동일할 가능성이 높다는 말씀이 맞습니다.하지만 창 앱에서도 텍스트를 수용하기 위해 버튼을 더 넓게 만들어야 하는 경우가 있습니다.
셰이더를 사용하면 가능합니다.텍셀 조회를 수행해야 할 수도 있지만 복잡한 UI에서 삼각형 수가 줄어들 것입니다.