VAMOS A COMENZAR ESTA SECCIÓN DE CREACIÓN DE VIDEOJUEGOS CON UN CLÁSICO DE LOS AÑOS 80 QUE TUVO MUCHÍSIMO ÉXITO EN LA ÉPOCA.
EL VIDEOJUEGO LO CREO LA EMPRESA JAPONESA "TAITO" Y CONSISTÍA EN CONTROLAR UNA BOLA DESDE UNA PALETA PARA ROMPER LOS LADRILLOS DE COLORES QUE APARECÍAN EN LA PARTE SUPERIOR DE LA PANTALLA....PERDÍAS CUANDO LA BOLA TOCABA LA PARTE INFERIOR DE LA PANTALLA.
ERA UN JUEGO MULTINIVEL...SEGÚN IBAS PASANDO NIVELES, SE IBA DIFICULTANDO, TANTO EN LA DISTRIBUCIÓN DE LOS LADRILLOS COMO EN LA VELOCIDAD DE LA BOLA.
NOSOTROS VAMOS A EMPEZAR POCO A POCO, HACIENDO UNA VERSIÓN SENCILLA DE ARKANOID PARA LUEGO IR MEJORÁNDOLA HASTA CONSEGUIR UNA VERSIÓN ARKANOID POR NIVELES...ESE ES EL RETO!!
PASO 1
DEFINIR EL FONDO Y LOS PERSONAJES PRINCIPALES
FONDO: ESCOGE UN FONDO DE LA BIBLIOTECA.
TEN EN CUENTA QUE DEBEN PODER DISTINGUIRSE LOS BLOQUES...SON MEJORES LOS FONDOS CON COLORES OSCUROS COMO POR EJEMPLO EL FONDO"STAR" DE LA SECCIÓN ESPACIO...AUNQUE SIEMPRE PODRÁS CAMBIARLO.
PERSONAJE "PALETA"
DISEÑA TU MISM@ LA PALETA...ES UN RECTÁNGULO DEL COLOR QUE QUIERAS.
SI QUIERES QUE SEA MÁS REAL, BUSCA COMO ERA IMAGEN DE LA "PALETA" REAL DE ARKANOID EN GOOGLE:
PERSONAJE "BOLA":
PUEDES ESCOGER UNA DE LA BIBLIOTECA...Ó PINTAR TÚ UNA.
PERSONAJE "LADRILLO":
IGUAL QUE ANTES...SI LO HACES TÚ TEN EN CUENTA QUE ES UN RECTÁNGULO DE COLOR.
DIMENSIONA BIEN TUS PERSONAJES ANTES DE SEGUIR!
TAMBIEN ES IMPORTANTE VOLVER A DEFINIR EL CENTRO DEL PERSONAJE DESDE LA PANTALLA EDICIÓN.
PASO 2
PROGRAMACIÓN DE LA PALETA
VAMOS A PROGRAMAR LA PALETA DE TAL FORMA QUE CUANDO PULSEMOS LA BANDERA VERDE SE SITÚE SIEMPRE EN LA PARTE CENTRAL DE PANTALLA PERO QUE TODAVÍA NO EMPIECE EL JUEGO...
EL JUEGO EMPEZARÁ CUANDO PULSEMOS LA TECLA ESPACIO, Y ENTONCES, LA PALETA SEGUIRÁ LA POSICIÓN DEL RATÓN...CONTROLAREMOS LA PALETA CON EL RATON...
TEN EN CUENTA QUE LA PALETA SE TIENE QUE DESPLAZAR SÓLO EN EL EJE X ( HORIZONTAL)...PARA CONSEGUIRLO, LE DIREMOS QUE SIEMPRE MANTENGA SU POSICIÓN EN "Y " Y QUE SU POSICIÓN "X " SEA LA MISMA QUE LA DEL RATÓN ( "SENSORES" ).
EL PROGRAMA SERÍA EL SIGUIENTE:
COMPRUEBA QUE FUNCIONA!
PASO 3
PROGRAMACIÓN DE LA BOLA
VAMOS A PROGRAMAR LA BOLA DE TAL FORMA QUE CUANDO PULSEMOS LA BANDERA VERDE SE SITÚE SIEMPRE EN LA PARTE CENTRAL DE PANTALLA, JUSTO ENCIMA DE LA PALETA, PERO QUE TODAVÍA NO EMPIECE EL JUEGO...
EL JUEGO EMPEZARÁ CUANDO PULSEMOS LA TECLA ESPACIO...EN ESE MOMENTO, LA BOLA SALDRÁ DISPARADA HACIA ARRIBA ( DIRECCIÓN 0º)..PARA QUE NO SE PIERDA POR EL BORDE DE ARRIBA, LE DIREMOS QUE REBOTE SI TOCA BORDE:
EL CÓDIGO SERÍA EL SIGUIENTE:
QUÉ OCURRE?..LA BOLA SALE HACIA ARRIBA...PERO SE QUEDA PEGADA EN EL BORDE DE ARRIBA !!!...SI ANALIZAS EL CÓDIGO VERÁS QUE ESTÁ HACIENDO EXACTAMENTE LO QUE LE DECIMOS...CUANDO LLEGA AL BORDE DE ARRIBA ESTÁ APUNTANDO HACIA ARRIBA POR LO QUE CUANDO LLEGUE AL BORDE REBOTARÁ PERO VOLVERÁ A APUNTAR HACIA ARRIBA...Y ASÍ "POR SIEMPRE"
COMO SOLUCIONAMOS ESTO?...MUY FÁCIL...DICIENDOLE QUE EN LA SALIDA CAMBIE DE ANGULO...QUE SALGA HACIA ARRIBA PERO NO EXÁCTAMENTE A 0ª...SINO MÁS O MENOS A 0º...DE ESA FORMA, AL REBOTAR PODRÁ MOVERSE HACIA ABAJO.
VAMOS A HACERLO DE UNA FORMA ALEATORIA PARA QUE SU MOVIMIENTO NO SEA PREDECIBLE...
AHORA SI FUNCIONA...PODEMOS VARIAR LA VELOCIDAD DE LA BOLA CAMBIANDO EL NÚMERO DE PASOS QUE ANDA ASÍ COMO DAR MÁS O MENOS ÁNGULO DE SALIDA CAMBIANDO EL MARGEN DE " NÚMERO AL AZAR".
VAMOS A HACER AHORA QUE LA BOLA REBOTE "SI" TOCA LA PALETA:
COMO LO QUE QUEREMOS ES QUE LA BOLA CAMBIE SU MOVIMIENTO, LA PROGAMACIÓN HABRÁ QUE HACERLA EN LA BOLA.
VAMOS A DECIRLE A LA BOLA QUE "POR SIEMPRE" "SI" TOCA LA PALETA REBOTE..YA SABEMOS COMO HACER PARA REBOTAR CON UN ÁNGULO ALEATORIO ASI QUE NO VA A SER DIFICIL.
NECESITAREMOS UN SENSOR PARA SABER SI ESTÁ TOCANDO LA PALETA...
EL CODIGO A DARLE A LA BOLA SERÍA EL SIGUIENTE:
PASO 4
PROGRAMACIÓN DEL LADRILLO
COMO HABRÁS VISTO, EL JUEGO TERMINADO TIENE MUCHOS LADRILLOS
PERO REALMENTE CADA LADRILLO DEBE COMPORTARSE IGUAL ( IGUAL PROGRAMA):
CUANDO LA BOLA CHOQUE CON ÉL, LA BOLA DEBE REBOTAR Y ADEMÁS SUMAREMOS UN PUNTO A NUESTRO FAVOR.
POR ESO LO QUE VAMOS A HACER ES PROGRAMAR UN LADRILLO, Y CUANDO VEAMOS QUE FUNCIONA, LO ÚNICO QUE TENDREMOS QUE HACER ES IR DUPLICANDO LOS LADRILLOS(BOTON DERECHO -DUPLICAR ENCIMA DEL PERSONAJE) Y CAMBIARLES EL COLOR Y SOBRE TODO SU POSICIÓN INICIAL
TEN EN CUENTA QUE EN LOS LADRILLOS DE UNA MISMA FILA LA "Y" SERÁ LA MISMA Y LA "X" HABRÁ QUE INCREMENTARLA SIEMPRE EL MISMO VALOR DE UNO A OTRO...
PERO ANTES DE EMPEZAR CON EL LADRILLO VAMOS A VER COMO SE HACE ESO DE QUE PODAMOS INCREMENTAR LOS PUNTOS:
VAMOS A CREAR UNA "VARIABLE" DESDE LA PESTAÑA " DATOS"
UNA VARIABLE ES UNA ESPECIE DE CAJÓN DONDE VAMOS GUARDANDO DATOS Y PODEMOS VER LO QUE HAY DENTRO CUANDO QUERAMOS.
LO QUE VAMOS A HACER ES CREAR UNA "VARIABLE QUE LLAMAREMOS "PUNTUACIÓN"...LA PONDREMOS PRIMERO A 0 Y CADA VEZ QUE LA BOLA TOQUE UN LADRILLO...AUMENTE SU VALOR EN UNA UNIDAD.
LA VARIABLE DE PUNTUACIÓN SIEMPRE ES BUENO HACERLO EL EL "ESCENARIO" ASI QUE SELECCIONAMOS "ESCENARIO" Y VAMOS A PROGRAMARLA:
VAMOS AHORA SÍ A PROGRAMAR EL LADRILLO:
LO QUE TIENE QUE HACER EL LADRILLO ES LO SIGUIENTE:
COMO LOS OTROS ELEMENTOS, AL PULSAR BANDERA VERDE QUE SE VAYA A SU SITIO.
ESTAR DETECTANDO "POR SIEMPRE " "SI" LA BOLA LE ESTÁ TOCANDO...
SI LE ESTÁ TOCANDO HARÁ LO SIGUIENTE:
DESAPARECERÁ.....ESTO SE HACE DESDE EL MENU APARIENCIA....."ESCONDER".
AUMENTARÁ LA PUNTUACIÓN EN UNA UNIDAD ( "CAMBIAR PUNTUACIÓN POR UNO"...ESO SIGNIFICA SUMAR UNO A PUNTUACIÓN)
AVISAR A LA BOLA DE QUE LE HA TOCADO PARA QUE LA BOLA LO SEPA Y PUEDA REBOTAR...ESTO LO HARÁ MANDANDO EL MENSAJE"ROTO" DESDE EL MENU EVENTOS.
TAMBIÉN ESTARÍA BIEN QUE SONASE UN SONIDO CUANDO LA BOLA GOLPEASE EL LADRILLO...VERÁS QUE EL PERSONAJE LADRILLO TIENE ASOCIADO SÓLO EL SONIDO "POP"....PUEDES UTILIZAR ESE O ALGUNO DE LA BIBLIOTECA DE SONIDOS O INCLUSO ALGUNO DE LOS QUE TE DEJO ABAJO EN ARCHIVOS.."BOLA.WAV"...SON SONIDOS ORIGINALES DEL JUEGO...SÓLO TIENES QUE DESCARGARLOS AL PC Y CARGARLOS AL PERSONAJE.
EL CODIGO DEL LADRILLO QUEDARÍA ASÍ:
VAMOS A COMPROBARLO:
VEMOS QUE FUNCIONA...AUMENTA UN PUNTO Y DESAPARECE...PERO.....DALE DE NUEVO A BANDERA VERDE PARA COMENZAR DE NUEVO EL JUEGO !
QUE HA PASADO?...SÍ...HA DESAPARECIDO EL LADRILLO!!!.
ESTO HA OCURRIDO PORQUE UNA VEZ QUE LE DECIMOS QUE SE ESCONDA...OBEDECE Y SE QUEDA ESCONDIDO!...SOLUCIÓN...HAY QUE MODIFICAR EL CODIGO Y DECIRLE QUE CUANDO SE PULSE BANDERA VERDE APAREZCA...."MOSTRAR" EN MENU APARIENCIA, CON LO QUE EL CODIGO CORRECTO SERÍA:
AHORA SÍ FUNCIONA!!
EL LADRILLO YA ESTÁ, PERO NOS QUEDA ALGO...HA AVISADO A LA BOLA DE QUE LE HA TOCADO ENVIANDO EL MENSAJE "ROTO"...AHORA HAY QUE DECIRLE A LA "BOLA" QUE CUANDO RECIBA ESE MENSAJE...REBOTE!!.
VOLVEMOS AL PERSONAJE BOLA Y PROBAMOS EL SIGUIENTE CODIGO:
VAMOS A PROBARLO:
HACE ALGO RARO!...RESULTA QUE DA A LA BOLA SUBIENDO PERO EN VEZ DE REBOTAR HACIA ABAJO...SIGUE SUBIENDO!!!...CLARO...ES LO QUE LE ESTAMOS DICIENDO...QUE APUNTE EN UNA DIRECCION CERCANA ( DE -30 A +30) A 0º ( ARRIBA).
PODRIAMOS SOLUCIONARLO DICIENDOLE QUE APUNTARA A UNA DIRECCIÓN CERCANA AL 180º ( ABAJO)...POR EJEMPLO " NUMERO AL AZAR ENTRE 150 Y 210) Y NOS ASEGURARIAMOS QUE AL REBOTAR IRIA HACIA ABAJO...
PERO QUE PASARIA SI LA BOLA , A CAUSA DE ALGUN REBOTE, LE DA AL LADRILLO DESDE ARRIBA?...DEBERIA REBOTAR HACIA ARRIBA...Y CON ESE CODIGO NO LO HARIA!
SOLUCIÓN:
LO QUE NOS INTERESA ES QUE AL REBOTAR APUNTE A UNA DIRECCIÓN CONTRARIA A LA QUE LLEVABA!
ESTO SE CONSIGUE RESTÁNDOLE A LA DIRECCION DE LA BOLA 180º
YA CASI LO TENEMOS...PERO CÓMO SE LA DIRECCION QUE LLEVA LA BOLA...MUY FÁCIL...EN EL MENÚ DE MOVIMIENTO HAY UN BLOQUE LLAMADO " DIRECCION" QUE EN TODO MOMENTO TOMA EL VALOR DE LA DIRECCIÓN DEL PERSONAJE.
SOLO NOS QUEDA CONSTRUIR EL CODIGO...PARA HACER ESA RESTA HAY QUE UTILIZAR LOS BLOQUES DEL MENU "OPERADORES"
EL CODIGO QUEDARIA ASÍ:
AHORA QUEDARÍA GENERAR EL RESTO DE LADRILLOS:
CON BOTÓN DERECHO DEL RATÓN-DUPLICAR VAS COPIANDO LADRILLOS...UNA BUENA IDEA PARA NO LIARTE ES QUE CADA VEZ QUE COPIES UNO VERAS QUE EL NOMBRE MANTIENE LA PRIMERA PARTE Y SOLO CAMBIA EN QUE LE AUMENTA UN NÚMERO AL FINAL...PUEDES HACER EL SIGUIENTE TRUCO PARA QUE LUEGO SEA MÁS FÁCIL LOCALIZARLOS:
NOMBRA EL PRIMER LADRILLO COMO "FILA1BLOQUE1"...AL DUPLICARLO SE GENERARÁ OTRO QUE SE LLAMARÁ"FILA1BLOQUE2"...Y ASI PARA LA PRIMERA FILA
CUANDO GENERES EL PRIMER BLOQUE DE LA SEGUNDA FILA...LE CAMBIAS EL NOMBRE A " FILA2BLOQUE1"...Y SIGUES COPIANDO...
CADA VEZ QUE COPIES UN LADRILLO...ANTES DE COPIAR EL SIGUIENTE CAMBIALE SU PROGRAMA:
POSICION INICIAL AL PULSAR BANDERA VERDE
COLOR...SI ES QUE QUIERES CAMBIARLO
PASO 5
PROGRAMACIÓN DE FINAL DE JUEGO
YA TENEMOS EL JUEGO CASI HECHO...PERO QUEDAN DOS COSAS IMPORTANTES:
SI LA BOLA TOCA EL SUELO...DEBE PARARSE EL JUEGO..."GAME OVER"
SI CONSIGUES ELIMINAR TODOS LOS BLOQUES...DEBE PARASE EL JUEGO..."GANASTE".
VEAMOS COMO HACERLO:
SITUACIÓN 1:"GAME OVER"
PARA SOLUCIONARLO, VAMOS A CREAR UN PERSONAJE NUEVO QUE SERÁ UNA LINEA HORIZONTAL DE COLOR LO MÁS PARECIDO POSIBLE AL ESCENARIO, Y QUE AL PULSAR BANDERA VERDE SE COLOCARÁ ABJO DEL TODO...POR DEBAJO DE LA PALETA.
LUEGO SOLO QUEDARA QUE "POR SIEMPRE" ESTÉ DETECTANDO ( SENSORES) "SI" ESTA TOCANDO A LA BOLA.
EN EL CASO DE QUE DETECTE A LA BOLA MANDARA UN MENSAJE "GAME OVER" AL RESTO DE PERSONAJES.
EL CODIGO SERÍA EL SIGUIENTE:
PARA QUE TODO SE DETENGA Y SALGA EL MENSAJE "GAME OVER" EN LA PANTALLA HAY UNA FORMA SENCILLA DE HACERLO:
SELECCIONAMOS EL ESCENARIO, PINCHAMOS EN LA PESTAÑA "FONDOS" Y CON BOTON DERECHO SOBRE ÉL, LO DUPLICAMOS.
CON LA HERRAMIENTA "TEXTO" DEL EDITOR, ESCRIBIMOS "FIN DEL JUEGO" Ó " GAME OVER".
AHORA NOS VAMOS A PESTAÑA "PROGRAMAS" Y LE DECIMOS QUE AL PRESIONAR LA BANDERA VERDE APAREZCA EL PRIMER ESCENARIO PERO QUE CUNADO RECIBA EL MENSAJE "GAME OVER"...CAMBIE AL ESCENARIO 2 Y QUE "DETENGA TODOS" PARA QUE EL JUEGO SE PARE.
EL CODIGO QUEDARÍA ASÍ:
SITUACIÓN 2: GANASTE !!:
PIENSA UN POCO...QUE TIENE QUE PASAR PARA QUE GANES ???
QUE LA BOLA NO TOQUE EL SUELO...YA ESTÁ RESUELTO EL CÓDIGO.
...Y QUE TU PUNTUACIÓN COINCIDA CON EL NÚMERO DE LADRILLOS QUE HABÍA AL EMPEZAR.
LO QUE VAMOS A HACER ES CREAR UN NUEVO ESCENARIO...COMO HICIMOS CON EL DE "GAME OVER" PERO EN ESTE CASO CON EL TEXTO "GANASTE !!"
LUEGO SÓLO TENDREMOS QUE DESDE PROGRAMAS DEL ESCENARIO DECIRLE QUE POR SIEMPRE ESTE MIRANDO "SI" LA VARIABLE "PUNTOS" ES IGUAL AL NÚMERO DE LADRILLOS QUE COLOCASTE AL PRINCIPIO...DEBERÁS CONTARLOS...EN MI CASO SON 21 LADRILLOS.
EL CÓDIGO QUEDARÍA ASÍ...RECUERDA...LO PROGRAMAMOS EN "ESCENARIO":
MEJORAS DEL JUEGO PROPUESTAS
OS VOY A PROPONER DOS MEJORAS PARA VUESTRO JUEGO.
LA IDEA ES COMPROBAR UN POCO LO QUE HABÉIS APRENDIDO, POR LO QUE SÓLO OS DARÉ UNAS PISTAS...
MEJORA 1:"AUMENTAR LA DIFICULTAD DEL JUEGO MEDIANTE EL AUMENTO DE LA VELOCIDAD SEGÚN AVANZA EL JUEGO"
COMO SABES, EN EL PROGRAMA DEL PERSONAJE "BOLA", LE DECIMOS A LA VELOCIDAD QUE VA A DESPLAZARSE MEDIANTE LA EXPRESIÓN:"MUEVETE 10 PASOS".
SI QUISIESEMOS QUE FUERA MÁS DEPRISA, BASTARÍA CON AUMENTAR EL NÚMERO DE PASOS...EL PROBLEMA SERÍA QUE SIEMPRE SE MOVERÍA A LA MISMA VELOCIDAD...Y NO ES ESO LO QUE OS PROPONGO...
LO QUE OS PROPONGO ES QUE LA VELOCIDAD AUMENTE CADA VEZ QUE SE DESTRUYA UN BLOQUE.
PISTAS:
CREA UNA VARIABLE DESDE LA PESTAÑA "DATOS" QUE SE LLAME VELOCIDAD.
LA INICIALIZAS...EN EL PROGRAMA DEL ESCENARIO POR EJEMPLO AL VALOR QUE QUIERES QUE TENGA AL PRINCIPIO.
LUEGO SOLO QUEDARIA CAMBIAR "MUEVETE "10"PASOS" POR "MUEVETE"VELOCIDAD"PASOS"...ES DECIR, DONDE PONÍAS LOS PASO, AHORA INSERTAS LA FICHA " VELOCIDAD" QUE ENCONTRARÁS EN EL MENÚ "DATOS".
YA SÓLO QUEDARÍA INCREMENTAR LA VELOCIDAD CADA VEZ QUE SE DESTRUYA UN BLOQUE...¿CÓMO LO HARÍAS???.
MEJORA 2:"BLOQUES ESPECIALES"
EL JUEGO ORIGINAL DE ARKANOID SE CARACTERIZABA PORQUE NO TODOS LOS BLOQUES SE COMPORTABAN IGUAL COMO OCURRE EN EL NUESTRO( DESAPARECEN CUANDO LES TOCA LA BOLA Y SUMAMOS UN PUNTO).
VAMOS A CREAR UNOS BLOQUES QUE VAN A DIFICULTAR UN POCO EL JUEGO...
SU COMPORTAMIENTO VA A SER MUY PARECIDO...PERO SÓLO VAN A DESAPARECER Y SUMAR UN PUNTO CUANDO LES HAYA TOCADO 2 VECES LA BOLA ...
COMO PODEMOS HACERLO???
PISTAS:
DE NUEVO NECESITAMOS UNA VARIABLE...YA SABES COMO SE CREAN...
VAMOS A CREAR UNA VARIABLE CON EL NOMBRE " IMPACTOS" QUE INICIALIZAREMOS CON EL VALOR 0.
RECUERDA EL PROGRAMA QUE TIENEN LOS BLOQUES NORMALES:
UNA COSA IMPORTANTE ES QUE CUANDO CREEMOS LA VARIABLE IMPACTOS LE DIGAMOS QUE "SOLO PARA ESTE OBJETO" Y LA INICIALIZAMOS A 0 EN EL PROGRAMA DEL MISMO BLOQUE.
OTRA MEJORA SERÍA CREAR A CADA BLOQUE ESPECIAL DOS DISFRACES...UNO CON ESCUDO Y OTRO SIN ESCUDO...CUANDO "IMPACTOS" SEA 0 APARECERÁ CON EL ESCUDO...Y CUANDO CAMBIE A 1...PASA AL DISFRAZ SIN ESCUDO.
EL PROGRAMA SERÁ MUY PARECIDO...PERO EN ESTE CASO TENDREMOS QUE DECIRLE QUE " SI TOCANDO BOLA"...NO HAGA DIRECTAMENTE LO SIGUIENTE, SINO QUE ANTES SE PREGUNTE SI LA VARIABLE"IMPACTOS" ES IGUAL A CERO...EN ESE CASO LO ÚNICO QUE HARÁ SERÁ AUMENTAR "IMPACTOS" A 1 Y MANDARA EL MENSAJE ROTO...PARA QUE LA BOLA REBOTE
EN CASO CONTRARIO...ES DECIR..."IMPACTOS" VALDRÁ 1...QUE HAGA LO QUE HACÍAN LOS DEMAS BLOQUES.
UNA PISTA...SIN COMPLETAR DEL TODO SERÍA: