Nodejs手把手教你用 node 玩跳一跳

Nodejs手把手教你用 node 玩跳一跳

github: https://github.com/aOrz/wx_jump_game

实现原理: 用 adb,将手机截屏,并传输到电脑上,将图片载入到 canvas 中,通过 getImageData,获取到图片的数据,将 rgb 颜色转为 255 的色值,形成一个二维数组,这样我们就可以用颜色点阵来表示图片了,重点来了,然后呢?

匹配跳跃点 棋子:小人颜色是固定的,找到小人的色值之后,我们就可以匹配到小人的底部,得到小人的坐标

棋盘:

棋盘的匹配有些复杂,棋盘的形状不规则,还有阴影,除了棋盘顶部还有左侧和前侧的视图。

1.刚开始,希望可以通过一行一行的扫描,找到棋盘最宽的地方,从而找到棋盘的 x 坐标,无奈,失败,可能有阴影的地方最宽,然后就跑偏了。

  1. 想通过颜色的多少来区分是不是棋盘,颜色面积大的,肯定是背景色或者其他,可惜,界定没那么明显失败。

  2. 还是横向扫描棋盘,扫描到之后,判断长度达到棋子宽度的 1.5 倍之后,就停止乡下扫描,获取到棋盘的点。

起跳: 获取到棋子和棋盘的坐标,计算两点之间的距离,然后乘以系数,就可以算出按压时间啦!使用 adb 就可以发送长按指令了哦~


11 回复

火钳,留翔。


有人试过没

已经刷了 1500

好像现在就缺 PHP 了

楼主我好像认识你(

哈哈,好巧

蛤蛤 最服你这句话了

牛逼!太厉害!

3000 多,好像被屏蔽了

php 的也有了

当然,下面是一个简单的Node.js示例,模拟一个“跳一跳”游戏的基本逻辑。由于Node.js主要用于后端开发,我们将用命令行界面来展示这个游戏。

首先,确保你已经安装了Node.js。然后,创建一个新的JavaScript文件,比如jumpGame.js,并添加以下代码:

const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

let position = 0;
const targetPosition = 5;
let score = 0;

function gameLoop() {
  console.log(`当前位置: ${position}, 目标位置: ${targetPosition}, 分数: ${score}`);
  rl.question('按回车键跳跃...', (input) => {
    position++;
    if (position >= targetPosition) {
      console.log('恭喜你,你赢了!');
      rl.close();
    } else if (position > targetPosition) {
      console.log('你跳过了目标位置,游戏结束。');
      rl.close();
    } else {
      score++;
      gameLoop();
    }
  });
}

gameLoop();

这个简单的游戏逻辑如下:

  1. 初始化玩家位置、目标位置和分数。
  2. 进入游戏循环,显示当前状态。
  3. 玩家按回车键跳跃,位置增加1。
  4. 检查是否达到或超过目标位置,如果是,则显示胜利信息并结束游戏;如果跳过了目标位置,则显示失败信息并结束游戏;否则,增加分数并继续游戏循环。

运行这个脚本,通过命令行界面来玩这个简单的“跳一跳”游戏吧!

回到顶部