• 安卓实现简单砸地鼠游戏


    效果

    布局 

    1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2. xmlns:app="http://schemas.android.com/apk/res-auto"
    3. xmlns:tools="http://schemas.android.com/tools"
    4. android:layout_width="match_parent"
    5. android:layout_height="match_parent"
    6. android:orientation="vertical"
    7. tools:context=".MainActivity">
    8. <TextView
    9. android:id="@+id/scoreTextView"
    10. android:layout_width="wrap_content"
    11. android:layout_height="wrap_content"
    12. android:text="得分:0"
    13. android:textSize="18sp" />
    14. <GridLayout
    15. android:id="@+id/gridLayout"
    16. android:layout_width="match_parent"
    17. android:layout_height="match_parent"
    18. android:columnCount="3"
    19. android:rowCount="3">
    20. <ImageView
    21. android:id="@+id/imageView1"
    22. android:layout_width="0dp"
    23. android:layout_height="0dp"
    24. android:layout_columnWeight="1"
    25. android:layout_rowWeight="1"
    26. android:background="@mipmap/laohu" />
    27. <ImageView
    28. android:id="@+id/imageView2"
    29. android:layout_width="0dp"
    30. android:layout_height="0dp"
    31. android:layout_columnWeight="1"
    32. android:layout_rowWeight="1"
    33. android:background="@mipmap/laohu" />
    34. <ImageView
    35. android:id="@+id/imageView3"
    36. android:layout_width="0dp"
    37. android:layout_height="0dp"
    38. android:layout_columnWeight="1"
    39. android:layout_rowWeight="1"
    40. android:background="@mipmap/laohu" />
    41. <ImageView
    42. android:id="@+id/imageView4"
    43. android:layout_width="0dp"
    44. android:layout_height="0dp"
    45. android:layout_columnWeight="1"
    46. android:layout_rowWeight="1"
    47. android:background="@mipmap/laohu" />
    48. <ImageView
    49. android:id="@+id/imageView5"
    50. android:layout_width="0dp"
    51. android:layout_height="0dp"
    52. android:layout_columnWeight="1"
    53. android:layout_rowWeight="1"
    54. android:background="@mipmap/laohu" />
    55. <ImageView
    56. android:id="@+id/imageView6"
    57. android:layout_width="0dp"
    58. android:layout_height="0dp"
    59. android:layout_columnWeight="1"
    60. android:layout_rowWeight="1"
    61. android:background="@mipmap/laohu" />
    62. <ImageView
    63. android:id="@+id/imageView7"
    64. android:layout_width="0dp"
    65. android:layout_height="0dp"
    66. android:layout_columnWeight="1"
    67. android:layout_rowWeight="1"
    68. android:background="@mipmap/laohu" />
    69. <ImageView
    70. android:id="@+id/imageView8"
    71. android:layout_width="0dp"
    72. android:layout_height="0dp"
    73. android:layout_columnWeight="1"
    74. android:layout_rowWeight="1"
    75. android:background="@mipmap/laohu" />
    76. <ImageView
    77. android:id="@+id/imageView9"
    78. android:layout_width="0dp"
    79. android:layout_height="0dp"
    80. android:layout_columnWeight="1"
    81. android:layout_rowWeight="1"
    82. android:background="@mipmap/laohu" />
    83. GridLayout>
    84. LinearLayout>

    实现代码

    1. public class AttentionQuestionsActivity extends AppCompatActivity {
    2. private ImageView[] imageViews; // 地鼠图片数组
    3. private ImageView currentImageView; // 当前显示的地鼠图片
    4. private int score = 0; // 得分
    5. private TextView scoreTextView; // 显示得分的文本视图
    6. @Override
    7. protected void onCreate(Bundle savedInstanceState) {
    8. super.onCreate(savedInstanceState);
    9. setContentView(R.layout.activity_attention_questions);
    10. initImageViews(); // 初始化地鼠图片数组
    11. scoreTextView = findViewById(R.id.scoreTextView);
    12. showNextImageView(); // 显示第一个地鼠
    13. }
    14. // 初始化地鼠图片数组
    15. private void initImageViews() {
    16. imageViews = new ImageView[9];
    17. for (int i = 0; i < imageViews.length; i++) {
    18. imageViews[i] = findViewById(getResources().getIdentifier("imageView" + (i + 1), "id", getPackageName()));
    19. imageViews[i].setVisibility(View.INVISIBLE); // 初始设置地鼠图片为不可见
    20. imageViews[i].setOnClickListener(onClickListener);
    21. }
    22. }
    23. // 点击事件监听器
    24. private View.OnClickListener onClickListener = new View.OnClickListener() {
    25. @Override
    26. public void onClick(View v) {
    27. if (v == currentImageView) { // 如果点击的是地鼠
    28. increaseScore(); // 增加得分
    29. hideCurrentImageView(); // 隐藏当前地鼠
    30. showNextImageView(); // 显示下一个地鼠
    31. }
    32. }
    33. };
    34. // 增加得分
    35. private void increaseScore() {
    36. score++;
    37. scoreTextView.setText("得分:" + score); // 更新得分显示
    38. }
    39. // 隐藏当前显示的地鼠
    40. private void hideCurrentImageView() {
    41. if (currentImageView != null) {
    42. currentImageView.setVisibility(View.INVISIBLE);
    43. currentImageView = null;
    44. }
    45. }
    46. // 显示下一个地鼠
    47. private void showNextImageView() {
    48. hideCurrentImageView();
    49. SecureRandom random = new SecureRandom();
    50. int nextIndex;
    51. do {
    52. nextIndex = random.nextInt(imageViews.length);
    53. } while (imageViews[nextIndex].getVisibility() == View.VISIBLE);
    54. currentImageView = imageViews[nextIndex];
    55. currentImageView.setVisibility(View.VISIBLE);
    56. }
    57. }

    备注 以上只是简单把功能实现出来,大家有需要可以拿来改为自己想要的

  • 相关阅读:
    Unity坐标系入门
    求生之路2服务器搭建插件安装及详细的游戏参数配置教程linux
    Android 多平台AR SDK 集成使用
    更优雅地实现策略模式
    ArcGIS导入xyz序列并绘制地形图(含等高线、面体积、点距离的计算)
    bvh文件,人体骨骼重定向
    AutoConfigurationPackages.Registrar.class源码阅读
    SAP ADM100-1.1之SAP系统架构
    零基础入门金融风控之贷款违约预测挑战赛——简单实现
    用golang开发系统软件的一些细节
  • 原文地址:https://blog.csdn.net/qq_41733851/article/details/136142684