文章 技术教程

【技术教程】【初夏原创】关于纯Java开发游戏如何实现敌我判断

首页 > 技术教程 > 正文

导语:在版块基本没有看见关于此类游戏的教程,刚好今日有时间,截几张图做一下讲解。

要求学习者者具备一定安卓开发经验、kotlin、Java等语言的基础使用。。或者你想理解基础的一个逆向思维也可以学习,技术永远是第二,逆向思维才是第一[滑稽]四两拨千斤
【技术教程】【初夏原创】关于纯Java开发游戏如何实现敌我判断第3张插图
科普时间到:何为纯Java开发?目前游戏基本离不开unity、Cocos这两大引擎。或者基于其他游戏引擎开发的游戏。他们存在的一个共同点是:主要游戏逻辑(伤害、物品加减)不会存在于dex。位于so动态库、js文件居多。纯java开发的游戏只是一个统称,他可能用Java写的也可能用kotlin写的,毕竟这两者并不分家。简单点说就是他的逻辑位于dex层,代表游戏:公会会长,普通的修改并无意义,我们今天进入的是如何在一个通用的伤害获取方法内实现敌我的判断

找到了关键的方法getfinadamage,伤害获取。这是一个简单直接返回,并无存在相关的判断,继续分析

【技术教程】【初夏原创】关于纯Java开发游戏如何实现敌我判断第4张插图
此时我们找到了一个判定方法,isplayerside,是一个Boolean类型的方法,根据传递进去的对象进行判断
【技术教程】【初夏原创】关于纯Java开发游戏如何实现敌我判断第5张插图
通过调用查询,我们发现了不少关键方法调用了这个判断方法,这一个步骤存在的意义是什么呢?一个是确定他是否为我们需要的存在判定功能。第二个是弄清楚先后关系。那就是伤害执行时有无经过这个方法的判定,他们两个是谁先执行。确定了isplayer是先执行的,那我们直接在这个方法下进行拦截即可

主要思路为:创建一个变量在这个方法内获取他们的返回结果,在伤害方法内通过获取变量进行判断。结合以上思路打开我们的as,开始写代码

【技术教程】【初夏原创】关于纯Java开发游戏如何实现敌我判断第6张插图
开发步骤省略,自行百度哦,第一步创建一个公开类的公开变量,初始值为false,不建议为true,如果程序发癫部分逻辑没走isplayer那么你自己也会被秒杀
【技术教程】【初夏原创】关于纯Java开发游戏如何实现敌我判断第7张插图
第二步在我们自己的类里面实现,我们上面思路的一个模拟获取,用于后续编译后我们可以直接复制粘贴进行修改,模拟获取流程为:模拟取值、模拟判断、模拟赋值

【技术教程】【初夏原创】关于纯Java开发游戏如何实现敌我判断第8张插图
最早我们代码如下:

模拟拦截赋值,拦截任意v0Boolean参数,传递给isplayer

sget-object v1, Lcom/qingdi/modtest/startmod;->INSTANCE:Lcom/qingdi/modtest/startmod;

invoke-virtual {v1, v0}, Lcom/qingdi/modtest/startmod;->setIsplayer(Z)V

模拟取值,读取isplayer字段获取当前值

.line 27sget-object v1, Lcom/qingdi/modtest/startmod;->INSTANCE:Lcom/qingdi/modtest/startmod;invoke-virtual {v1}, Lcom/qingdi/modtest/startmod;->getIsplayer()Zmove-result v1

模拟判断为false或true

if-eqz v1, :cond_4f

为true的执行逻辑

.line 31:cond_4f

为false的执行逻辑
return-void

代码浅析结束,那么我们只需要在上面我们的两个方法内插入这些方法即可

【技术教程】【初夏原创】关于纯Java开发游戏如何实现敌我判断第9张插图
在判断方法内加入我们的模拟赋值代码,将结果存入我们的字段内
【技术教程】【初夏原创】关于纯Java开发游戏如何实现敌我判断第10张插图
在伤害方法插入模拟取值的代码取出值进行判断,注意要先初始获得我们原先的伤害值哦

结合以上代码把我们打包出来的dex放入apk文件即可实现一次简单的敌我判断

【技术教程】【初夏原创】关于纯Java开发游戏如何实现敌我判断第11张插图

免责声明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!
【分享】全民K歌TV版🎤9.8.7.1 MV版✨无需登录
« 上一篇 02月20日
【分享】MoeKoe🎵1.3.9高颜值酷犬音乐✨自动领取VIP
下一篇 » 02月20日

还没有评论,快来抢沙发吧!