2

そのまま(約30fps)で正常に動作するゲームがありますが、広告を実装しようとするとfpsが低下しました。GreystripeとiAdsを試しましたが、同じ結果になりました(iAdsは少し悪いかもしれません)。平均fpsはほぼ同じですが、常に大きなスパイクがあり(1秒あたり1〜2スパイク)、ゲームをプレイできません。

広告が別の見方をしているからだと思います。私はどこかでiphoneのopenglアプリが別のビューを持つのが好きではないことを読みましたが、アプリストアには広告付きのゲームがたくさんあります。どうやってやっているの?

私の実装は大丈夫なはずです。ドキュメントとサンプルが教えてくれたように、私はすべてをしました。私はopenglビューとadビューをアプリウィンドウのサブビューとして持っています。adviewはopenglビューの前にあり、その一部をカバーしています。これが問題でしょうか?オーバーラップしないように、openglビューを広告用の左側のスペースよりも小さくする方がよいでしょうか。何が悪いのか他に何か考えはありますか?

4

4 に答える 4

1

Lope、cocos2d を使用して iAd を処理するために作成したシングルトン「AdManager」クラスを使用して、このリンクで要点を作成しました。もちろん、Cocos2d は OpenGL の上にあります。このコードは、比較的複雑なゲームでも FPS に影響を与えないことがわかりました。

cocos2d 呼び出しを変更するなど、アプリケーションで動作するようにこれを少し変更する必要がありますが、これにより iAd の非同期ロードが可能になり、FPS の問題が改善されるはずです。

このクラスを使用するには、そのヘッダーを含めて呼び出します

[[AdManager sharedManager] attachAdToView:self.view];

iAds が必要な場所ならどこでも。広告は、広告が読み込まれるまで非表示のままになります。広告が読み込まれると、画面の上部にポップアップ表示されます。(このクラスは、iOS 4.0、4.1、および 4.2 で機能します)。

また、「Cocos2DController」と呼ぶ全体的な UIViewController 内で cocos2d を実行していることも付け加えておきます。広告をcocos2dビューに添付するとき、私は使用しています

[[AdManager sharedManager] attachAdToView:[[CCDirector sharedDirector] openGLView]];

頑張ってください!

于 2010-11-22T22:03:45.913 に答える
0

別の優先度の低いスレッドで広告をダウンロードしてみてください。したがって、広告の読み込みにCPU時間がかかりすぎないようにすることができます。CPUを少し同期することで、完全に表示できるようになるまで新しい広告を表示しようとしないようにすることができます。確かに、それはあなたがやろうとしていることからいくらかのCPU時間を浪費しますが、あなたの優先順位を正しく設定し、あなたが何もしないのに忙しいときだけ時間を浪費するはずです。

于 2010-11-22T21:55:11.997 に答える
0

ここでスレッドの壊滅を許してください。しかし、私はコーディング中に発生した問題を解決するためにスタック オーバーフローを何度も使用してきました。私の経験は将来誰かに役立つかもしれないと考えました。

AdWhirl (AdMob + iAd のみを統合) を実装するまで、私の単純な cocos2d ゲームはまともな FPS で実行されました (FPS 表示をほとんど変更しませんでした)。その後、最初の数回の反復では問題なく実行されますが、9 回目または 10 回目のシーンの更新 (単一画面のゲーム、各シーンの時間は平均で 5 秒未満) で、FPS は ~20FPS に急落し、シーンが更新されるたびに再び低下します。リフレッシュ。

結局のところ、私の n00biness では (これは私に特有のものかもしれません :) )、私はそれ自体からシーンを呼び出していました。つまり、アクションが終了すると、最後のアクションはメイン シーンを再度呼び出すことでした (ユーザーがもう一度やり直すためにシーンを再構築する怠惰な方法です)。これにより、AdWhirl 広告を処理するために挿入したビューとビュー コントローラーが最初から初期化され、メモリ リークが発生しただけでなく、10 個以上のビュー コントローラーがすべて AdWhirl から広告をリクエストしてサービスしようとしていました。手がかりを得て、その自己参照ループを取り除くと、すべてがうまくいきました.

于 2011-02-04T11:44:35.220 に答える
0

私たちはアップルの選択に当たり外れがあるかもしれませんが、確かなことをして、他の部分に広告を実装して、魅力的で邪魔にならないようにします. フレームレートにとっても、あなたにとっても良いでしょう。

于 2010-11-22T21:19:39.657 に答える