第60章 2048和招聘难题
  接下来的工作便很简单了,绘製对应的图像,再藉助js脚本来实现游戏的玩法。
  因为要实现无尽玩法的缘故,林琅並不打算为各个数字都准备自己对应的贴图,他有更好的解决方案。
  这也是他选择这个项目的一个重要原因。
  毕竟现在他们还没有一个专业的美术,一个能够完全程序化美术的项目便是非常合適的。
  林琅目光放在绘製出的那个4x4的方格中。
  其实实现思路非常简单,將每个单元都视作一个容器,则他真正需要考虑的就是方格的顏色、文字內容、字体大小,以及文字的顏色。
  於是乎一个简单的渲染函数便在他手中诞生了出来。
  原理並不难理解,这是一个输入int(整数),返回两个顏色的函数,这个输入值便是该单元的数字。
  以0作为起点,到int的最大上限,也就是2^31-1,作为一条横轴。
  那么相应的,轴的起点为最淡的顏色,轴的终点为最深的顏色,以单元的值作为输入从轴上取插值,便可以实现完全程序化的顏色生成。
  而该函数返回的第二个顏色,则为字体应该有的顏色。
  在2048中,方格上总是需要显示出一串数字,表示该单元的值的。
  而这会存在一个问题,隨著顏色的逐渐变化,同样的字体顏色可能並不能够適用於全部的环境。
  为了保持可读性,林琅便额外添加了这样一段控制字体顏色的代码。
  即以黑色的近似色为默认显示色,根据先前计算出来的背景色做差值计算,差值小於容差则认为可读性不佳,取白色的近似色作为字体顏色。