Bueno tengo un gran problema, resulta que vengo de programar en AS2 un juego que lo estoy desarrollando hace casi un año ya, hasta que luego me enteré que AS2 se volvió obsoleto. He leído tutoriales de AS3 y me cuesta demasiado, pero el problema es que quiero continuar con el juego que venía creando en AS2, pero solamente quiero convertir el código escrito en AS2 a AS3. ¿Alguien puede ser tan amable de ayudarme con esto?.
Mi juego es una porquería, lo sé!!, pero la idea era aprender lo básico de videojuegos, las colisiones, movimientos del personaje, rotaciones y demás, lo logré hacer en AS2, pero no tengo la más remota idea de como pasar todo el código creado en AS2 a AS3... por favor, necesito que alguien me ayude en esto para poder continuar con mi juego.
Este es el juego creado por mí. Con las flechas mueven al movieclip "tank", que en realidad es un avión (olvide cambiarle el nombre)... cuando el enemigo avanza y se choca contra el suelo o pasto este se eleva, y cuando encuentra una pendiente la sube y luego baja por la gravedad, si movemos el puntero del mouse movemos nuestra mira "crosshair", si hacemos click izquierdo dispara una munición "cannonball", si la bala colisiona contra nuestro enemigo explota y se elimina el movieclip dónde se reinicia su posición y se crea nuevamente. cuando el enemigo llega a la posición this._x==-350, el enemigo nos dispara, si la bala nos impacta, ésta reproduce una explosión en nuestro personaje.
Código del juego:
Código :
Mouse.hide(); gravedad = 0; fired = 0; max_firepower = 2; place_enemy(); attachMovie("crosshair", "crosshair", 1); //Coloca la mira en la escena attachMovie("tank","tank",2,{_x:400, _y:100}); /*Coloca el avión, osea nuestro personaje en escena (puse "tank", pero es un avión*/ attachMovie("ground", "ground", 3, {_x:100, _y:100}); /*Coloca el pasto donde se desplazará nuestro enemigo*/ crosshair.onEnterFrame = function() { this._x = _xmouse; this._y = _ymouse; }; tank.onEnterFrame = function() { mousex = _xmouse-this._x; mousey = (_ymouse-this._y)*-1; angle = Math.atan(mousey/mousex)/(Math.PI/180); if (mousex<0) { angle += 180; } if (mousex>=0 && mousey<0) { angle += 360; } /*if (angle>160) { angle = 160; } if (angle<0) { angle = 0; }*/ /*Controla que las flechas de nuestro teclado estén presionadas para darle movimiento al avión*/ if (Key.isDown(Key.LEFT)) { tank._x -= 7; } else if (Key.isDown(Key.RIGHT)) { tank._x += 7; } else if (Key.isDown(Key.DOWN)) { tank._y += 7; } else if (Key.isDown(Key.UP)) { tank._y -= 7; } firepower = Math.sqrt(mousex*mousex+mousey*mousey); if (firepower>200) { firepower = 200; } this.cannon._rotation = angle*-1; }; function onMouseDown() { if (fired<max_firepower) { fired++; angle = tank.cannon._rotation-1; start_ball_x = tank._x+10*Math.cos(angle*Math.PI/180); start_ball_y = tank._y+10*Math.sin(angle*Math.PI/180); cannonball_fired = attachMovie("cannonball", "cannonball_"+_root.getNextHighestDepth(), _root.getNextHighestDepth(), {_x:start_ball_x, _y:start_ball_y}); cannonball_fired.dirx = Math.cos(angle*Math.PI/180)*firepower; cannonball_fired.diry = Math.sin(angle*Math.PI/180)*firepower; cannonball_fired.onEnterFrame = function() { this.diry += gravedad; this._x += this.dirx/30; this._y += this.diry/30; if ((this._y>700) or (ground.hitTest(this._x, this._y, true))) { attachMovie('explosion', 'explosion',6,{_x:this._x, _y:this._y}) this.removeMovieClip(); fired--; } if (enemy.hitTest(this._x, this._y, true)) { this._x=equis; this._y=igriega; attachMovie('explosion', 'explosion',0,{_x:this._x, _y:this._y}) this.removeMovieClip(); enemy.removeMovieClip(); fired--; place_enemy(); } }; } } /*Coloca a nuestro enemigo en las posiciones determinadas*/ function place_enemy() { enemy_placed = attachMovie("enemy", "enemy", _root.getNextHighestDepth(), {_x:-100, _y:230}); enemy_placed.yspeed = 0; enemy_placed.onEnterFrame = function() { this.yspeed += gravedad/10; this._x++; angle = tank.cannon._rotation-1; while (_root.ground.hitTest(this._x+this._width/2, this._y+this._height, true)) { this._y--; this.yspeed = 0; } if (!_root.ground.hitTest(this._x+this._width/2, this._y+this._height+1, true)) { this._y += this.yspeed; } else { this.yspeed = 0; } if (this._x>500) { this.removeMovieClip(); place_enemy(); } if (this._x==-350) { rocket_placed = attachMovie("cannonball", "cannonball",_root.getNextHighestDepth(),{_x:-300, _y:350}); rocket_placed.onEnterFrame = function() { angle2=55*-1; rocket_placed.dirx = Math.cos(angle2*Math.PI/180)*firepower; rocket_placed.diry = Math.sin(angle2*Math.PI/180)*firepower; this._x += this.dirx/30; this._y += this.diry/30; //angle = enemy.cannon2._rotation-1; //this.cannon2._rotation = angle*-1; if (tank.hitTest(this._x, this._y, true)) { this._x=equis; this._y=igriega; attachMovie('explosion', 'explosion',7,{_x:this._x, _y:this._y}) this.removeMovieClip(); //tank.removeMovieClip(); //fired--; } } } }; }