2011-03-08 38 views
-1

這是我的主類代碼:獲取屬性到另一個在AS3

package { 
import flash.display.*; 
import flash.events.Event; 

public class Main extends Sprite{ 

    private var ball:Ball; 
    private var paddle:Paddle; 

    public function Main():void { 
     addToUI(); 
     beginCode(); 
    } 

    public function beginCode():void { 
     addEventListener(Event.ENTER_FRAME, move); 
     addEventListener(Event.ENTER_FRAME, hitTest); 
    } 

    public function move(event:Event):void { 
     ball.move(); 
    } 


    private function hitTest(event:Event):void { 
     if(ball.hitTestObject(paddle)){ 
      vy = -20; 
     } 
    } 

    private function addToUI():void { 
     paddle = new Paddle(); 
     ball = new Ball(); 
     addChild(paddle); 
     addChild(ball); 

     paddle.x = 50; 
     paddle.y = 200; 

     ball.x = 75; 
     ball.y = 100; 
    } 
} 

}

這是我的球類代碼:

package { 

import flash.display.*; 
import flash.events.Event; 

public class Ball extends MovieClip { 
    public var vy:Number = 10; 

    public function move():void { 
     vy += 2; 
     this.y += vy; 
    } 

    /* 
    public function hitTest(paddle):void { 
     if(this.hitTestObject(paddle)){ 
      vy = -20; 
     } 
    } 
    */ 
} 

}

我很難讓碰撞測試正常工作。當我使用f。恩。使用

trace("Collision works") 

在hitTest函數中,它的響應正確。但我無法改變vy屬性。我也嘗試在Ball類中編寫hitTest,但編譯器告訴我屬性paddle是未定義的。

我該怎麼做?

回答

1

你必須改變vy的球例如:

private function hitTest(event:Event):void { 
    if(ball.hitTestObject(paddle)){ 
     ball.vy = -20; 
    } 
} 
相關問題