問題タブ [cocosbuilder]

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.

0 投票する
2 に答える
251 参照

cocos2d-iphone - 実行時の cocos2d Mac のシャットダウンと起動

NSWindowテスト目的で「cocos Player」を起動するコンテンツ エディタを構築しています。ユーザーは、一部のコンテンツをテストしてから、ウィンドウを閉じることができます。

そのため、cocos をシャットダウンして、同じアプリ内で再起動できるようにする必要があります。

CC_MAC_USE_DISPLAY_LINK_THREADスレッド モデルを使用すると、すべてが機能します。これを機能させるには、修正を加える必要がありましたCCDirectorMac。を使用するときにandによって nil に設定されていないため、 toCCDirectorMac | stopAnimationを設定する必要がありました。_runningThreadnil#if#elifCC_MAC_USE_DISPLAY_LINK_THREAD

とにかく、ディレクターを「終了」して、後で問題なく再起動できるようになりました。

私の質問は次のとおりです。cocos2D をときどき使用する AppKit エディターを構築している場合CC_MAC_USE_MAIN_THREAD、ドキュメントで提案されているスレッド モデルは実際にはどのようなものでしょうか?

私が使用するCC_MAC_USE_MAIN_THREADと、次の行にハングインします。stopAnimation

CVDisplayLinkStop(displayLink);

メインスレッドは問題なく、ツールのスレッド化の問題を回避できると思います。パフォーマンスは問題ではありません。cocos2d をシャットダウンして再起動するサンプル コードを見つけることができませんNSWindow

シャットダウン/再起動する私の手順は次のとおりです。

  1. 電話[[CCDirector sharedDirector] end]
  2. これはstopAnimation
  3. 次に、最初に行ったのと同じ方法で cocos2d を再初期化します

Mac デスクトップ アプリのスレッド モデルに関するアドバイスと、CVDisplayLinkStopハングする理由を教えてください。

前もって感謝します。

0 投票する
1 に答える
731 参照

cocos2d-x - CocosBuilder のカスタム CCTableViewCell で CCBMemberVariableAssigner コールバックが機能しない

私の目標は、CocosBuilder を介して CCTableViewCell を設計し、CCBReader を介してロードすることです。

これまでの私の手順:

cocosbuilder に新しい非フルスクリーン CCNode TestCell.ccbを追加し、ルートのカスタム クラスを に設定し、TestCell ccSprite をルートの子として追加し、doc-root-varを に設定しましたbg

私の問題:ローダーTestCellLoader とセルを実装した後TestCell、コールバック関数 TestCell::onAssignCCBMemberVariableはまったく呼び出されません。

私が試したこと:これまでのところ、 a のCCLayerLoader代わりに aを使用することはCCNodeLoaderうまくいきました。これは私が a を使用するのは初めてCCNodeLoaderなので、重要なポイントを逃した可能性があります。

ありがとう、チャオ!ベン

コードは次のとおりです。

TestCellLoader.h

TestCellLoader.cpp

TestCell.h

TestCell.m

0 投票する
0 に答える
617 参照

iphone - cocos2d/cocosbuilder のバグかどうか: タイムライン 0(sequenceId) が自動的に実行されるのはなぜですか?

ここに私のツールがあります:CocosBuilder-2.1/CCBReader-2.1/cocos2d-iphone-2.0

私が作成したTestNode.ccb(ルートオブジェクトはCCNodeです)、その中に2つのタイムライン@"t0name"(長さ2秒)と(長さ2秒)を作成し@"t1name"、ルートノードはカスタムクラスに設定されていますTestNode

私が作成しましたTestNode.h

そしてここにあるTestNode.m

また、メイン レイヤー ( TestScene.h/.m) もあります。このシーンではCCNode、何か他のものを追加します...

通常の場合:

メイン レイヤーのonEnter() に、playAnimation のインスタンスを追加しTestNodeて呼び出します。上記のコードに従って、指定されたタイムライン@"t0name"が永久に再生され、実際に起こったことは私の仮定と同じです。

