首页 > 其他分享 >寻路迷宫,Android休闲益智小游戏开发

寻路迷宫,Android休闲益智小游戏开发

时间:2024-01-04 14:33:54浏览次数:20  
标签:case MotionEvent canvas 益智 迷宫 break 小游戏 ACTION Android

使用 Android Studio 开发了一款休闲益智小游戏——《寻路迷宫》。

A. 项目描述

《寻路迷宫》是一款非常有趣的小游戏app,玩家需要寻找到迷宫的出口,挑战自己的智力和反应能力。

在游戏中,玩家需要操作角色前进、转向等动作,避免被障碍物(迷宫墙)阻挡,玩家需要思考解决方案,如何才能在最短的时间内到达出口。

《寻路迷宫》是一款非常有趣和挑战性的小游戏app,无论是休闲娱乐还是挑战自我都可以在游戏中找到快乐。

寻路迷宫,Android休闲益智小游戏开发_项目源码


B. 开发工具

  • Android Studio Dolphin | 2021.3.1 Patch 1
  • Java , JDK 11.0.13
  • Gradle , gradle-7.4

C. 代码设计

该游戏界面的主体——迷宫区域,由自定义示图实现,即 GameView.
GameView 继承自 View,其实现了迷宫游戏的界面绘制和游戏逻辑的实现。

  • GameView 的 onDraw() 函数 绘制了游戏的画面,
public void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        gameRenderer.render(canvas);
        
        if (inBackground) {
            gameRenderer.renderOverlay(canvas);
        }
        
    }

绘制游戏画面的具体工作交给了 GameRenderer 来实现,

public void render(Canvas canvas) {
        CLogger.d(TAG, "render");

        // 渲染迷宫墙壁,砌墙
        renderWalls(canvas);
        // 渲染迷宫目的地
        renderDestination(canvas);
        // 渲染 受用户拖动的圆形球
        renderPlayer(canvas);
    }
  • GameView 的 onTouchEvent() 函数处理了用户的操作事件,
    public boolean onTouchEvent(MotionEvent ev) {
        if (gameConroller != null) {
            gameConroller.handleDrag(this, ev);
        }
        return true;
    }

处理用户操作事件的具体工作交给了 GameController来做,这样做的好处是有利于代码解耦;

    /* --- 操控"小球"拖放 -------------------------------------- */
    public boolean handleDrag(View view, MotionEvent ev) {

        if (game.getState() == GameState.PLAYING) {
            final int action = ev.getAction();

            switch (action) {
            case MotionEvent.ACTION_DOWN: {
                // 处理手指按下事件
                break;
            }
            case MotionEvent.ACTION_MOVE: {
                                 // 处理手指移动事件
                break;
            }
            case MotionEvent.ACTION_UP:
            case MotionEvent.ACTION_CANCEL: {
                isDragging = false;
                break;
            }

            case MotionEvent.ACTION_POINTER_UP: {
                // 用户的一个手指离开了触摸屏 (但是还有其他手指还在触摸屏上)
                break;
            }
            }
        }
        return true;
    }

D. 项目演示

寻路迷宫,Android休闲益智小游戏开发_游戏_02

E. 项目源码

寻路迷宫,Android休闲益智小游戏开发_项目源码_03

关注公众号『数字森林』,后台发送关键字:迷宫,获取项目源码

标签:case,MotionEvent,canvas,益智,迷宫,break,小游戏,ACTION,Android
From: https://blog.51cto.com/u_16307842/9100979

