2014-01-27 8 views
0

효과적인 검색을위한 올바른 용어를 찾아 낼 수 없어이 문제가 발생합니다. 여기에 내가 일하고있는 것이있다 : 그것은 청중 앞에서 무대에서 연주되는 공간 사수이다. 큰 화면은 우주선을 비행하는 우주선이 소행성을 촬영하는 관객을 보여줍니다. 하단에는 건강, 방패, 시간 및 탄약이 표시된 머리가 있습니다. 방패는 시간이 지남에 따라 자동으로 고갈됩니다. 0 %에 도달하면 관객이 조종사 (큰 화면을 보지 않는 컴퓨터의 사람)에게 전화를 걸도록 3 자리 코드가 표시됩니다. 코드를 입력하면 방패가 다시 활성화되고주기가 계속됩니다. 다시로드하는 경우에도 마찬가지입니다.movieclip을 미러링/복제하십시오 .3 공기

저는 Flash CC와 AS3을 사용하는 Air 데스크톱 응용 프로그램에서 작업하고 있습니다.

지금은 화면이없는 컴퓨터 작업자를 보게 할 것입니다. 관람자는 어느 방향으로 갈 것인지, 언제 발사 할 것인지, 재 장전 및 재 방위에 관한 코드를 알려줄 책임이 있습니다. 이것은 고등학생을위한 것이므로 목표는 큰 소리로 외칩니다.

조종사가 HUD를 제외한 모든 것을 볼 수 있기를 바랍니다. 내가 말했듯이, 그의 등은 큰 스크린에 있고 키보드 만 가지고있다. 파일럿이 볼 수있는 다른 창에서 내 게임을 복사/미러링/복제/표시 할 수 있습니까? 컴퓨터를 사용하면 확장 된 디스플레이로 프로젝터를 사용할 수 있습니다. 대화 형 일 필요는 없습니다. 왜냐하면 그는 큰 화면에 표시되는 게임을 제어 할 것이기 때문입니다. 이것은 단지 그에게 머리가 보이지 않고 날아 다니는 배를 보여줄 것입니다.

나는 그것이 의미가 있기를 바랍니다. 어떤 아이디어? 너희들이 나에게 줄 수있는 어떤 도움이라도 고맙다!

토니

답변

1

내가 별도로 각 질문을 해결하기 위해 노력하겠습니다.

투영 화면과 조종사 용 모니터에 무언가를 표시하려면 두 화면을 모두 포함하고 두 화면의 해상도로 창 모드로 실행하도록 공기 응용 프로그램을 설계해야합니다 . 모니터가 1920x1080 해상도로 실행되고 프로젝터가 1024x768을 밀면됩니다. 이것은 당신이 응용 프로그램처럼 보이고 싶은 것입니다 :

application layout

당신은 사용자 정의 크롬을 사용하도록 에어 설정을 설정할 수 있습니다

,이 표준 윈도우 크롬을 숨 깁니다.

advanced air settings

이 모든 본질적으로 하나의 컴퓨터에서 응용 프로그램을 실행하고있을 수 있도록 별도의 두 당신을 설정합니다 : 당신은 또한 고급 탭의 초기 화면 설정을 할 수 있습니다 표시합니다.

이제 "복제 중"부분입니다. 파일럿의 관점에서 볼 때 원하는 부분을 계속 드로잉 할 수는 있지만 원하는 부분은 표시하지 않는 것이 좋습니다. 이 프로세스는 일반적으로 blitting으로 알려져 있습니다.

귀하의 신청서가 정확히 어떻게 설정되었는지는 모르지만 귀하의 HUD는 다소 독립적이라고 생각합니다.그럼 당신은 HUD를 제외하고 거기에 다 함께 MovieClip을 가정 해 봅시다, 여기 당신이해야 할 작업은 다음과 같습니다

이를 해결하려면 다음

