2016-06-14 7 views
3

spritekitは実際にどのように機能しますか?フレームワークのコードは、アプリケーションにコンパイルされているのか、それともiOS自体の一部なのでしょうか。私は毎回、iOSのメジャーなアップデートを気付きました。私はspritekitのゲームでバグを修正してコードの束を書き直さなければならないことに気付きました。何故ですか?SpriteKit - 新しいiOSバージョンがリリースされたとき、ゲームにバグが発生するのはなぜですか?

答えて

2

SpriteKitの実行時環境は、アプリの一部ではなく電話機にあります。これにより、スペースが節約されます(そうでなければ、すべてのアプリケーションに使用されたすべてのランタイムライブラリのコピーが含まれているため、大量の複製が発生します)が発生する問題が発生する可能性があります。以前に働いた。

これは、iOS関数(SpriteKit、UIKitなど)を呼び出すと、コード自体が電話機に保存されているコードに分岐するためです。このコードに変更(iOSアップデートあり)があり、CGPointの代わりにCGVectorが、または関数呼び出しの3番目のパラメータが突然期待される場合、プログラムは失敗します。

一部のコンパイラでは、ランタイムライブラリを実行可能ファイルにバインドする機能があるため、OSのアップグレード時の耐性が向上しますが、実行時に実行されるプログラムなどのノックオン効果がありますY2KはY2Kに準拠していないメインフレーム上でIBMのCOBOLランタイム環境の古いバージョンを使用していましたが、Y2Kはその例を提供しました。アプリケーションを最新のものにすることは、ランタイムの1つの増分リリースだけを更新する必要があるのに比べて大規模な仕事です。

+0

これは、静的ライブラリと動的ライブラリの違いを説明する不自然な方法です。コンパイラではなく、そのようなことを実行するリンカです。 – Droppy

+0

コンパイラとバインダの違いについては、ほとんどの人がちょうど彼らのプログラムが「コンパイル」されていると思っているので、実際には詳しくは分かりませんでした。また、動的サブルーチンと静的サブルーチンの違いについても、常駐ランタイムライブラリと非常駐ランタイムライブラリの違いについては触れませんでした。 –

1

iOSの一部です。詳細については、Info.plistのPrefersOpenGL = YESフラグを設定することで、以前のOpenGLモードをiOS 9.Xで使用できます。https://stackoverflow.com/a/37768928/763355

+0

あなたの答えをありがとう。唯一の問題はレンダラですか?スプライトキットのオブジェクトがバージョン間で機能するように思えます。 – hamobi

関連する問題