奇妙なケース: メイン レイヤーのonEnter()に のインスタンスを追加してTestNodeを呼び出しplayAnimation、関数をスケジュールします[self schedule:@selector(changeTestNodeCondition) interval:1.0];this function( changeTestNodeCondition)TestNodeの条件を YES に設定しただけです。上記のコードによれば、@"t0name"wil という名前のタイムラインが 1 回再生されます (t0'長さは 2 秒です) 。 )、その後、指定されたタイムライン@"t1name"が 1 回再生され、コンソールに「t1played」と出力され、すべてが停止しますが、何が起こったかは次のとおりです。

  1. @"t0name"一度だけ再生されたという名前のタイムライン
  2. @"t1name"一度だけ再生されたという名前のタイムライン
  3. コンソール出力「t1played」
  4. @"t0name"再び再生されたという名前のタイムライン
  5. コンソール印刷 "t1played" 再び

なぜstep4が起こったのですか?原因completedAnimationSequenceNamed:(NSString *) nameが再度呼び出され、コンソールに "t1played" が再度表示されます (手順 5)

、両方TestNode.ccbのタイムラインにチェーンされたタイムラインがなく、両方のタイムラインにチェックが入っていない自動再生、@"t0name"ありsequenceId 0@"t0name"ありsequenceId 1、自動再生ありtimeline 0??? どうして???

別の興味深い実験を行いました: タイムライン@"t0name"シーケンス ID を 1 に変更し、タイムライン@"t1name" シーケンス ID を 2 に変更 (任意のテキスト エディターを使用して ccb ファイルを直接編集) すると、次のことが起こります。

  1. @"t0name" という名前のタイムラインが 1 回再生されました
  2. @"t1name" という名前のタイムラインが 1 回再生されました
  3. コンソール出力「t1played」
  4. console print "t1played" 何度も何度も...デッドループ

CCAnimationManagerこの場合は再生しようと思いますtimeline 0timeline 0、そこにないのでアニメーションは見られませんが、「再生」操作が呼び出されてからcompletedAnimationSequenceNamed:(NSString *) name呼び出されます!

0 投票する
1 に答える
474 参照

iphone - Cocos2D / CocosBuilder テクスチャ アトラスのメモリ使用量

私は Cocos2D と CocosBuilder を初めて使用し、メモリの使用に関していくつか質問があります。

1) CocosBuilder (または Cocos2D) で、同じシーン内のすべての CCSprite オブジェクトに同じテクスチャ アトラス (スプライトシート) を使用すると、スプライトごとに個別のテクスチャよりもメモリ使用量を節約できますか? 正確には、1 つの 4k*4k テクスチャを使用する場合、ゲームは 1 つのテクスチャ アトラス (例: 4k * 4k * 32 ビット) だけのメモリを必要としますか?

2) メモリを節約するために、スプライトごとに異なるテクスチャ モードを使用できますか? たとえば、背景画像にアルファなしモードを使用します。つまり、Cocos2D は同じシーンで異なるテクスチャ モードを処理できますか?

3) シーンに約 100 個のオブジェクト、合計 3 つのシーンがあるゲームを実装する必要があります。現在、同じシーンのすべてのオブジェクトが同じスプライトシートを使用しています。それでも、シーンを数回切り替えると、ゲームがクラッシュします。me-warning メッセージを受け取るたびに。この問題を解決する最善の方法は何ですか? これらのキャッシュをすべてダンプしようとしましたが、それでもクラッシュしました。

どうもありがとう!

0 投票する
1 に答える
175 参照

cocos2d-iphone - CocosBuilder が既存のプロジェクトにファイルを追加する

既存の CocosBuilder プロジェクトがあり、それに画像 (png) を追加したいと考えています。プロジェクトディレクトリに画像を追加しようとしましたが、プロジェクトには表示されませんが、新しいディレクトリには表示されます。また、プロジェクトに直接ドラッグ アンド ドロップしてみました。

これは可能ですか?それを行う方法を見つけることができないようです。ありがとう!

0 投票する
1 に答える
567 参照

cocos2d-iphone - CCNode の特定のインスタンスをタッチに反応させる

私のプロジェクトでは、CocosBuilder で Cocos2D を使用しています。いくつかのキャラクターを子 CCSprites などを持つ CCNode のサブクラスに割り当てました。

これらの CCNodes がタッチに反応するようにします。たとえば、それらのいずれかに触れると、状況に応じたアニメーションが再生されます。ノードをタッチに反応させる方法(または、スプライトに触れたかどうかを検出するレイヤーをタッチに反応させる方法)だけを知りたいのですが、アニメーション部分は問題ありません。

何か案は?それは素敵だ。

サム