問題タブ [nstimer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 回転カメラ オブジェクトを使用してシーンをレンダリングすると、他のオブジェクトの背後に表示されると予想されるオブジェクトがレンダリングされないのはなぜですか? OPENGL 目的 c
2 つの球があるシーンをレンダリングしています。そのうちの 1 つを中心にカメラを回転させています。何が起こるかは直感に反します。カメラが球体の周りを回ると、後ろにあると予想されるときに、もう一方のカメラが球体の前に出ます。そのため、球体がお互いの周りを回転しておらず、回転する球体が常に前にあるように見えます。助けてください。
シーンをレンダリングするコードは次のとおりです。
このブロックは、使用時に呼び出されるクラスの一部です。
と
カメラの回転を行う数学と gluLookAt() が含まれています
iphone - 再生位置を滑らかにする NSTimer
オーディオ プレーヤーがあり、現在の再生時間を表示したいと考えています。カスタムプレイクラスを使用しています。
アプリは mp3 をファイルにダウンロードし、5% がダウンロードされるとファイルから再生します。ファイルが再生されると進行状況ビューが更新され、進行状況ビューへの呼び出しごとにラベルが更新されます。ただし、これはぎくしゃくしています... 1桁または2桁後退することさえあります。
NSTimer を使用して物事をスムーズにすることを検討していました。私は毎秒メソッドに解雇され、再生率の数値をメソッドに渡し、ラベルを更新します。
まず、これは合理的に思えますか?
次に、パーセンテージ (フロート) をタイマーのターゲットに渡すにはどうすればよいですか。現在、私はプレイされた割合を辞書に入れていますが、これは最適とは言えません。
これは、進行状況バーの更新と呼ばれるものです。
これは最初に 5 秒後に呼び出されますが、メソッドが呼び出されるたびに更新されます。
いつものように、コメントとポインタは感謝しています。
iphone - iPhone OpenGL と NSTimer の問題
60hz で動作する NSTimer があります。OpenGL シーンをロードしてレンダリングすると、私のゲームは 60 fps で、1 日中しっかりと動作します。その後、アプリを再コンパイルまたはリロードすると、40 fps になります。同じリソースが読み込まれました。私は何年もこの問題に直面してきましたが、その理由を知りたいだけです。ばかげています。この愚かなタイマーを放棄する必要があるかどうかを知りたいです。私の 3GS では、ロード間で条件に違いはありません。たまに40fps出ます。明らかに、ロード間でクロックレートに違いはないため、一定のシーンではパフォーマンスの数値は一定である必要があります。これが私のフレームレートのログです:
良い負荷: :-)
フレームレート: 61 フレームレート: 61 フレームレート: 61 フレームレート: 60 フレームレート: 60 フレームレート: 61 フレームレート: 60 フレームレート: 60 フレームレート: 61 フレームレート: 60 フレームレート: 61
さて、先に進み、何もせず、再コンパイルして実行します。
フレームレート: 43 フレームレート: 50 フレームレート: 45 フレームレート: 48 フレームレート: 40 フレームレート: 45 フレームレート: 42 フレームレート: 41 フレームレート: 42 フレームレート: 44 フレームレート: 41 フレームレート: 46
^- 視覚的に大きな違い。フライング一体がこれを引き起こす可能性は何ですか?
シーンの同じエリア、同じカメラ設定。変数に違いはありません。
[編集] ハードウェア デコーダーで実行されていない音楽が原因である可能性があり、セットアップしてもデコーダーが引き継がれない場合があると言う人もいます。ただし、音楽を無効にしても、これは発生すると言えます[/編集]
iphone - iphone NStimerは2秒で開始します
コードのブロックを「開始」してから 2 秒後に実行しようとしています。
NSTimer はこれを実行できると思いますが、理解できません。
iphone - iPhoneNSTimerOpenGLの問題
シミュレータではなく、デバイスでのみ発生するように見える問題があります。
私のアプリのアニメーションは、次の方法を使用して開始および停止されます。
シミュレータでは、これは正常に機能し、drawViewは60fpsで呼び出され始めます。デバイス(iPod Touchでテスト中)では、scheduleTimerWithTimeIntervalメソッドが機能していないようです。さらに、[animationTimerinvalidate]はEXC_BAD_ACCESSを引き起こします。
明らかですが小さな欠陥を見つけました。stopAnimationメソッドにif(animationTimer!= nil)を追加すると、クラッシュは防止されますが、アニメーションタイマーが適切に初期化されないという問題は解決されません。
編集:上記はクラッシュを防ぐことはできません。AnimationTimer!= nilであるにもかかわらず、invalidateを呼び出すと、EXC_BAD_ACCESSが発生します。
また、この問題はデバイスで常に発生するわけではありません。たぶん40%の確率で。
iphone - NSTimer によって呼び出されているメソッドを時期尚早に中断するにはどうすればよいですか
基本的にはメトロノームアプリを書いているのですが、BPMによっては再度playメソッドを呼び出したときに再生が終わらない音ファイルを使用しています。たとえば、サウンド ファイルの長さが 0.5 秒で、BPM が 200 の場合、"play" メソッドは 0.3 秒ごとに呼び出す必要があります。
私は NSTimer にあまり詳しくありませんが、以前の呼び出しが完了する前に起動するはずだった場合、起動せず、次の時間を待つだけのようです。私はそれについて完全に間違っている可能性があります。
私がする必要があるのは、以前の呼び出しを途中で終了させ、時間が発生するはずのときに「再生」メソッドを再度呼び出すことです。
どんな助けでも大歓迎です!
iphone - iPhone アプリで NSTimers を使用した「マルチスレッド」
iPhone アプリに timer1 と timer2 という 2 つの NSTimer がある とします。 timer1はfunction1を毎秒 30 回呼び出し、timer2はfunction2を毎秒 30 回呼び出します。これら 2 つの関数が同じ整数変数の読み取りと更新を行っているとします。ここに「マルチスレッド」の問題はありますか? そうでない場合、iPhone OS は 2 つの関数の実行を (一般的に) どのように処理しますか?
iphone - NSTimerとNSDateFormatterを使用したタイムコードの表示
私は私の最初のiphoneアプリを完成させるのに非常に近いです、そしてそれは喜びでした。UILabelに現在の時刻(NSDate)を表示するNSTimerを介して、現在の時刻を使用して実行中のタイムコードを追加しようとしています。NSDateは正常に機能しており、時、分、秒、ミリ秒を表示しています。ただし、ミリ秒ではなく、1秒あたり24フレームを表示する必要があります。
問題は、1秒あたりのフレーム数を時間、分、秒と100%同期する必要があるため、別のタイマーにフレームを追加できないことです。それを試して動作させましたが、フレームタイマーが日付タイマーと同期して実行されていませんでした。
誰かがこれで私を助けることができますか?NSDateFormatterをカスタマイズして、1秒あたり24フレームでフォーマットされた日付タイマーを使用できるようにする方法はありますか?現在、フォーマットは時間、分、秒、ミリ秒に制限されています。
これが私が今使っているコードです
iphone - NSTimerを作成して、プログラムを1秒間一時停止する方法はありますか?
ボタンの写真を変更しようとしています。しばらく待ってから、元に戻してください。それを機能させるのにあまり運がないので、タイマーが実際に何かを実行することなく、プログラムがコードを実行せずに、プログラムを1秒間一時停止する方法はありますか?
iphone - NSTimerセレクターでEXC_BAD_ACCESSを取得するのはなぜですか?
私はかなり奇妙な問題を抱えています。短くするために、いくつかの擬似コードを記述します。
したがって、不明な理由で、次の場合にEXC_BAD_ACCESSを取得します。
しかし、辞書の項目から取得したアドレスをトレースしたところ、問題ありません。ディクショナリ内のアイテムの参照カウントはまだ1です。ディクショナリ内のアイテムの{release、dealloc}は呼び出されません。すべてが順調に見えます。また、最悪の場合、一部のアイテムで機能します。
それで、私は糸脱毛の問題があるかどうか疑問に思っていますか?または何か他のあいまいな?
コールスタックは非常に単純です。
だから、どこを見るべきか提案をいただければ幸いです。
---編集#1---
@Laurent:私の例に一致するように実際の値を書き直すのはタイプミスです。(修繕)
@ジェレミー:私は助けるためにいくつかのコードを投稿しようとします。コードが簡略化されました。
タイマー初期化+更新機能:
もう少しはっきりしているといいのですが。
そうです、「関数」のすべてにコメントしましたが、クラッシュしないようです。もう少し実行させますが、その機能(メモリ関連)で特別なことは何もしていません。いくつかの列挙値を更新するだけです。
---編集#2---
@Laurent:あなたはcallstakについて正しいです、私は大きな間違いを犯しました。関数ではなく、タイマー方式である必要があります。修正するだけです。間違いでごめんなさい。ただし、参考までに、メソッドのシグネチャは次のとおりです。