2016-10-01 91 views
-4

谢谢tatactic回答,我已经解决了这个问题,但我有这个,这里是我喜欢做的游戏的所有类,但玩家是移动,你可以帮助我,这就是问题所在。 thnksAS3,错误1180调用可能未定义的方法Nivel1,Adobe动画

Nivel1类别:

package Codigos.Niveles { 
    import flash.display.MovieClip; 
    import Codigos.Jugador; 
    import flash.events.Event; 
    import Codigos.CamaraVirtual; 

    public class Nivel1 extends MovieClip { 

     public function Nivel1() { 
      main.nuevoJugador = new Jugador(); 
      addChild(main.nuevoJugador); 
      main.nuevoJugador.x = 34; 
      main.nuevoJugador.y = 334; 
      main.nuevaCamara = new CamaraVirtual(); 
      addChild(main.nuevaCamara); 
      main.nuevaCamara.x = 400; 
      main.nuevaCamara.y = 240; 
      addEventListener("EnterFrame",nivel1Eventos); 
     } 
     private function nivel1Eventos(e:Event){ 
      if(main.nuevoJugador.x<=150){ 
       MovieClip(root).Nivel.x+=5; 
       MovieClip(root).escenario.x+=5; 
       main.nuevoJugador.x+=5; 
      } 
      else if(main.nuevoJugador.x>=650){ 
       MovieClip(root).Nivel.x-=5; 
       MovieClip(root).escenario.x-=5; 
       main.nuevoJugador.x-=5; 
      } 
     } 

    } 

} 

主类:

package { 

    import flash.display.MovieClip; 
    import Codigos.Jugador; 
    import flash.display.StageScaleMode; 
    import Codigos.CamaraVirtual; 

    public class main extends MovieClip { 

     public static var nuevoJugador:Jugador; 
     public static var nuevaCamara:CamaraVirtual; 
     public static var TemporalPuntos:int = 0; 
     public static var DerechaVar:Boolean = false; 
     public static var IzquierdaVar:Boolean = false; 
     public static var SaltoVar:Boolean = false; 

     public function main() { 
      stage.scaleMode = StageScaleMode.EXACT_FIT; 
     } 
    } 

} 

Jugador类(播放器):

package Codigos { 

    import flash.display.MovieClip; 
    import flash.events.Event; 


    public class Jugador extends MovieClip { 

     public var VelocidadX:int = 5; 
     public var VelocidadY:int = 1; 
     public var Limite:int = 10; 
     public var Salto:int = -12; 
     public function Jugador() { 
      addEventListener("EnterFrame",Moverme); 
     } 
     private function Moverme(e:Event){ 
      var NivelaTocar = MovieClip(root).Nivel; 
      if(NivelaTocar.hitTestPoint(x,y + height/2,true)){ 
       while(NivelaTocar.hitTestPoint(x,-1 + y +height/2,true)){ 
        y--; 
       } 
       VelocidadY=0; 
       if(main.SaltoVar){ 
        VelocidadY=Salto; 
        y+=VelocidadY; 
       } 
      } 
      else if(NivelaTocar.hitTestPoint(x,y-height/2,true)){ 
       VelocidadY = VelocidadY * -0.5; 
       y += VelocidadY; 
       while(NivelaTocar.hitTestPoint(x, y - height/2,true)){ 
        y++; 
        main.SaltoVar = false; 
       } 
      } 

      else { 
       y+=VelocidadY * 1.5; 
       main.SaltoVar = false; 
       if(VelocidadY <= Limite){ 
        VelocidadY++; 
       } 
      } 

      while(NivelaTocar.hitTestPoint(x + width/2, y , true)){ 
       x--; 
      } 
      while(NivelaTocar.hitTestPoint(x - width/2, y , true)){ 
       x++; 
      } 
      movimientosReales(); 
     } 
     private function movimientosReales(){ 
      if(main.DerechaVar){ 
       x+=VelocidadX; 
       scaleX = 1; 
      } 
      else if(main.IzquierdaVar){ 
       x-=VelocidadX; 
       scaleX = -1; 
      } 
     } 
    } 

} 

CamaraVirtual类(虚拟相机):

package Codigos { 

import flash.display.MovieClip; 
    import flash.events.MouseEvent; 
    import flash.events.Event; 


    public class CamaraVirtual extends MovieClip { 


     public function CamaraVirtual() { 
      addEventListener(MouseEvent.MOUSE_DOWN, Botones); 
      addEventListener(MouseEvent.MOUSE_UP, Soltar); 
      addEventListener(Event.ENTER_FRAME, TodaCam); 
      Puntos.text = String(int(0)); 
     } 
     private function Botones(e:MouseEvent){ 
      if(e.target == Derecha){ 
       main.DerechaVar = true; 
      } 
      else if(e.target == Izquierda){ 
       main.IzquierdaVar = true; 
      } 
      else if(e.target == Salto){ 
       main.SaltoVar = true; 
      } 
     } 
     private function Soltar(e:MouseEvent){ 
      main.DerechaVar = false; 
      main.IzquierdaVar = false; 
      main.SaltoVar = false; 
     } 
     private function TodaCam(e:Event){ 
      Puntos.text = String(int(main.TemporalPuntos)); 
     } 
    } 

} 

莫内达类(硬币):

package Codigos { 

    import flash.display.MovieClip; 
    import flash.events.Event; 


    public class Moneda extends MovieClip { 


     public function Moneda() { 
      addEventListener(Event.ENTER_FRAME, tocar); 
     } 
     private function tocar(e:Event){ 
      if(hitTestObject(main.nuevoJugador)){ 
       removeEventListener(Event.ENTER_FRAME, tocar); 
       main.TemporalPuntos++; 
       parent.removeChild(this); 
      } 
     } 
    } 

} 
+0

尝试'var nuevoNivel1:Nivel1 = new Nivel1();'。下次发布**实际代码**文本,而不是代码图片。解释你的错误**实际上是**。 –

+0

请为您的变量和方法使用英文名称! – tatactic

+0

软件包名称应以小写字母“codigos.niveles”开头,变量名称也应该如此。 类应始终以大写字母开头,如“Nivel1”。方法应始终以小写开头。 你应该考虑之前发布一个问题。 – tatactic

回答

1

在你的构造方法Nivel1()评论的所有代码,只是试试这个

public function Nivel1(){ 
     trace(main.nuevoJugador); 
     /* 
     main.nuevoJugador = new Jugador(); 
     addChild(main.nuevoJugador); 
     main.nuevoJugador.x = 25; 
     main.nuevoJugador.y = 344; 
     */ 
} 

的输出是什么? 我想,

trace(main.nuevoJugador); 

或者只是:

trace(main); 

将输出未定义/空/或将抛出一个错误?是对的吗?

因为“主”没有在“Nivel1”类中定义... 我错了吗?

请问,您可以发布“Jugador”类

不是图像,而是代码!!!

只需复制和粘贴代码,然后选择您添加的代码,然后点击“的代码示例<预> <代码>按Ctrl + K”像下面的图片中:

enter image description here

因此,用户可以在另一个答案中编辑/更改您的代码,而无需花时间重写printerscreen提供的所有代码(这对于此处的计算器而言是一个巨大的浪费时间)!

+0

@Brandon反馈? – tatactic

+0

对不起,我的电脑有问题。我已经解决了这个问题,但是如果你能用其他方法帮助我。 我已经完成了代码出现并移动了关卡中的玩家,但是并没有移动。 – Brandon

+0

对不起,在这个新的,我编辑和把所有的类,我不知道为什么玩家没有移动。 @ tatactic – Brandon

相关问题