相关文章

  • 制作好一个小游戏,那我们应该如何让这个游戏运行起来呢?
    哈喽大家好,我是咕噜美乐蒂。继上一篇我们用编码制作了一个小游戏后,那么我们该如何让这个游戏运行起来呢?下面,美乐蒂就带大家一起来学习一下吧!制作游戏是一件很有趣的事情,但如果你不知道如何将游戏发布出来让其他人玩,那么这个游戏就只能停留在你自己的电脑上。下面,我们来详细了解一下......
  • Windows Subsystem for Android (WSA) 下载:在 Windows 11 上运行 Android 应用
    作者主页:www.sysin.org在Beta频道中为Windows预览体验成员宣布Windows11Preview上的Android™应用程序今天我们宣布的Android™应用程序适用于Windows11的第一个预览版现已在Beta频道在美国的WindowsInsiders可用,如果您还没有读过thisblogpostfromGiorgio......
  • Android大图监测的这三种实现方式,你最喜欢哪种?
    在Android应用中,大图的加载和显示可能导致内存占用过高,进而引发OOM(OutOfMemory)异常,影响应用的稳定性和用户体验。为了更好地管理大图资源,我们需要建立起一套可靠的大图监测系统。原理解析内存占用计算首先,我们需要了解如何计算一张图片在内存中的占用大小。Android中,图片占用的内......
  • Android GB28181-2022 图像抓拍
     GB28181-2022新增图像抓拍功能,这个功能很有用,无需在设备实时点播的情况下,就可以抓图上传到指定的图像存储服务器上。如果配置合适的抓拍间隔,JPEG也选择适当的压缩参数,相比实时音视频回传更省流量,设备功耗也低。 GB28181图像抓拍分为三步,一是下发图像抓拍配置命令给设备,......
  • Windows Subsystem for Android (WSA) 下载:在 Windows 11 上运行 Android 应用 (July
    WindowsSubsystemforAndroid(WSA)下载:在Windows11上运行Android应用(July2023)适用于Android™️的Windows子系统,2023年7月更新:2306.40000.4.0作者主页:sysin.org适用于Android™️的Windows子系统使你的Windows11设备能够运行AmazonAppstore中提供的Andr......
  • [Android] 如何把自定义的 可执行文件/库文件/apk 放到系统目录下
    找到源码目录device/......./<devicename>/<devicename>.mk,以waydroid为例:/device/waydroid/waydroid/waydroid_arm64打开如下文件: lineage_waydroid_arm64.mk添加PRODUCT_PACKAGES变量到上述文件中,比如:PRODUCT_PACKAGES+=可执行文件名/动态库名字/静态库文件名字/apk文件名......
  • Android头像列表重叠最简实现
    手把手教程,针对初学者(老家伙请跳过),先看效果,能用得上的再继续往下看……针对上图重叠头像的展示实现方式,最简单的就是使用RecyclerView,利用其装饰器。平常使用RecyclerView都是每个item之间有间距,而这里不仅没间距还重叠了一部分,其实本质上也可以看成是有间距,只不过间距是负值。直接......
  • 一行代码也不写,拿Github Copliot + DallE3做一个小游戏是什么体验?
    我全程没写一句代码...   乡村爱情15看完了,晚上也没什么事,就寻思折腾点事做,儿子问我小时候最爱玩什么游戏,我毫不犹豫的说1945,正好这个事情给了我一个brainstorming,那我自己写一个简单的1945可不可以?   说干就干,但是我也没写过游戏,于是我开启了GitHubCopliot...  ......
  • ThreadLocal:你不知道的优化技巧,Android开发者都在用
    引言在Android开发中,多线程是一个常见的话题。为了有效地处理多线程的并发问题,Android提供了一些工具和机制。其中,ThreadLocal是一个强大的工具,它可以使得每个线程都拥有自己独立的变量副本,从而避免了线程安全问题。本文将深入探讨Android中的ThreadLocal原理及其使用技巧,帮助你更......
  • 为什么Android系统开发工程师这么稀缺?
    前言今日得闲,思考了一个问题。为什么Android系统开发工程师各个公司都在招聘,而且是每天都在招,工资待遇也很客观,但结果却找不到人?首先,我们来看下Android系统开发工程师的主要职责是什么,以下是招聘网的要求。根据以上要求,我们来分析一下:本科学历,这个要求目前基本上都可以满足,再高一点......