2011-05-16 3 views
0

WheelParticle이 사라지는 CircleParticle에 도달하면 간단한 사라지는 동작을 만들려고합니다. 일반적으로 WheelPartical은 다른 CircleParticle을 반송하지만 WheelParitcal이 CircleParticle과 충돌하면 작업이 일시 중지되고 애니메이션이 재생되며 작업이 다시 시작되면 주변의 여러 원형 입자가 사라집니다.정지 및 재설정 휠 Partical - Actionscript Physics Engine (APE) (최신 트렁크)

문제는 WheelParticle이 완전한 멈춤에서 떨어지는 것이 필요하지만, 지금 존재하지 않는 CircleParticle에서 벗어난 것처럼 계속됩니다. 힘을 없애는데 문제가 있습니다. 나는 init(), addForce()를 시도하고 다른 것들을 .velocity로 바꾸지 만, 바운싱 동작을 계속하기를 원하고있다.

사운드의 충돌 이벤트를 캡처하기 위해 APE의 최신 트렁크 버전을 사용하고 있습니다.

package{ 

import flash.display.MovieClip; 
import flash.events.*; 
    import org.cove.ape.*; 

public class DropTest extends MovieClip { 

    public var self; 
    public function DropTest(){ 
     self = this; 

     APEngine.init(0.25); 
     APEngine.container = this; 
     //APEngine.damping = 0.92; 
     APEngine.addForce(new VectorForce(false,0,15)); 

     var defaultGroup = new Group(); 
     defaultGroup.collideInternal = true; 

     var peg1 = new CircleParticle(10, 30, 5, true, 0.2, 0.3); 
     defaultGroup.addParticle(peg1); 

      var peg2 = new CircleParticle(35, 30, 5, true, 0.2, 0.3); 
     defaultGroup.addParticle(peg2); 


     APEngine.addGroup(defaultGroup);   

     peg2.addEventListener(CollisionEvent.COLLIDE, function(evt:CollisionEvent){ 
       self.removeEventListener(Event.ENTER_FRAME, runAPE);  

       defaultGroup.removeParticle(peg2); 
/* The Wheel needs to stop and drop straight down from here. 
       This doesn't seem to work.*/ 
       wheel.init(); 

       self.addEventListener(Event.ENTER_FRAME, runAPE); 
     }); 

     var wheel = new WheelParticle(12, 0, 10, false, 3); 
     defaultGroup.addParticle(wheel); 

     this.addEventListener(Event.ENTER_FRAME, runAPE); 

    } 

    private function runAPE(evt:Event):void { 
     APEngine.step(); 
     APEngine.paint(); 
     } 
} 
} 

답변

0

나는 해결책이 있다고 생각한다. 난 그냥 지금 WheelParticle

peg2.addEventListener(CollisionEvent.COLLIDE, function(evt:CollisionEvent){ 
      self.removeEventListener(Event.ENTER_FRAME, runAPE);  

      defaultGroup.removeParticle(peg2); 
/* The Wheel needs to stop and drop straight down from here. 
      This doesn't seem to work.*/ 

      // Replace with this 
      defaultGroup.removeParticle(wheel); 
      wheel = new WheelParticle(wheel.px, wheel.px, 10, false, 3); 
      defaultGroup.addParticle(wheel); 


      self.addEventListener(Event.ENTER_FRAME, runAPE); 
}); 

유일한 문제를 다시 인스턴스화 당신이 그것을 다시 인스턴스화 바퀴의 변화 회전 할 때이다.

수동으로 회전을 변경하는 방법이 있습니까?