問題タブ [ccaction]
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 - 異なるノードでの連続した cocos2d アクション
異なるノードで順次 cocos2d アクションを実行する必要があります。私は知ってCCSequence
いますが、同じノードで一連のアクションを実行できるため、それは私にとっては良くありません。このシナリオで順次アクションを実行するにはどうすればよいですか。
- 親を移動します。
- 2 つの子ノードを同時に移動します。
- 親をもう一度移動します。
cocos2d-iphone - 移動アクション中にCCSpriteの位置を変更する方法
一連のアクションを循環 するサブクラスがあるCCSprite's
ように、移動アクション中に位置を変更することは可能ですか?その一部は移動です。画面外に出ていないか確認してから、画面の反対側に直接移動してみます。したがって、左への移動の途中で画面外に移動すると、画面の右側から移動が終了します。CCMoveBy?
CCSprite
しかし、私が使用した場合setPosition:
、それは機能していないようで、移動アクションを終了するだけです。
objective-c - スケールが適用されていない場合、スプライトが歪む原因
写真は千の言葉の価値があります。これが私のものです:
上の図は2つのスプライトを示しています。右中央のスプライトはプレーヤーで、左中央のスプライトはAIプレーヤーです。それらの初期化は両方とも同じsuperClassを使用します。同様の品質のスプライトが表示されるはずです。
ただし、ご覧のとおり、右側のスプライトはどういうわけか歪んでいます。また、一部のアニメーションフレームで、同じスプライトシートの他のスプライトの斑点が上下に表示されていることにも気づきました。プレイヤーのスプライトで変換が行われることはありません。aiスプライトでも実行されるアクション以外のアクションは実行されません。
他の誰かがこれに遭遇しましたか?この問題の言い方すらわかりません;)他に質問はありますか?問い合わせてください!
詳細:Lionで実行されているCocos2d 1.0.0 ..Xcode4.1を使用しています。
コードサンプル:このコードは、CCFiniteTimeActionsを含むNSObjectとCCSpriteの初期化後に実行されます
変数「sprites」はCCSpriteBatchNodeへのポインターです。バッチノードは1つしかないため、同じバッチノードを指していると確信しています。
ご覧のとおり、このオブジェクトはバッチノードを介して独自のアニメーションをレイヤーに追加します。
動きが発生する方法を投稿します:
尋ねた時から、私は次の行を追加しようとしました:
プレーヤーのスプライトからぼかしを取り除きましたが、画像を少し広く伸ばしました。これらのスプライトフレームはそれぞれ32x32pixであり、フレーム全体を埋めるわけではないことは、おそらく言及する価値があります。
さらに、上記のコード行はaiのスプライトの外観に影響を与えませんでした。
*-------* 編集::
それを私が直した。
どうしたの:
スプライトが画面上で移動しようとしている場所を保持する2つのフロートがあります。私の世界の他のすべてのスプライトは、プレイヤーの参照から描画されます。
私の参照中に、floatはintにフォーマットされたため、ゲーム内の他のすべてのスプライトは、位置のintバージョンを受け取りました。
これは私を信じさせます、私のコードのどこかにこれらの2つのフロートを細分化する何かがあるに違いありません。
「半分のピクセル値」のヒントを@jtbandesに感謝します。位置がどのようにして整数以外になったのかはまだわかりませんが:(
とにかく、floatをintに変更すると、すべてが修正されました。
ありがとう!
iphone - CCAction の進行状況を取得する Cocos2D
Box2D 物理演算を使用した Cocos2D ゲームがあります。私の GameScene.mm では、特定のスケールにズームする方法に取り組んでいます。
私が抱えている問題は、(シーンの update() メソッドで使用される) currentZoomLevel がすぐにズームに設定され、アニメーションに従って徐々に調整されないことです。したがって、アニメーションの進行中は currentZoomLevel 変数が完全に間違っています。
currentZoomLevel 変数をアニメーションの進行状況と一致させる方法を見つけようとしています。CCAction API Reference によると、CCAction の update メソッドは、アニメーションの進行状況に基づいて 0 と 1 の間の ccTime を取ります (0 は開始したばかり、1 は終了したばかりです)。
アクションの外部からこの ccTime にアクセスするにはどうすればよいですか? シーンの更新メソッドに次のようなものを入れたい:
ここで明らかな何かが欠けていますか、それとも CCScaleTo をサブクラス化する必要がありますか?
cocos2d-iphone - CCMoveBy 動作
Tetris クローンにいくつかの Cocos2D アニメーションを実装するのに行き詰まっています (これは完全に機能し、ロジックのバグはありません。行を削除するときにスムーズなアニメーションを実行したいだけです)。
現在のコード (アニメーションなし) は、次のようにブロックの位置をドロップするだけです。
これは、従来のテトリス プログラミングの for ループで発生します。しかし、アニメーション化しようとすると、次のようになります。
一部のブロックは一度だけ下に移動しますが、同じブロックに対してアクションが複数回呼び出される可能性があります (たとえば、複数の行を分割する場合)...
なぜそれが起こるのですか?少し紛らわしいことはわかっていますが、要点は、同じことを行って異なる結果を得ているということです...明確にするためにさらにコードを投稿できます!
ありがとう!
cocos2d-iphone - CCSprite は複数のアニメーションを切り替えることができますか?
2 つの異なるアニメーション間で CCSprite を切り替えることは可能ですか? (どちらも CCRepeatForever です)
stopAction: と runAction: を使用しようとしましたが、アプリがクラッシュします。pauseSchedulerAndActions: と resumeSchedulerAndActions: は 1 つのアニメーションでのみ使用できます。
ios - とにかく、アクションが開始された後に CCMoveTo の宛先を変更するには?
ノードを移動し、移動後にブロックを呼び出したい。ただし、ノードの移動中にノードを別の位置に移動する必要がある場合があります (移動先の変更)。
コールバックが呼び出されず、一貫性のない状態につながるため、以前のアクションを単純に停止して新しいアクションを開始することはできません。
アクションを取得できますが、CCSequence *action = (id)[node getActionByTag:kMovingActionTag];
できることはそれを停止して CCCallBlock アクションを失うことだけです。
これは改善されたソリューションです:
ios - CCAction: 停止して実行中
私のプロジェクトでは、走るキャラクターを作成しました。現在、キャラクターにさまざまなアニメーションを実装しようとしています。
2 つの異なるアクションを作成することにしました
1) CCAction *walkAction;
2) CCAction *jumpAction;
キャラクターがジャンプするはずのときにメソッドを呼び出してジャンプさせます。キャラクターが着地[self stopAllActions];
し[self runAction:jumpAction];
たら、stopAllActions を呼び出してから walkAction を実行します。
ただし、何らかの理由で、アプリケーションがフリーズします。アプリケーションをクラッシュさせずにアクションを停止および実行する方法について助けが必要です!
ありがとうございました!
cocos2d-iphone - CCEaseOut を CCSequence と一緒に使用しますか?
アクションにイーズイン/イーズアウトの効果を持たせたいのですが、既に CCSequence を持っています。CCEaseOut をコードの前に置くと、動きがおかしくなります。CCSequence で CCEaseOut/CCEaseIn を作成することは可能ですか? これが私のコードです:
前もって感謝します