如何修改屏幕保护程序(.saver)?

时间:2013-08-28 05:42:35

标签: xcode opengl nib screensaver

我的目标是能够修改开发人员不再支持的Matrix屏幕保护程序。我只是希望能够将字形的颜色从绿色更改为红色。根据我的阅读,我可能需要编辑已编译的.nib文件。据说,有一些技巧可以做到这一点。

我在.saver文件中看到的唯一文件是:

  • Unix可执行文件
  • InfoPlist.strings
  • Matrix.nib
  • 一个Glyphs.png(灰度,因此颜色影响必须来自编程)
  • 名为 Japanese.lproj
  • 的文件夹中的 Matrix.nib 文件

我没有看到任何其他我可以编辑的文件可以让我实现这一点,所以我正在寻找一些指导。

编辑:作者在他的github上发布了他的屏幕保护程序的源代码。现在我只想弄清楚究竟需要改变什么。

1 个答案:

答案 0 :(得分:1)

源代码的修改并不是很难。颜色是即时计算的,因此无法修改资产以更改颜色。

在MatrixStrip.m的第226行中,将左括号前的1更改为0.在第228行中将0更改为1.代码中V下方的列。

....                            V
226:    colorArray[16*i + 4*c + 0] = (cellState[i] == 0) ? 0.0 : g;
227:    // Cells which are very bright are slightly whitened
228:    colorArray[16*i + 4*c + 1] = ((g > 0.7) && (cellState[i] != 0)) ? (g - 0.6) : 0.0;

对第253行和第255行进行相同的更改。您将按顺序将数字放在内部循环的第34列中。在原始代码中,向下读取列34的数字a 1,0,2,3。这必须在我指示的4条线上的两个内环中完成。这些数字是RGBA颜色的索引。

我不确定我的解释是否足够,所以我不会将其扩展为1000个单词,而是包含差异的屏幕截图,其中相关部​​分由Kaleidoscope突出显示。原始代码在左侧。

enter image description here

我必须下载图片才能看到相关细节。