나는 플래시 게임을 만들고 있는데, 당신의 캐릭터는 그 중 일부만 볼 수 있도록 무대 마스크를 사용합니다. 그러나 전체 무대가 가면을 원하지는 않습니다. "게임 영역"만 숨기고 싶습니다. 내 무대가 800x800이라고 상상해보십시오. 그러나 "게임"은 800x600의 상단 부분 만 차지합니다. 게임 공간 주변을 걷는 동안 채팅이나 정보 표시에 사용할 수있는 하단 200xx가 있습니다.무대의 일부를 선택적으로 마스크하는 방법은 무엇입니까?
문제는 내가 마스크를 설정하고 마스크/다/무대에 있습니다. "게임 영역"밖에있는 것이 있더라도 마스크 뒤에 숨어 있습니다. 그래서 제 질문은 플래시 응용 프로그램에서 "게임 영역"에서 마스크를 사용할 수 있으며 응용 프로그램의 다른 부분에 영향을 미치지 않을 수 있습니까? 마스크 위에 항목을 선택적으로 넣을 수 있습니까?
감사합니다.
편집 : 명확화. 내 게임은 GameScreen 개체 초기화 해에 의해 시작 : 그 전에
game = new GameScreen(); //800 x 600. Declared as class variable
game.y = 40;
addChild(game);
, 마스크 모두 검은 색을 만들을, 나는 GameScreen 뒤에 검은 사각형 넣어 다음 GameScreen 객체가 초기화
var rect:Shape = new Shape();
rect.graphics.lineStyle(1, 0x000000);
rect.graphics.beginFill(0x000000);
rect.graphics.drawRect(0,0,800,600);
rect.graphics.endFill();
rect.y = 40;
addChild(rect);
///
/// Start the game
///
game = new GameScreen();
game.y = 40;
addChild(game);
를, 그것은 생성 당신의 성격을 볼 수 있도록 "구멍".
fogOfWar = new CircleMask();
addChild(fogOfWar);
this.mask = fogOfWar;
fogOfWar.x = player.x;
fogOfWar.y = player.y;
이제 게임 설정을하고 마스크에 둥근 구멍이 생겨 플레이어가 캐릭터를 볼 수 있습니다. 그러나 Game Screen 개체가 초기화 될 때도 정보 표시 줄이 화면에 배치됩니다. 이 정보 표시 줄은 마스크에 의해 숨겨집니다. 플레이어는 그것을 볼 수 없습니다. 문제는이 막대 (및 나중에 추가 될 다른 구성 요소)가 항상 플레이어에게 표시되기를 바랍니다. 나는 플레이어와 함께 움직이기 때문에 단순히 마스크를 통해 "구멍"의 모양을 변경할 수 없습니다. 그렇다면 게임 영역을 숨기면서 정보 표시 줄을 플레이어가 볼 수있게하려면 어떻게해야합니까?
다시 한 번 감사드립니다!
당신의 데모는 단지 녹색 화면을 보여 주며 각 타이틀은 그 값으로'[error]'를 보여줍니다. 마스크에 대한 블로그 게시물을 읽고 마스크하려는 객체에 적용해야하며 표시 목록의 해당 객체 앞에 배치해야합니다. – ocodo