Un juego de reflejos es un juego simple y divertido que mide tu velocidad de respuesta. Es bastante simple de hacer y entender. Diseñaremos un juego de reflejos que calculará tu velocidad de respuesta. Las reglas son simples, solo presiona el botón de detener cuando veas el cambio en el color de fondo, y el tiempo que tardaste en hacerlo será tu velocidad. Una respuesta más rápida mostrará una mejor cita de elogio que una más lenta.
Implementación paso a paso
Paso 1: Crear un nuevo proyecto
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio. Tenga en cuenta que seleccione Java como lenguaje de programación.
Paso 2: trabajar con el archivo activity_main.xml
Los códigos XML se utilizan para construir la estructura de la actividad, así como su parte de estilo. Contiene un TextView en el centro de la actividad para mostrar las instrucciones del juego. Luego contiene dos botones , iniciar y detener. A continuación se muestra el código para el archivo activity_main.xml .
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/rlVar1" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <!--TextView to display game instruction--> <TextView android:id="@+id/tvVar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:padding="20dp" android:text="Click on Start first, and wait until the background color changes. As soon as it changes hit Stop" android:textSize="25dp" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/tvVar1" android:layout_centerHorizontal="true" android:orientation="horizontal" android:padding="20dp"> <!--start button--> <Button android:id="@+id/btVar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="Start" /> <!--stop button--> <Button android:id="@+id/btVar2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="Stop" /> </LinearLayout> </RelativeLayout>
Paso 3: trabajar con el archivo MainActivity.java
Cuando un jugador hace clic en el botón Inicio, se llama a la función onClickListener() para ese botón. Dentro de esta función, generaremos un número entero aleatorio del 1 al 10. Este número serán los segundos después de los cuales cambiará el fondo de la pantalla. Para generar el número usaremos la función Random . Después de obtener el número entero, crearemos una clase de controlador y llamaremos a una función ejecutable después de un retraso posterior. La función principal del controlador es programar mensajes y ejecutar. Dentro de la interfaz ejecutable, configuraremos el fondo de la pantalla usando la función setBackgroundResource() . Usaremos System.currentTimeMillis()para obtener la hora actual en milisegundos. Primero, obtendremos la hora del sistema cuando cambie el fondo de la pantalla, y luego obtendremos la hora del sistema cuando se haga clic en el botón de detener. La diferencia entre estos tiempos dará el tiempo de reacción del jugador. MainActivity.java
Java
import android.os.Bundle; import android.os.Handler; import android.view.View; import android.widget.Button; import android.widget.RelativeLayout; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import java.util.Random; public class MainActivity extends AppCompatActivity { public Button button1, button2; public RelativeLayout relativeLayout; // runnable function Runnable runnable = new Runnable() { @Override public void run() { // set the background on the screen relativeLayout.setBackgroundResource(R.color.green); // get the system time in milli second // when the screen background is set final long time = System.currentTimeMillis(); // function when stop button is clicked button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // get the system time in milli second // when the stop button is clicked long time1 = System.currentTimeMillis(); // display reflex time in toast message Toast.makeText(getApplicationContext(), "Your reflexes takes " + (time1 - time) + " time to work", Toast.LENGTH_LONG).show(); // remove the background again relativeLayout.setBackgroundResource(0); } }); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); relativeLayout = findViewById(R.id.rlVar1); button1 = findViewById(R.id.btVar1); button2 = findViewById(R.id.btVar2); // function when the start button is clicked button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // generate a random number from 1-10 Random random = new Random(); int num = random.nextInt(10); // call the runnable function after // a post delay of num seconds Handler handler = new Handler(); handler.postDelayed(runnable, num * 1000); } }); } }
Producción:
Publicación traducida automáticamente
Artículo escrito por namanjha10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA