Estoy comenzando con la programación de Video Juegos y me estoy encontrando con el problema de que al probar la película mi personaje se mueve para atras.
Podrían ayudarme por favor a detectar el error.
El código con el que estoy trabajando es el siguiente:
main:
Código :
package { import flash.display.MovieClip; import Codigos.CamaraVirtual; import flash.display.StageScaleMode; import Codigos.Personaje; public class main extends MovieClip { public static var nuevoJugador:Personaje; 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; } } }
nivel 1
Código :
package Codigos.Niveles { import flash.display.MovieClip; import Codigos.Personaje; import Codigos.CamaraVirtual; import flash.events.Event; public class Nivel1 extends MovieClip{ public function Nivel1() { main.nuevoJugador = new Personaje; addChild(main.nuevoJugador); main.nuevoJugador.x = 300; main.nuevoJugador.y = 150; main.nuevaCamara = new CamaraVirtual; addChild(main.nuevaCamara); main.nuevaCamara.x = 400; main.nuevaCamara.y = 240; addEventListener(Event.ENTER_FRAME, nivel1Eventos); } private function nivel1Eventos (e:Event){ if(main.nuevoJugador.x<=150){ MovieClip(root).LineasNivel1.x+=5; main.nuevoJugador.x+=5; } else if (main.nuevoJugador.x>=650) MovieClip(root).LineasNivel1.x-=5; main.nuevoJugador.x-=5; } } }
camara virtual
Código :
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, Saltar); 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 Saltar (e:MouseEvent){ main.DerechaVar = false; main.IzquierdaVar = false; main.SaltoVar = false; } private function TodaCam (e:Event){ Puntos.text = String(int(main.Temporalpuntos)); } } }
personaje
Código :
package Codigos { import flash.display.MovieClip; import flash.events.Event; public class Personaje extends MovieClip { private var VelocidadX:int = 5; private var VelocidadY:int = 1; private var Limite:int = 10; private var Salto:int = -12; public function Personaje() { addEventListener(Event.ENTER_FRAME, Moverme); } private function Moverme (e:Event){ var NivelaTocar = MovieClip(root).LineasNivel1; if (NivelaTocar.hitTestPoint(x, y + height / 2, true)){ while (NivelaTocar.hitTestPoint(x, 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; } } } }
[img]https://ibb.co/bDW3gL[/img]
[img]https://ibb.co/bDW3gL[/img]