前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >划水神器--在浏览器地址栏和标签页title里面玩俄罗斯方块

划水神器--在浏览器地址栏和标签页title里面玩俄罗斯方块

作者头像
从入门到进错门
发布2019-11-20 21:14:02
4660
发布2019-11-20 21:14:02
举报

划水神器–在浏览器地址栏和标签页title里面玩俄罗斯方块

效果如图:

在这里插入图片描述
在这里插入图片描述

在线体验

1. 原理

  1. URL地址栏中玩:使用window.location.hash动态修改页面的hash值
  2. 标签页中玩:使用document.title动态修改页面的title
  3. 使用一个定时器,产生方块下落的效果,监听键盘按键事件,修改方块形态、位置

2. 依赖的库

为了开发方便,可以使用这两个库:tetris-enginebraille-encode 1. tetris-engine tetris-engine是用于自行开发自定义俄罗斯方块游戏的轻量级JavaScript库。 可以使用npm安装,安装好之后初始化也很简单:

代码语言:javascript
复制
let areaHeight = 20;
let areaWidth = 15;

let game = new Engine(
   areaHeight, 
   areaWidth, 
   renderFunc, 
   defaultHeap, 
   additionalShapes
);

//For starting game process need run game.start();
//And run cycle that each iteration runs game.moveDown();
game.start();

let firstLevelInterval = 1000;
setInterval(() => {
   game.moveDown();
}, firstLevelInterval);


// Use
game.rotate();
game.rotateBack();
game.moveRight();
game.moveLeft(); 
game.moveDown();
game.pause();
game.start();

//for game managament
//You even use game.moveUp() for your custom game

2. braille-encode

braille-encode是将二进制数据表示为盲文,也就是我们最后实现的方块,比如下面这些,当然我们用不了这么多。

⢀⠠⢠⠐⢐⠰⢰⠈⢈⠨⢨⠘⢘⠸⢸ ⡀⣀⡠⣠⡐⣐⡰⣰⡈⣈⡨⣨⡘⣘⡸⣸ ⠄⢄⠤⢤⠔⢔⠴⢴⠌⢌⠬⢬⠜⢜⠼⢼ ⡄⣄⡤⣤⡔⣔⡴⣴⡌⣌⡬⣬⡜⣜⡼⣼ ⠂⢂⠢⢢⠒⢒⠲⢲⠊⢊⠪⢪⠚⢚⠺⢺ ⡂⣂⡢⣢⡒⣒⡲⣲⡊⣊⡪⣪⡚⣚⡺⣺ ⠆⢆⠦⢦⠖⢖⠶⢶⠎⢎⠮⢮⠞⢞⠾⢾ ⡆⣆⡦⣦⡖⣖⡶⣶⡎⣎⡮⣮⡞⣞⡾⣾ ⠁⢁⠡⢡⠑⢑⠱⢱⠉⢉⠩⢩⠙⢙⠹⢹ ⡁⣁⡡⣡⡑⣑⡱⣱⡉⣉⡩⣩⡙⣙⡹⣹ ⠅⢅⠥⢥⠕⢕⠵⢵⠍⢍⠭⢭⠝⢝⠽⢽ ⡅⣅⡥⣥⡕⣕⡵⣵⡍⣍⡭⣭⡝⣝⡽⣽ ⠃⢃⠣⢣⠓⢓⠳⢳⠋⢋⠫⢫⠛⢛⠻⢻ ⡃⣃⡣⣣⡓⣓⡳⣳⡋⣋⡫⣫⡛⣛⡻⣻ ⠇⢇⠧⢧⠗⢗⠷⢷⠏⢏⠯⢯⠟⢟⠿⢿ ⡇⣇⡧⣧⡗⣗⡷⣷⡏⣏⡯⣯⡟⣟⡿⣿

安装:

npm install braille-encode

初始化:

代码语言:javascript
复制
var brailleEncode = require("braille-encode");

var buf = new Buffer("d41d8cd98f00b204e9800998ecf8427e", "hex");

var str = brailleEncode.encode(buf); 
console.log(str); // "⡓⣘⠙⣋⢹⠀⡥⠐⢏⠁⢈⡉⠟⡏⠢⡾"

var buf2 = brailleEncode.decode(str);
console.log(buf.equals(buf2)); // true

3. 组装一下,完事

有了游戏引擎,也有了方块,接下来就是组装一下。 我们要做的也很简单:

  1. 初始化tetris-engine
  2. 监听按钮事件
  3. 根据tetris-engine创建的游戏每次返回值转化为对应的盲文
  4. 把对应的盲文渲染到title和hash

我用vue简单搞了一个,有兴趣的可以搞过去看看。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 划水神器–在浏览器地址栏和标签页title里面玩俄罗斯方块
    • 1. 原理
      • 2. 依赖的库
        • 3. 组装一下,完事
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档