jueves, 3 de enero de 2013

Tutorial flash crear juego de coches (ActionScript 2.0)

En el siguiente tutorial flash para ActionScript 2.0 crearemos un sencillo juego de coches, de momento, con un único vehículo y contador de vueltas. Nos quedará algo parecido a esto:


Video del tutorial:

Aquí tienes algunas imagenes para utilizar, si quieres, en tu juego:


 Código para introducirlo al coche:

onClipEvent(load) { 
speed = 0; 
acceleration = 0.4; 
speedDecay = 0.96; 
maxSpeed = 10; 
backSpeed = 1; 
lap = 1; 
totallaps = 3; 
var fulllap:Boolean = false; 


onClipEvent(enterFrame) { 
if(Math.abs(speed) > 0.3) { 
speed *= speedDecay; 
}else { 
speed = 0; 

if(Key.isDown(Key.UP)) { 
if (Math.abs(speed) >= maxspeed) { 
speed += acceleration; 


if(Key.isDown(Key.DOWN)) { 
if(speed < 0.5) speed = -2; else speed--; } if (Math.abs(speed)> 0.5) { 
if (Key.isDown(Key.LEFT)) { 
_rotation -= 10; 

if (Key.isDown(Key.RIGHT)) { 
_rotation += 10; 


x = Math.sin(_rotation*(Math.PI/180))*speed; 
y = Math.cos(_rotation*(Math.PI/180))*speed*-1; 

if (!_root.bordes.hitTest(_x+x, _y+y, true)) { 
_x += x; 
_y += y; 
}else { 
speed -= speed*1.5; 


onClipEvent(enterFrame) { 
if (_root.checkpoint1.hitTest(this)) { 
if(fulllap){ 
if(lap >= totallaps) 
_root.gotoAndStop(2); 
++lap; 
fulllap = false; 


if (_root.checkpoint2.hitTest(this)) { 
fulllap = true; 

_root.currentlap = lap + "/" + totallaps; 
_root.puntos = puntos; 

seconds = Math.floor(getTimer()/1000); 
minutes = Math.floor(seconds/60); 
tens = Math.round((getTimer()-seconds*1000)/10); 

if(minutes < 10) { 
minutes = "0" + minutes; 

if (seconds < 10) { 
seconds = "0" + seconds; 

if (tens < 10 ) { 
tens = "0" + tens; 


_root.totaltime = minutes + "." + seconds + "." + tens; 



Quizás te interese: Tutorial flash: Añadir rival a juego de coches multijugador

16 comentarios:

  1. Muy buenos tutoriales,me están sirviendo de mucho
    Gracias

    ResponderEliminar
  2. Una pregunta... como le pongo sonido? Es para un trabajo, asi que agradeceria mucho la ayuda

    ResponderEliminar
    Respuestas
    1. Como quieres el sonido, al pulsar un boton, automatico...?

      Este tutorial te puede ayudar: http://www.desarrollaraplicaciones.com/2013/02/anadir-sonido-y-texto-animacion-con.html

      Saludos!

      Eliminar
  3. Ahora tengo una falla a la hora de reproducir el juego (Tus tutoriales son excelentes, soy yo la falla :/ ):
    El cronometro tan solo parpadea los ultimos ceros, y el contador de vueltas es invisible...
    Desconozco que error estoy cometiendo, nose si tenga que ver con el tamaño de letras.
    Uso el CS6... y disculpa que te moleste, pero el susodicho trabajo es para mañana con plazo hasta pasado mañana. Y en cuanto al sonido, pues es lo de menos... preferiría terminar el juego lo mas pronto posible.
    Estaría infinitamente agradecido contigo, por la ayuda.

    ResponderEliminar
    Respuestas
    1. ¿Podrias subir el archivo a alguna pagina para poder descargarlo y ver que puede pasar?

      saludos!

      Eliminar
    2. Este comentario ha sido eliminado por el autor.

      Eliminar
  4. http://www.mediafire.com/download/ybgf126hq9wlv7d/Sin_t%C3%ADtulo-8.fla

    Aqui esta lo que he ido avanzando del juego, si se que aun no tiene detalles pero me quede estancado en el contador, y espero tu ayuda para solucionarlo... mil gracias :)

    ResponderEliminar
    Respuestas
    1. Hola ya vi el problema y era una tontería. Era la fuente que estabas utilizando para el contador, si la fuente seleccionada no la encuentra tu programa, el numero no se ve por lo que parpadea. He puesto las fuentes de contador de tiempo y vueltas en "Familia: _sans" y funciona. Aqui te lo dejo modificado: http://we.tl/qUr3y8n7SS

      saludos!

      Eliminar
    2. Mil gracias por la ayuda... pude presentarlo a tiempo :D

      Eliminar
  5. Si no es mucho pedir podrias realizarlo en as3?.
    Gracias y muy buen tutorial.

    ResponderEliminar
  6. Olle por que no me dan las paredes, el coche pasa derecho sin chocarse

    ResponderEliminar
  7. Men, hago lo que tu haces para que no pase los bordes, y aun asi el carro sigue derecho.

    ResponderEliminar
  8. Hola, estoy haciendo el juego pero cuando pruebo el carro despues que copio los codigo, el carro no se mueve. que pudiera ser?

    ResponderEliminar
  9. hola necesito ayuda por favor el coche cuando esta en borde no choca

    ResponderEliminar
  10. Hay un error en el código.
    No tiene sentido este if
    if(Key.isDown(Key.UP)) {
    if (Math.abs(speed) >= maxspeed) {
    speed += acceleration;
    }
    La suerte de que funcione es que la función maxspeed en realidad se llamaba maxSpeed

    ResponderEliminar