var _pilotViewCanvasData:BitmapData = new BitmapData(1920, 1080); // ideally, you would make this just big enough to display what you need to display, not the actual size of the pilot view 
var pilotViewCanvas:Bitmap = new Bitmap(_pilotViewCanvas); 
//add your canvas to the pilot's view area of your application 
addChild(pilotViewCanvas); 

//add an enter frame listener so you can repaint the canvas every frame 
addEventListener(Event.ENTER_FRAME, onTick); 
function onTick(e:Event):void 
{ 
    _pilotViewCanvasData.draw(yourGameClip); // this is where you paint the canvas with your display 
} 
+0

이것은 아주 좋습니다! 도움을 주셔서 감사합니다! 예, HUD는 영화에 포함 된 영화 클립이므로 비트 맵 드로잉이 완벽한 솔루션입니다. 확장 된 스테이지 크기의 트릭이 나와 함께 할 수도 있지만 내 상황에 이상적인 것은 아닙니다. 게임 자체가 배포되고 있으며 컴퓨터 또는 프로젝터의 해상도를 알 수 없습니다. 필자는 통신을 위해 두 응용 프로그램 간의 로컬 연결을 사용하여 파일럿을위한 별도의 에어 응용 프로그램을 만드는 것에 대해 생각하고있었습니다. 나는 전에 이것을 한 적이 없다. pilotViewCanvas를 다른 항공 애플리케이션으로 보낼 수 있습니까? 신속하고 철저한 답장을 보내 주셔서 다시 한번 감사드립니다. – Tony

+0

'LocalConnection'을 사용하여 두 응용 프로그램간에 통신 할 수 있습니다. 이 시점에서 앞뒤로 전달되는 정보의 양을 최소화하고자 할 수 있습니다. 게임의 크기에 따라 'BitmapData' 객체가 상당히 커질 수 있습니다. 즉, 좌표를 앞뒤로 전달하는 것을 고려할 수 있습니다. 그런 다음 파일럿보기에서 좌표를 사용하여 게임보기를 다시 구성 할 수 있습니다. – Marcela

0

것은 그래서 내가 (마르셀의지도 덕분에) 한 일이다 듀얼 스크린 문제로 2 개의 Air 프로젝트를 만들었습니다. 첫 번째 Air 프로젝트는 내 게임 (소행성이 우주선으로 떨어지는 기본 우주 사수)이었습니다. 두 번째 에어 프로젝트는 파일럿을위한 프로젝트였습니다. 내 게임의 목표는 관객에게 지침 (예 : "FIRE!" "RELOAD!" "MOVE LEFT!"등)을 사용하여 게임을 제어하는 ​​사람에게 비명을 지르도록하는 것이 었음을 기억하십시오. 나는 우주선을 통제하는 사람에게 제한된 세부 사항을 보여주는 독자적인 인터페이스를 갖기를 원했다. 시범 프로젝트를 위해 나는 무대에있는 우주선의 녹색 윤곽선이있는 레이더 타입의 배경을 만들었습니다. localconnection을 사용하여 우주선이 움직여 조종사의 녹색 윤곽선에 적용 할 때마다 우주선의 x & y 좌표를 기본 게임에서 파일럿 앱으로 전달했습니다.

astroid가 무대에 추가 될 때마다 필자는 소행성 좌표와 함께 파일럿 앱에 또 다른 localconnection 메소드를 보냈습니다. 결국, 우주선, 미사일, 그리고 우주 비행사들은 모두 조종사의 응용 프로그램에 작은 비말 형태로 나타났습니다. 메인 게임에서 아스트로이드가 파괴 된 경우 파일럿의 앱에 로컬 연결 방법을 전송하여 방금 파괴 된 소행성과 동일한 색인의 배열에서 블립을 제거하도록 알려줍니다.

놀랍도록 잘 작동합니다. 옳은 방향으로 나를 가리켜 줘서 고마워, Marcela!