2011-01-11 3 views
2

これが可能であるかどうかわかりません。私は楽しいオフィスプロジェクトのために少しゲームを作っており、実際のSilverligth xapに自己完結したハイスコアテーブルを用意する必要があります。これを行うためにとにかくありますか?高いスコアは.xapに含まれています

+0

お客様の要件をより詳細に記述すると、考えられなかったより合理的な選択肢を提供できる場合があります。これまでの回答で示されているように、XAPを変更することは実用的な選択肢ではありません。 – Sander

答えて

1

可能ですが、おそらく良い考えではありません。

スコアを取得してXAPを更新するサーバー側スクリプトが必要です。
XAPは(おそらく)大きなファイルなので、更新するには時間がかかります。競合状態やアクセスの問題が発生する可能性があります。
ファイルをロックすると、一度に複数のユーザーが最高記録を送信すると、遅延が長くなります。

the XAP is a ZIP file以降、ZIPライブラリを使用してZIPライブラリを更新し、Mono.Cecilライブラリを使用して、ZIP内のアセンブリ内のハードコードされた配列を変更できます。 (埋め込みテキストファイルを更新する)

+0

私はあなたが「ZIPライブラリを使って更新する」ということに少し興味がありました。あなたはこれを詳しく教えてください。 –

+0

SharpZipLibのようなものを使って、ZIPファイルやXAPファイルの内容を変更することができます。 – SLaks

2

いいえ、テーブルをデータ(XMLファイルなど)として保存することはできますが、ファイルを変更してXAPファイル内で更新することはできません(合理的ではありません) SLakの答え)。

代わりに、Isolated Storageを使用して、ハイスコアのローカルコピーを保存することができます。このファイルは1台のマシンにつきユーザーごとであるため、複数のユーザーに1つのファイルを共有することはできません。もう1つの選択肢は、XAPファイルを提供する同じWebサイトでホストできるWebサービス(asmxまたはWCF)を使用することです。 Webサービスは、好きなだけ高いスコアを格納することができ、すべてのユーザーはすべてのスコアにアクセスできます。

SL4とWindows Phone 7を使用している場合は、スコアが高い場合にプッシュ通知を電話に送信することもできます。 (WCFの二重メッセージングを使って通常のデスクトップのSLアプリでもこれを行うことができますが、私はそれについて十分には分かりません)。

関連する問題