問題タブ [ccnode]
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.
cocos2d-iphone - CCScene からの CCNode のハンドル ボタン
cocos2d v3 でゲームを作成しています。に、HUD のすべてのコンポーネントを含むCCScene
を追加します。CCNode
CCNode には、 がCCButton
追加されています。でこれらのボタンのタッチを処理できるようにしたいCCScene
。それは可能ですか?もしそうなら、それはどのようにエレガントに行われますか?
今朝テストして動作しているコード:
CCNode
ヘッダー ファイル (ヘッダー クラス):
CCNode の実装ファイルにゴールド ボタンの基本 (配置、スプライト フレームなど) を設定します。
CCScene
実装ファイル (PlayScene クラス):
シーン内でボタンのターゲットを設定するのは少し奇妙に思えますが、うまくいきます。もしそうなら、この状況の「ベストプラクティス」について疑問に思っています。
ios - FOR文内でCCNode/CCSpriteを取得
多数の CCNodes があり、すべて同じクエリが実行されています。コードを合理化しようとしていますが、FOR ステートメント内で CCNodes を取得できるかどうか疑問に思っています。
たとえば、次のような NSArray 内に CCNodes 参照があるとします。
FORステートメント内でそれらをどのように参照しますか?
これは可能ですか?
ios - CCSprite の位置を取得する
少し混乱しています。ある CCSprite を別の CCSprite の位置に移動しようとしています。簡単だと思ったのですが、CCSprite が正しく配置されていません。私は2つのCCSpritesを持っています:
次に、EMPTY SPRITE (実際には空ではない) の位置を取得しようとしています。
私はそれをアニメーション化しています:
これにより、スプライトが画面の外に出ます。私は何を間違っていますか?
cocos2d-iphone - Cocos2D runaction が実行されない
私は2つのシーンを持つプロジェクトを持っています。
2 番目のシーンには、ボタンがあります。このボタンをクリックすると、実行時に SPriteBuilder リソースから CCNode が作成されます。「ストラテジー」と呼ばれるこの CCNode には、ストラテジー ノードの SpriteBuilder で作成された 5 つのカスタム CCNode があります。
この Strategy CCNode に単純な CCNode を追加してアクションを実行しようとすると、何も起こりませんでしたが、別の SCene ではすべて正常に動作し、2 番目のシーンでも動作しますが、Strategy CCNode コンテキストでは動作しません。
なぜこれ?
編集:
objective-c - タッチで CCnode を削除する方法は?
どのスプライトが画面上にあるかを制御するために、常に別の場所でリスポーンし、それらを配列に追加している ccnode を削除しようとしましたが、問題はそれらを削除できないことです。タッチを検出しますが、アイデアは削除されませんか? ノードを取り除くために使用しているコードは次のとおりです。
for-loop - for ループを使用して親 CCNode に CCNode を追加する
CCNodes を fieldArray から親 CCNode "stackNode" に追加したいと考えています。ブレークポイントを使用すると、CCNode をインデックス 0 に追加し、CCNode をインデックス 1 に追加できます。ただし、プログラムは i=2 でクラッシュします。私が受け取るエラーは次のとおりです。
キャッチされない例外 'NSInternalInconsistencyException' が原因でアプリを終了しています。理由: '子は既に別のノードに追加されています。再追加できません」
クラッシュする前に、「stackNode」には 2 つの子があります。CCNode を 1 つずつ追加していません。数百の異なる配列があり、多くの fieldArray.count が 20 前後です。不明な点がある場合は、詳しく説明してください。
cocos2d-iphone - タイル マップ cocos2d のスプライトを修正しましたか?
タイル マップ レイヤーと他のノードの処理方法がわかりません。CCNode
メニューボタン、スコア、ジョイスティックなど、マップ全体をスクロールするときに常に固定(スクロールしない)しなければならないレイヤー( )をもう1つ作りたいです。
現在upArrow
、画面にはまったく表示されません。self
の代わりにを追加するjoystickNode
と表示されます。
新しい CCNode がどのような親を持つべきか、私には理解できません。誰かが私にそれを説明できますか?また、新しい CCNode を と の子として追加しようとしましself
たtheMap
。
編集: おっと、それは実際にカメラを動かしています。この場合、どのように実装しますか?
c++ - setParent addChild は cocos2d-x 3.6 で子の位置を更新しないようです
古い親ノードから oldparent->removeChild(child) を使用してスプライトの親を変更し、子スプライトで child->setParent(newparent) を使用して、新しい親をパラメーターとして渡します。newparent->addChild(child) でも試しました。
問題は、その操作の後、子の位置が変わらないことです。子スプライトの位置が、親の変換に対する新しい位置に変更されることを期待しています。これは予期された動作ですか、それとも更新メソッドを呼び出して子変換を強制的に更新する必要がありますか?