2010-11-23 7 views
0

こんにちは私はマルチタスクの作業を正しく行おうとしていますが、残念ながら私はちょっと失礼です。私の問題は、ゲームに再び入るときです。ゲームが戻ってポーズ画面が表示されるまでに数秒かかります。私の質問は、ゲームが戻ってくるまで何らかの種類のローディング画面を置く方法はありますか?それで、少なくとも私はそれが凍っていないことを示していますか?私はXcodeを直接使用したことはありません。私は自分のゲームを構築するためにUnity 3dを使用しています。私は少しの研究を行いました。私が間違っていないのであれば、 "applicationDidEnterBackground"アプリケーションデリゲートメソッドを使用するはずです。私の質問は、どのようにXcodeでそのメソッドを使ってカスタム読み込み画面を置くことができるのですか?iphoneマルチタスク?

おかげ-applicationDidEnterBackgroundで

答えて

1

:,あなたはスクリーンショットがとられる前に、UIを「クリーンアップ」する機会を与えられています。 Appleは、「機密データ」(スクリーンショットは「ディスク」に保存されている可能性があります)を削除する必要があると言いますが、他のこともできます。 1つのアプリケーションでは、カウントダウンタイマーでラベルを隠すので、アプリに戻ったときにジャンプしないように見えます。

「読み込み画面」を変更するには、単に他のビューよりもフルスクリーン表示を表示し、-applicationWillEnterForeground:で削除します。代わりに、最初の場所でゲームを一時停止する!

(本当に、あなたは-applicationWillResignActiveでゲームの一時停止する必要があります。ホームユーザーをダブルタップまたはユーザーがSMS /通知を受信したときに起こる、私はアプリがバックグラウンドにしたとき、それはあまりにも、と呼ばれていますかなり確信しています。 )

+0

答えをありがとう。私はこのコードをapplicationDidEnterBackground関数の中に持っています。 UIImageView * myImage = [[UIImageView alloc] initWithFrame:_window.frame]; [myImage setImage:[UIImage imageNamed:@ "Background.png"]]; [_window insertSubview:myImage aboveSubview:view]; [myImage release]; アプリケーションがバックグラウンドになっても何らかの理由でバックグラウンド画像が表示されない場合があります。 – k787

+0

私はまた、ゲームを一気に中断していますが、ゲームがロードされてフォアグラウンドに入るまで、一時停止画面は表示されません。そのため、ユーザーがゲームに再入室している間にローディング画面をいくつか入れたいのです。 – k787

+0

'-addSubview:'は常にビューを一番上に表示するので、 'view'がnilであるか直接的なサブビューでない場合に正しいことをする可能性が高くなります。 UnityがUIApplicationWillBecomeInactiveNotificationまたはUIApplicationDidEnterBackgroundNotificationをキャッチしてUnityレンダラ自体を一時停止し、レンダリングが再開するまでポーズ画面が表示されなくなる可能性もあります。ソースコードを見ることなく、伝えるのは難しいです。 –

関連する問題