如何在Flash CS6中的plataform游戏(超级马里奥)中修复在运行时具有错误行为的新对象的创建?

时间:2017-05-09 00:06:17

标签: actionscript-3 flash flash-cs6

我正在使用闪存CS6开发平台游戏。我创建了一个名为Plataforma的类,它代表一个plataform并将其扩展为Item_Flor类,当与Mario发生碰撞时,它是一种特殊的plataform,显示一个由马里奥消耗的项目,一朵花。这样的项目是Flor类的对象(类名是葡萄牙语)。

然而,当Mario与类Item_Flor的对象相关时,对象:i)没有出现在正确的位置(即,在Item_Flor的对象之上); ii)当Marios移动时,物体也会在Mario的相同方向上移动,就像这样的物体的x和y被马里奥的坐标修改一样; iii)当马里奥与项目ii碰撞时,似乎只有一朵花。

这是类Item_Flor的代码,函数enterFrameEvents2验证mario何时与Item_flor的对象发生碰撞并创建类Flor的对象花(以下为flor):

package  {

  import flash.display.MovieClip;
  import flash.display.*;
  import flash.events.*


  public class Item_Flor extends Plataforma {

    public function Item_Flor() {
        super();
        addEventListener(Event.ENTER_FRAME, enterFrameEvents2);
    }

    private function enterFrameEvents2(event:Event):void{

        if(this.hitTestObject(getMario())){      

            var flor:MovieClip = new Flor();
            flor.x =this.x;
            flor.y =this.y-flor.height;
            getRoot().stage.addChild(flor);        
       }

   }
  } 
}

对象flor没有出现在我的代码中的任何其他位置,所以我不知道当Mario移动时它的x和y位置有什么变化。

而且,这是Plataforma类的代码:

package  {

  import flash.display.MovieClip;
  import flash.display.*;
  import flash.events.* 

  public class Plataforma extends MovieClip{

    private var _root:MovieClip;
    private var mario:MovieClip;
    private var onTop:Boolean;

    public function Plataforma() {          
        addEventListener(Event.ADDED_TO_STAGE, beginClass);         
        addEventListener(Event.ENTER_FRAME, enterFrameEvents);      
    }       

    private function beginClass(event:Event):void{

        _root = MovieClip(root);
        mario = _root.mario;
        onTop = false;          
    }

    public function getMario():MovieClip {
        return mario;
    }

    public function getRoot():MovieClip {
        return _root;
    }

    private function enterFrameEvents(event:Event):void{
      ...
    }
 }
}

我想知道如何才能找到花必须固定的地方,这样它就能独立于马里奥运动而站在这样的平台上?

我正在粘贴一个链接,您可以在其中下载代码以进行编译并查看剩余代码:https://www.4shared.com/rar/r6ppko4Cei/mario-flashCS6.html

感谢您帮助我!

0 个答案:

没有答案