2

私の目標は、開発者によってサポートされなくなった Matrix スクリーンセーバーを変更できるようにすることです。グリフの色をgreenからredに変更できるようにしたいだけです。私が読んだことから、コンパイルされた.nibファイルを編集する必要があるかもしれません。おそらく、これを行うためのトリックがあります。

ファイル内に表示される.saverファイルは次のとおりです。

  • Unix 実行可能ファイル
  • InfoPlist.strings
  • マトリックス.ニブ
  • Glyphs.png (グレースケールであるため、色の影響はプログラミングによるものでなければなりません)
  • Japanese.lprojというフォルダ内のMatrix.nibファイル

これを実現するために編集できるファイルが他にないので、ガイダンスを探しています。

編集: 作者は、スクリーンセーバーのソース コードをgithubに投稿しました。今、私は何を変更する必要があるかを正確に把握しようとしています。

4

1 に答える 1

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 から 1、0、2、3 の数字を読み取ります。これは、私が示した 4 行の内側のループの両方で行う必要があります。これらの数値は、RGBA カラーのインデックスです。

私の説明が適切かどうかわからないので、これを 1000 語に拡張する代わりに、Kaleidoscope によって強調表示された関連部分を含む diff のスクリーン ショットを含めます。左が元のコードです。

ここに画像の説明を入力

関連する詳細を表示するには、画像をダウンロードする必要がありました。

于 2013-08-28T16:25:25.663 に答える