2011-03-09 2 views
-1

일부 총알을 쏘기 위해 노력하고 있으며 충돌 테스트가 완벽하게 작동하여 좀비도 아프니까요. 한 가지 문제를 제외하고는 좀비를 때릴 때 총알이 사라 지길 원합니다. 쉬운 의미로 들립니다. bulletContainer [a] .killBullet(); 그리고 output dialouge는 함수가 아니라고 말합니다 (함수에 대해 알고 있고 "bulletClass"클래스 자체가 올바르게로드 됨). 일단 총알을 만들면 총을 쏘아서 내 마음이 들지만 그 안에 들어있는 변수를 듣지 않아 사라질 필요가 있음을 알리는 메시지/killBullet()Hittesting 잘 작동하지만 동일한 개체에 값을 설정하면 오류가 발생합니까?

Heres 내 코드의 코드 (후에 개발 용도 (REDENDENT 스위치를 무시) 코드, 그게 전부)

package com{ 
     import flash.display.* 
     import flash.net.* 
     import flash.utils.* 
     import flash.events.* 

    public class bulletClass extends MovieClip{ 
      public var dead = 0; 

        var moveBulletInt; 
     public function bulletClass(type:Number) { 
      //Declare bullet types from library 
      var tmpBullet1 = new bullet1; 

      switch(type){ 
       case 1: 
        addChild(tmpBullet1); 
       break; 
      } 

      //Move this bullet 
      moveBulletInt = setInterval(moveBullet, 10); 
     } 

     public function killBullet(){ 
      clearInterval(moveBulletInt); 
      trace("BULLET DIED"); 
     } 

     private function moveBullet(){ 
      if(dead == 0){ 
       this.x += 15 * Math.sin((this.rotation - 90) * (Math.PI/180)); 
       this.y += 15 * Math.cos((this.rotation - 90) * (Math.PI/180)); 
      } 
      if(dead == 1){ 
       //clearInterval(moveBulletInt); 
       this.x = -100 
       this.y = -100 
      } 

     } 


    } 

} 

답변

0
을 : 당신이 (밤은 많지 althought) 더 필요 것처럼 당신이

BulletContainer Class(Showing Just testCollosion Function): 

    //Collision Tester///////////////////////////////////////////// 
     private function testCollision(){ 
      //Get number of bullets on screen 
      var numBullets = bulletContain.length; 

      //Define a local variable for ease of reference 
      var localZombieContain = Object(root).zombieContain.zombieContain 
      var numZombies:Number = localZombieContain.length; 

      //Loop through every bullet for collision test 
      for(var a:Number = 0; a < numBullets; a++){ 
       //Loop through every zombie & hit test to see if bullet is hitting 
       for(var b:Number = 0; b < numZombies; b++){ 
        var killBullet:Boolean = false; 
        if(localZombieContain[b].hitTestObject(bulletContain[a])){ 
         //Tell zombie it has been hit 
         localZombieContain[b].hurtZombie(); 

         //Tell Bullet its dead for garbage 
         killBullet = true; 
        } 

        if(killBullet){ 

         bulletContain[a].killBullet(); 
         trace("BULLET DIED"); 
        } 
       } 

      } 

bulletClass (bulletClass에서보기 모든 것을) 생각한다면 코멘트

나는 무비 클립을 클래스를 호출하는 대신 이전에 글 머리 기호를 추가 할 때 다른 곳에서 코드를 사용하는 것이 좋습니다. 그래서 나는 단지 var newObject = newBullet; 거품 대신에 newObject.addChild (newBullet);

+0

이 질문을 끝내기 위해 정답으로 이것을 선택할 수 있습니다. – Will

관련 문제