Paso 3: Mecánica
Este juego chupar si no podía interactuar con ella. Si no podía morir, si era demasiado fácil o si fue repetitivo se aburrirán rápido y verterlos. Voy a enumerar elementos del juego en orden que implementó.
Procedimiento generación de nivel:
Juego generará el terreno sobre la marcha. Puesto que esto es una parte importante, que merece su propio paso.
Botón
Detección de botón de clic es sencillo. Esperar botón, botón esperar, continuar con el código. Pero ¿y si desea animar las cosas mientras se espera para el lanzamiento del botón? Un poco más difícil pero no es un problema.
Como puede ver en el código anterior, lo hice agregando una variable buttonReady. Nombramiento no sea el mejor pero funcionalidad sigue siendo la misma. Mientras que buttonReady es 1 (verdadero), programa esperará la pulsación. Después detecta pulsación, buttonReady cambia el estado a 0 (false) y espera para el lanzamiento del botón de comienzo del programa. Lanzamiento de botón nave espacial se mueve y botón listo es retroceder a 1. De esta manera puede ejecutar juego mientras que botón se ha presionado.
Colisión:
Si desea comprobar si golpeas algo, es conveniente verificar si cualquier objeto en el mismo lugar como usted. Lo mismo va para esto. Ver el código de abajo para ver cómo funciona.
Como veis que esto se hace con ayuda de enmascaramiento y modulo operador. Esto es parte de mi minijuego "optimiza el código" jugué por esta cosa entera de programación. Qué enmascaramiento hace es que cambia de puesto pedacitos de variable a la izquierda o derecha por cantidad. Esto hace fácil ver si hay un 1 en cierta posición o no. Después bitshifting modulo (y 2) devuelve el resto de la división y si es igual a 1, hubo un 1 en la posición de lo contrario hubo 0.
Si no tiene operador de enmascaramiento (no se preocupe usted conseguirá algún día), puede utilizar funciones de matriz en su lugar (las variables de datos deben ser los arreglos de discos y tendrás que hacer una función para cambio de datos).
Puntuación
Juego es no un juego si no se mostrará puntuación le alcanzó. ¿Pero cómo marcar tal juego? Por la cantidad de obstáculos que esquivar! Pero ¿significa esto que debe añadirse una pinta cada vez haga clic en un botón y no morir? Que facilitaría los niveles con muchos obstáculos en diferentes carriles en juego principios injustamente y usuario puede engañar haciendo clic múltiples veces cuando empieza el juego y no hay obstáculos... Agregar un punto para cada bloque viajado sin chocar con nada, es una manera mejor para anotar los jugadores. Yo pude realmente nombre "distancia recorrida" pero "puntuación" suena mejor.
Porque nave espacial empieza en posición 4 y el terreno es todo el juego en blanco comienza, jugador comienza con 12 puntos negativos. De esta manera tendrá puntuación 0 si le pega el primer obstáculo.
Escala de dificultad
Pero incluso puntuación puede hacer seguir con el juego si resulta demasiado fácil. Puede aburrirse y deja de jugarlo. Por defecto las actualizaciones juego pantalla cada 0,7 segundos (variable stepTime). Está bien para comenzar con pero se hace aburrido muy pronto. Obviamente debe haber cierta dificultad escala aplicado. He decidido hacerlo acelerando el juego - reduciendo la variable stepTime. En cada paso se reduce por la cantidad de dificultades. Encontré esa dificultad entre 1 y 3 del trabajo mejor. Si pones más, juego llega a ser demasiado muy rápidamente. Si quieres más grande reto, recomiendo ajustar variable stepTime menos y salir de dificultad baja. Te llevará diversión de ritmo rápido juego.
No necesita preocuparse de limitar stepTime siempre sea mayor que 0 como jugador posiblemente no puede ir lejos cuando él tiene que tomar decisiones en décima de segundo como pulsación incluso tarda más.