2011-03-10 8 views
0

플래시 AS3에서 여러 항목이 떨어지는 게임을 개발 중이며 하단에서 마우스를 사용하여 잡아야합니다.플래시 게임 개발 AS3

게임에 대해 간단히 알려 드리고 싶습니다. 이것은 내가 지혜로운 기능에 그것을 만들 원하는 것입니다 http://www.playitontheweb.com/games/Catch-Falling-Fruit-game.htm

At frame 1 > Preloader 
At frame 2 > Game front page. 
At frame 3 > Game introduction. 
At frame 4 > user will b playing the game. 
At frame 5 > Final Score. 

:

비슷한 게임에 대한 링크입니다.

다음은 모든 프레임에서 게임을 실행하는 스크립트 스크립트 (AS3)입니다.

package { 
import flash.display.*; 
import flash.events.*; 
import flash.text.*; 
import flash.utils.Timer; 
import flash.utils.getDefinitionByName; 

public class CatchingGame extends MovieClip { 
    var catcher:Catcher; 
    var nextObject:Timer; 
    var objects:Array = new Array(); 
    var score:int = 0; 
    const speed:Number = 7.0; 

    public function CatchingGame() { 
     catcher = new Catcher(); 
     catcher.y = 350; 
     addChild(catcher); 
     setNextObject(); 
     addEventListener(Event.ENTER_FRAME, moveObjects); 
    } 

    public function setNextObject() { 
     nextObject = new Timer(1000+Math.random()*1000,1); 
     nextObject.addEventListener(TimerEvent.TIMER_COMPLETE,newObject); 
     nextObject.start(); 
    } 

    public function newObject(e:Event) { 
     var goodObjects:Array = ["Circle1","Circle2"]; 
     var badObjects:Array = ["Square1","Square2"]; 
     if (Math.random() < .5) { 
      var r:int = Math.floor(Math.random()*goodObjects.length); 
      var classRef:Class = getDefinitionByName(goodObjects[r]) as Class; 
      var newObject:MovieClip = new classRef(); 
      newObject.typestr = "good"; 
     } else { 
      r = Math.floor(Math.random()*badObjects.length); 
      classRef = getDefinitionByName(badObjects[r]) as Class; 
      newObject = new classRef(); 
      newObject.typestr = "bad"; 
     } 
     newObject.x = Math.random()*500; 
     addChild(newObject); 
     objects.push(newObject); 
     setNextObject(); 
    } 

    public function moveObjects(e:Event) { 
     for(var i:int=objects.length-1;i>=0;i--) { 
      objects[i].y += speed; 
      if (objects[i].y > 400) { 
       removeChild(objects[i]); 
       objects.splice(i,1); 
      } 
      if (objects[i].hitTestObject(catcher)) { 
       if (objects[i].typestr == "good") { 
        score += 5; 
       } else { 
        score -= 1; 
       } 
       if (score < 0) score = 0; 
       scoreDisplay.text = "Score: "+score; 
       removeChild(objects[i]); 
       objects.splice(i,1); 
      } 
     } 

     catcher.x = mouseX; 

    } 
} 
} 

는 또한 우리는 60 초 점에서 타이머를 추가 할 수 있습니다를 부탁드립니다 ...... 도와주세요 : 1 내가 원하는 해달라고 5에서? 타이머가 끝나 자 마자 마지막 프레임으로 이동하여 최종 점수를 표시합니다.

답변

0
  • 전화 stop()는, 현재 프레임 내에 있어야 다음 장면으로 넘어갑니다() 넥스트를 호출 할
  • 전역 함수 getTimer() 당신에게 SWF 발사에서 전달 된 밀리 초 수를 제공합니다, 당신은 시간을 측정 할 수 있습니다.
0

원하는 프레임으로 이동하여 멈추려면 gotoAndStop()을 사용하십시오. stop()에 대한 명령은 단순히 프레임 변경 및 중지 동작을 하나로 묶어주기 때문에 좋습니다. 그렇지 않으면 그들은 같은 것이다.