Comunidad de diseño web y desarrollo en internet online

Juego en Flash con ActionScript 2

Citar            
MensajeEscrito el 22 May 2013 05:48 am
Hola a todos, antes que nada quiero decirles que soy nuevo en el foro así que pido disculpas si estoy infringiendo alguna regla o cosas de ese estilo.
Quisiera que alguien me ayude con un juego que estoy creando en flash con actionscript 2. Como es mi primer juego y estoy recién empezando a programar no lo estoy haciendo muy complejo y lo estoy haciendo parte por parte. Ya sé que así no se debe hacer un juego porque al hacer un juego ya tenés que tener decidido todo de antemano. Pero bueno por obvias razones es algo que yo no puedo hacer en este momento y por eso voy lidiando con los problemas que me van surgiendo de a poco.
El argumento tampoco es muy original ni nada pero como dije antes es mi primer juego y el argumento, animaciones y dibujos no es a lo que estoy apuntando sino a entender mejor este lenguaje.

El primer ""nivel" o escenario es bastante simple voy a tratar de describirlo para que se den una idea. El juego es estilo arcade o de plataforma. Lo describo de izquierda a derecha.
Primero una montaña, después un camino, un río, más camino, una roca, un camino elevado, al final del camino elevado un árbol con lianas colgando.
Mi idea es que para pasar este nivel el jugador tenga que saltar el río, mover la roca ya que está ocultando la entrada a una cueva o una tumba, y entrar en ese lugar que hay una espada que el jugador puede agarrar para luego de salir de la cueva/tumba tenga que volver a colocar la roca en su sitio saltar por ella para llegar al piso elevado y cortar las lianas que cuelgan del árbol y le impiden el paso.

Lo que no sé hacer en este momento son tres cosas
-que el jugador pueda mover la roca.
-luego de mover la roca no sé qué conviene, si hacer un MC que al tocarlo se dirija a otra escena que sea la cueva; o si al mover la roca se hace visible una cueva en el piso elevado. (cuál de estas dos cosas es más sencilla de hacer?, si hago la cueva en otra escena puedo hacer que le aparezca la espada en la primer escena al volver de la cueva?)
-que el jugador pueda cortar las lianas del árbol que le impiden el paso. Son un MC en una capa dentro de la capa suelo de la escena. Si pongo el código de que no sean visibles cuando el jugador las toca con la animación de atacar cuando tiene la espada, sólo hace que no sean visibles pero el jugador igual no puede pasar porque tiene el paso obstruido o las hace "desaparecer"?.

Desde ya muchas gracias y cualquier comentario que puedan hacer va a ser una ayuda para mí. Si no se entiende algo diganme y lo explico mejor

Por ariberar

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 May 2013 02:08 am
Ya encontré la forma de hacer que el jugador pueda cortar las lianas del árbol con un código bien sencillo:

onClipEvent(enterFrame) {
if(_root.jugador.hitTest(this)) {
if (Key.isDown(Key.SPACE)) {
this.nextFrame();
}
}
}


La tecla space se la asigné a la animación del ataque.


Pero sigo sin saber cómo hacer para que el jugador pueda mover objetos!!!, en este caso la roca. Alguien sabe?

Por ariberar

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 May 2013 12:17 pm
Haz mas o menos lo mismo para la roca. En cuanto empieces a sumar elementos la acumulaci{on de onEnterFrame+hitTest (llamemosle el A de los juegos) te llevará a B, que es usar un solo loop para chequearf hitTest, usualmente sobre el heroe. La acumulación de if sobre el hitTest te llevara a abandonarlo, pero no quiero adelantarme tanto en la película ;)
Por ahora si le pones el mismo codigo a la roca y en el segundo frame le pones la animacion en que rueda lo tienes mas o menos

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome
Citar            
MensajeEscrito el 24 May 2013 02:27 am
Gracias por la respuesta Jorge, ya me parecía que estaba poniendo muchos if y hittest jaja, pero bueno como vos dijiste no voy a tratar de adelantarme.
Ahora la cuestión es que lo que quiero hacer yo es que el jugador pueda mover la roca no importa si la roca tiene animación de que rueda o no, lo que no sé hacer es que cuando el jugador toca la roca mientras presiona la tecla control (que es la de agarre), esta se mueva a la par del jugador. logré hacerlo con este código:

onClipEvent(enterFrame) {
if(_root.jugador.hitTest(this)) {
if (Key.isDown(Key.CONTROL)) {
if (Key.isDown(Key.RIGHT)) {
this._x += 7;
}
else if (Key.isDown(Key.LEFT)) {
this._x += -7;
}
else if (Key.isDown(Key.UP)) {
this._y += -10
}
else {
this._x += 0
}
if (this._y<=-220) {
this._y += 10;
}
}
}
}


pero ahora el problema es que si el jugador está arriba de la roca y apreto control también puede mover la roca, cosa que no tiene sentido. Eso es porque mi condición es que el jugador esté tocando la roca, cómo puedo hacer que la condición sea que el jugador esté tocando la roca pero que además el jugador esté tocando el piso?.

Por ariberar

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 24 May 2013 03:30 am
Pruebo con este código pero ahora no mueve la roca ni cuando está en el suelo y no sé por qué

Código ActionScript :

onClipEvent(enterFrame) {
   if(_root.jugador.hitTest(this)) {
      if (_root.jugador.hitTest(suelo)) {
      if (Key.isDown(Key.CONTROL)) {
         if (Key.isDown(Key.RIGHT)) {
            this._x += 7;   
            }
         else if (Key.isDown(Key.LEFT)) {
            this._x += -7;   
            }
         else if (Key.isDown(Key.UP)) {
            this._y += -10
            }
      }
      else {
         this._x += 0
         }
      }
   }                     
}

Por ariberar

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 24 May 2013 10:30 am
Key.isDown es una sola cosa a la vez, si lo que quieres es que oprima Ctrl y luego cualquiera de las flechas, en el Key.isDown(Key.CONTROL) pon una variable, por ejemplo ctrl = true, entonces luego chequea si es alguna de las flechas + ctrl
Cuando tengas suelte Ctrl, pasa ctrl = false

A lo mejor si usas un listener para las teclas (hay una forma en AS2, ya no me acuerdo mucho) te ahorres un poco de codigo en vez de usar tanto enterFrame

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.