Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas

En la última publicación, presenté brevemente el componente de conexión e implementé un modelo de chat privado simple usando la conexión. Hoy haremos un modelo de coincidencia y respuesta en tiempo real. La idea general del diseño es que el usuario A se registra para ingresar a la conexión y agrega su CID a la URL y lo reenvía a su amigo B. B abre un caso con parámetros de URL para crear una sala y envía una invitación a A. Después de que A ingresa a la sala, la respuesta comienza y la respuesta es correcta. Agregue puntos, si se agrega la respuesta incorrecta, se contará el puntaje final.
1. Hay
tres campos agregados a la base de datos de la tabla de preguntas para las preguntas de almacenamiento de la base de datos: el título almacena el título, las opciones almacenan las opciones y están escritas en formato JSON; el índice correcto almacena el número de serie de la respuesta correcta. El campo de apodo en la base de datos de UserTable donde se almacenan los datos del jugador almacena el apodo del jugador, y matchPoint almacena las ganancias totales del jugador.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
2. Servicio El
servicio GetQuestions es responsable de enviar y enviar las preguntas en la tabla de preguntas a la recepción. El servicio postUser es responsable de encontrar el jugador ganador de la base de datos (agregar los datos de un jugador si no se encuentra) y actualizar su campo de punto de partida.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
3. Variables La
siguiente figura es la variable
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
finalResult utilizada en el caso para indicar el resultado final del partido. En el caso, se le asignarán los valores "victoria", "fallido" y "empate" para indicar victorias, pérdidas y empates. El resultado de la pregunta actual es la respuesta a la pregunta actual. Como resultado, se le asignará "Nuestro puntaje" y "Puntaje del oponente" en el caso para indicar su propio puntaje y el puntaje de su oponente.
AnswerIndex y oponentAnswerIndex representan los resultados de la respuesta de usted y de la otra parte, es decir, el número de serie de la opción seleccionada, y el valor inicial es -1.
QuestionIndex representa el número de serie de la pregunta actual, currentQuestion se utiliza para almacenar la pregunta actual y todas las preguntas se almacenan en la lista de preguntas.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
WaitTime es la cuenta regresiva para la preparación antes de responder la pregunta, el valor inicial es 5; limitTime es la cuenta regresiva para el tiempo de respuesta, el valor inicial es 20.
roomID almacena el número de identificación de la sala creada por la conexión; oponentInfo y userInfo almacenan la información del oponente y de sí mismo, incluidos el puntaje, el apodo y el código CID; cid almacena los parámetros de URL en el enlace para compartir, que es el código CID del iniciador del juego.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
4. Proceso de respuesta de batalla en tiempo real
1. El primer paso, el jugador iniciador A abre el caso, ingresa el apodo y hace clic en el botón Inicio, luego el jugador actual se registrará primero, y luego la información de A se almacenará en la información del usuario, preste atención a las variables en este momento "Cid" todavía está vacío, por lo que se ejecuta el resto de la rama condicional. El sistema agregará el código CID del usuario actual A a la URL y luego mostrará un banner. Lo anterior es el enlace compartido con los parámetros agregados. El usuario comparte este enlace con Solo amigo B.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
2. En el segundo paso, B abre el enlace compartido por A y entra en el caso. La recepción leerá los parámetros en la URL y lo enviará a "cid" durante la inicialización. Es decir, el valor del código CID de A almacenado en "cid" no es Vacío De esta forma, después de que B registre y almacene su información en userInfo, se ejecuta la rama condicional no vacía cid. Primero, se llama a getQuestions para obtener las preguntas de la base de datos, y luego se genera un número aleatorio como roomID y se crea la sala. Después de que la creación sea exitosa, B enviará a A Un mensaje personal, el contenido del método del mensaje es "starGame", lo que significa que está invitado a ingresar al juego. Al mismo tiempo, el contenido del mensaje también incluye el ID de la habitación, el apodo del jugador y todos los temas. Después del envío, la recepción saltará a la página de juego y esperará la próxima operación.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
3. El tercer paso es que A recibe el mensaje personal de B. Si la conexión monitorea el mensaje personal y el método del contenido del mensaje es "startGame", juzgará si el oponentInfo está vacío. Si está vacío, significa que no hay oponente. El ID de sala, los datos del título y el apodo, puntaje y CID del oponente enviados desde la otra parte se guardarán y luego se agregarán a la sala de la otra parte.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
Después de unirse a la sala, A enviará un mensaje en la sala para informar al usuario (es decir, B) en la sala del apodo y el CID del jugador A, y finalmente saltará a la página de reproducción para comenzar a reproducir el activador waitInterval.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
Por supuesto, también existe la posibilidad. Por ejemplo, otro jugador C también recibió el enlace compartido por A y entró en el caso, pero en este momento A ha entrado en la sala de B, por lo que el parámetro de información de oportunidad del jugador A ya no está vacío, entonces A lo hará. Devuelva un mensaje de rechazo a C. La conexión monitorea y juzga que es un mensaje de rechazo.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
4. El jugador C es solo un episodio. Repasemos el procesamiento del recibo del jugador B del mensaje de la sala enviado por el jugador A. Si la conexión recibe un mensaje de la sala con el método "enterGame" y el remitente no es él mismo, enviará la información de la otra parte. Almacenado en opositorInfo, comienza a jugar waitIntercal trigger.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
5.waitInterval trigger y limitInterval trigger Después de los
pasos anteriores A y B, ambos jugadores se han ejecutado para jugar waitInterval trigger. Implementa la cuenta regresiva de la preparación antes de que cada pregunta comience a responder la pregunta, y finalizará la pregunta al final Asigne la primera pregunta de la lista a "currentQuestion", luego reiníciese y juegue el activador limitInterval.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
El disparador limitInterval controla la cuenta regresiva del tiempo de respuesta. Hay dos casos aquí. Uno es que el jugador respondió la pregunta. Esta parte de la lógica se escribirá en el evento de clic de la opción, y hay dos jugadores hasta que finalice la cuenta regresiva. Si no hay respuesta, ejecutaremos el grupo de acción setVariate.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
6. El grupo de acción setVariate grupo de acción
setVariate determinará primero el valor de questionIndex. Si no es igual al número de filas en questionList menos 1, significa que la pregunta actual no es la última pregunta, y el contenido de la próxima pregunta en questionList se asignará a currentQuestion. Establezca waitInterval trigger y limitInterval trigger.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
Si son iguales, significa que todas las preguntas han sido respondidas, luego compare los puntajes de usted y su oponente, y muestre el resultado del partido. Si eres el ganador, llama al servicio postUser para actualizar tu punto de partida en la base de datos.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
7. Opción de selección de jugador
Ahora hablemos de la situación en la que el jugador responde la pregunta antes de que finalice la cuenta regresiva. Cuando el jugador hace clic en la fila de opción o en el botón de selección en la fila de opción, el número de serie de la opción se asignará a answerIndex, y si el oponente no El juego sin respuesta no finaliza (es decir, la Respuesta inicial sigue siendo el valor inicial -1, el Resultado final todavía no es el valor inicial 0), luego el jugador enviará un mensaje personal con el método método al oponente, y el contenido del mensaje es el resultado de la respuesta. Luego ejecute los grupos de acción checkAnswer y setVariate.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
En consecuencia, cuando el jugador recibe un mensaje personal cuyo método es elegir, el resultado de la respuesta de la otra parte en el mensaje se asigna al sponsorAnser, y los dos grupos de acción checkAnswer y setVariate también se ejecutan.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
8. Grupo de acción checkAnswer El grupo de acción
checkAnswer se usa para juzgar el resultado de la respuesta de la pregunta actual. Si el oponente es mayor o igual a 0 (es decir, no el valor inicial -1), significa que la pregunta actual es la respuesta del oponente, y luego juzga si la respuesta del oponente es correcta. La respuesta del oponente es correcta y el puntaje del oponente se incrementa en 1. El valor de ChooseResult "Puntaje del oponente" indica el puntaje del oponente. Si es incorrecto, el puntaje aumenta en 1. El valor de ChooseResult "Nuestro puntaje" indica el puntaje del oponente. 1), significa que la pregunta actual es su propia respuesta, y el juicio y la operación correspondiente se llevan a cabo de la misma manera.
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas
Finalmente, todo el proceso se resume de la siguiente manera
Resumen de la experiencia de usar componentes de conexión ivx para lograr batallas en tiempo real para responder preguntas

Supongo que te gusta

Origin blog.51cto.com/14556317/2487632
Recomendado
Clasificación