国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

利用Kotlin實現破解Android版的微信小游戲--跳一跳

2024-07-21 23:03:43
字體:
來源:轉載
供稿:網友

前言

昨天下午,微信小程序開放了游戲接口,朋友圈瞬間炸開了鍋,尤其是“跳一跳”這款游戲的成績單,在朋友圈刷了一波又一波。

微信小游戲,微信互動小游戲,微信小游戲開發,Kotlin

下面就來給大家介紹了關于Kotlin破解Android版的微信小游戲跳一跳的相關內容,讓大家可以好好炫耀一番。

成果

微信小游戲,微信互動小游戲,微信小游戲開發,Kotlin

跳一跳

微信小程序可以玩游戲了,我們來破解一下《跳一跳》這個官方出品的小游戲吧。

思路

用usb調試安卓手機,用adb截圖并用鼠標測量距離,然后計算按壓時間后模擬按壓。

$ adb shell input swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen) # 模擬長按$ adb shell screencap <filename> # 保存截屏到手機$ adb pull /sdcard/screen.png # 下載截屏文件到本地
  1. 得到手指按的時間 t
  2. 時間 = 距離 / 速度(常量) t = L / k
  3. L = p2 - p1
  4. 獲取到起始點和結束點的坐標

源碼

開發環境: Kotlin, IetelliJ IDEA

https://github.com/iOSDevLog/JumpJump

主要源碼

fun main(args: Array<String>) { val jumpjump = JumpJump() var isFirst = true var firstPoint: Point? = null var secondPoint: Point? val jPanel = object : JPanel() { override fun paintComponent(g: Graphics) {  super.paintComponent(g)  try {  var bufferedImage = ImageIO.read(File(SCREENSHOT_LOCATION))  val newImage = BufferedImage(675, 1200, bufferedImage.getType())  val gTemp = newImage.graphics  gTemp.drawImage(bufferedImage, 0, 0, 675, 1200, null)  gTemp.dispose()  bufferedImage = newImage  g.drawImage(bufferedImage, 0, 0, null)  } catch (e: IOException) {  e.printStackTrace()  } } } jPanel.addMouseListener(object : MouseListener { override fun mouseReleased(e: MouseEvent?) { } override fun mouseEntered(e: MouseEvent?) { } override fun mouseClicked(e: MouseEvent?) { } override fun mouseExited(e: MouseEvent?) { } override fun mousePressed(e: MouseEvent?) {  println("mousePressed")  e.let {  if (isFirst) {   println("first {pomt" + e!!.x + " " + e.y)   firstPoint = e.point   isFirst = false  } else {   secondPoint = e!!.point   val distance = distance(firstPoint!!, secondPoint!!)   println("distance:" + distance)   isFirst = true   //magic number   call(distance * 2.2)   try {   // wait for screen cap   Thread.sleep(2500)   } catch (e1: InterruptedException) {   e1.printStackTrace()   }   printScreen()   jPanel.validate()   jPanel.repaint()  }  } } }) jumpjump.isVisible = true jumpjump.contentPane.add(jPanel) printScreen() jumpjump.repaint() jumpjump.validate()}fun distance(a: Point, b: Point): Int { return Math.sqrt((a.x - b.getX()) * (a.x - b.getX()) + (a.y - b.getY()) * (a.y - b.getY())).toInt()}

使用方法

  1. 在電腦上下載好adb
  2. 打開安卓手機的usb調試模式并授權連接的電腦
  3. 打開微信跳一跳,并點擊開始
  4. 在Constans.kt中配置好adb路徑與截圖路徑,運行
  5. 在彈出的窗口中先點擊小人底部適當位置,然后再點想要跳的箱子的位置即可完成

參考

https://github.com/easyworld/PlayJumpJumpWithMouse

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到kotlin教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鲁甸县| 加查县| 桂东县| 罗江县| 定兴县| 盐亭县| 搜索| 高邑县| 樟树市| 淮南市| 连平县| 全南县| 江北区| 上饶县| 东乌珠穆沁旗| 黄冈市| 闵行区| 博客| 临沧市| 蓬莱市| 海阳市| 青龙| 宿迁市| 农安县| 固阳县| 哈密市| 哈尔滨市| 建始县| 合水县| 项城市| 南木林县| 承德市| 洛南县| 台中县| 历史| 曲阜市| 牡丹江市| 荔波县| 汝州市| 萨嘎县| 通化县|