A. 项目演示

gopher-动效

开心打地鼠,开发了一个Android小游戏

B. 开发工具

  • Android Studio Koala
  • Java , JDK 17.0.10
  • Gradle 8.7

C. 代码设计

本项目主要涉及以下几个技术要点:

  1. UI界面设计:为了给用户带来舒适的体验,本项目采用了简单直观的用户界面,游戏主界面包括游戏区域、计分板、开始/暂停按钮等元素。

  2. 游戏逻辑:主要包括地鼠的随机出现、击打判定和分数计算。本项目使用了定时器和随机数生成器来控制地鼠的出现频率和位置。通过监听触摸事件(TouchEvent)来判断玩家是否成功击中地鼠,并实时更新分数。

  3. 动画效果:地鼠从洞口冒出来时,本项目实现平滑的移动动画;地鼠被击中时,会播放一个击打动画效果,并增加得分。

  4. 音效:为提升沉浸感,本项目加入了音效。每当玩家成功击中地鼠时,播放击打音效。

GameSurfaceView 类定义了游戏的主要界面,它继承自 SurfaceView,采用这样的设计可以方便游戏画面在子线程中进行更新。

  • surfaceCreated方法中,初始化图片、声音等资源,同时开启了游戏线程
public void surfaceCreated(SurfaceHolder holder) {
        GameSize.setView(this);
        SCREEN_W = this.getWidth();
        SCREEN_H = this.getHeight();
        // 初始化,图片、声音等
        initializeGameX();
        // 游戏线程
        Thread main_thread = new Thread(this);
        main_thread.start();
        game_th_on = true;

    }
  • 游戏线程当中,定时执行一系列的操作:游戏画面的绘制、执行游戏逻辑、游戏音乐的播放控制
   @Override
   public void run() {
       while (game_th_on) {
           long starttime = System.currentTimeMillis();
           gameDraw();  // 游戏画面的绘制
           gameLogic(); // 游戏逻辑
           gamePlay();  // 游戏音乐的播放控制
           long endtime = System.currentTimeMillis();
           long delta = endtime - starttime;
           if (delta < thread_time) {
               try {
                   Thread.sleep(delta);
               } catch (InterruptedException e) {
                   e.printStackTrace();
               }
           }
       }
   }

D. 项目源码

关注公众号『数字森林』,后台发送:打地鼠,获取源码。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