补几个2016年游戏的简评

补几个2016年游戏的简评,黑暗之魂3、极限竞速地平线3、看门狗2、最终幻想15、守望先锋,顺便把之前写过的神秘海域4和古墓丽影10也搬过来。

黑魂3 地平线3 看门狗2 FF15 神秘海域4 古墓丽影崛起 守望先锋
画面 9 10 9 9 10 10 9
流畅度 10 8 9 8 9 9 10
剧情叙事 8 - 8 6 10 8 -
场景 10 10 9 9 10 10 8
战斗 10 - 7 10 9 9 10
音乐音效 8 9 8 10 9 9 8
系统 9 9 9 8 9 9 9
容量 9 9 8 10 9 10 9
小游戏 - - 7 7 8 8 -
细节 9 9 8 9 10 9 9
总评 9.1 9.1 8.2 8.6 9.3 9.1 9

我的年度游戏: 神秘海域4:贼途末路

在JavaScript中实现LINQ——一次“失败”的尝试

这篇文章的起因是我在知乎上对JavaScript 函数式编程存在性能问题么?这个问题的回答。其实在这个问题之前挺久我就想做相关的尝试,但懒癌无药医,挖坑如山倒,填坑如抽丝。

废话不多说,走你。

C# 3.0引入了引以为豪的LINQ(Language INtergrated Query),可以用类函数式的方式操作集合(C#中的IEnumerable接口)。

在JS中,数组也有类似的filtermapreduce一类方法,但存在重复遍历问题,利用C#中LINQ的思路,给JS实现一套LINQ是否可行呢?

初窥 ASP.NET Core MVC

最近心血来潮,想搞一下ASP.NET Core,于是准备把练琴记录仪的服务端迁移到ASP.NET Core MVC上,不过遇到些小问题,记录一下。

Cordova中与In App Browser的通讯

为了把我的练琴记录仪改成多用户App,我需要做一个Weibo OAuth功能,因为练琴记录仪是Single Page App,我不愿意直接跳转到OAuth页面,那样会打断我的应用状态,于是我打算打开一个新窗口来完成OAuth。

这样一来,问题自然就转换为跨窗口通讯问题了。

窗口间通讯毫无疑问首选是window.postMessage,在cordova当中,原生window.open是不能用的,官方给的方案是使用cordova-plugin-inappbrowser插件所提供的cordova.InAppBrowser.open(url, target, options)来取代window.open,这两者基本上API差不多一致。

但是IAB插件所返回的对象并不是真正的window,它没有postMessage功能,并且在IAB所打开的页面中,也没有window.opener,于是只能另辟蹊径,找点不靠谱的挫方法来试试了。

使用RxJS做一个Pull-to-Refresh的例子

本文将用一个Pull-to-Refresh的例子来介绍如何使用RxJS进行高度抽象的复杂DOM事件处理。

文中所开发的完整demo代码可以在github找到,在线demo在这里(需要使用手机或开启touch模拟,未作浏览器兼容)。

这个程序将会用到的工具:

  • RxJS
  • VueJS(并非对其依赖,仅仅是为了方便开发一个UI)