問題タブ [ccsprite]
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.
iphone - cocos2dスプライトの衝突
一度に表示されるCCSpriteの配列があります。すべてのスプライトには移動パスがあり、移動パスは画面上のランダムなポイントです。
すべてのスプライトが画面上のランダムなポイントに一度に移動しています。
私がやりたいのは、スプライト間の衝突を検出して、それらの移動経路を変更することです。
出来ますか?
cocos2d-iphone - CCSprite は複数のアニメーションを切り替えることができますか?
2 つの異なるアニメーション間で CCSprite を切り替えることは可能ですか? (どちらも CCRepeatForever です)
stopAction: と runAction: を使用しようとしましたが、アプリがクラッシュします。pauseSchedulerAndActions: と resumeSchedulerAndActions: は 1 つのアニメーションでのみ使用できます。
ios - CCSprite の境界線の周囲に奇妙な白いピクセルが表示される
iPhone ゲームの cocos2d で奇妙な問題に直面しています。以下のようにPNGファイルを作成しました
cocos2d では、CCSpriteSheet を使用して、各ボールをすべて PNG ファイルで取得します。それまではうまくいきます。
ただし、奇妙なことに、iPhone の画面では、下のスクリーンショットに示すように、ボールの境界線の周りに奇妙な白いピクセルが表示されます。
私はウェブ上で非常に多くの研究を行ってきました。しかし、 TexturePacker の使用や glBlendFunc のリセットなどのすべての提案は機能しませんでした:(
何か考えはありますか?
更新: 通常の CCSprite を 1 つのボールだけの別の PNG ファイルで使用しようとしましたが、問題は解決しません! cocos2d のソースコードを設定して動作させる必要があると思います。
ios5 - cocos2d iphoneの問題でのPNG透過性
iPhoneでcocos2dの開発を始めたばかりです。私が抱えている問題は、CCSprite をシーンに追加すると、.png ファイルの端が透明になるのではなく、白く表示されることです。
たとえば、ヘッダー ファイルで CCSprite を定義します。
次に、シーンを初期化すると-
このコードに何か問題がありますか?
助けてくれてありがとう。
PS Photoshop で .png ファイルを再確認したところ、本来あるべき場所で透明として正しく表示されました。
cocos2d-iphone - 2 つの異なるピクセル形式で 1 つのテクスチャを使用する
いつこれを行うかはわかりませんが (おそらく低品質のプレビューから高品質の画像に移行するとき)、とにかく Cocos2D テクスチャ キャッシュでは、1 つの画像を 2 つの異なるテクスチャ フォーマットで使用することはできません。
これを回避する方法はありますか?
cocos2d-iphone - CCSpriteオブジェクトのようなBox2dボディの移動
cocos2dでは、CCSpritesを簡単に操作して、さまざまな方法で移動できます。最も重要なこと-彼らはイージングイン/アウトを持つことができます。ほとんどのゲームでは、これはスムーズな動きなどに適しています。
box2dボディを移動すると、それに接続されているスプライトはbox2d step()の後に更新されます。スプライトを移動してからボディを更新することは、物理フレームワークの目的を完全に無効にするため、ここではオプションではありません。
したがって、私が正常に実装したもう1つのオプションは、スプライトをそれ自体が力学エンティティとして扱うことにより、スプライトの変位、速度、および加速度を計算することです。スプライトでupdate()を呼び出して、キャラクターが移動先などを決定できるようにするたびに、スーパークラスは前の位置と速度も保存します。これらは、PTM_RATIOで除算することにより、box2d準拠の値として保存されます。
FMSpriteと呼ばれるCCSpriteのサブクラス:
次に、「FMSprite」を「FMObject」にサブクラス化しました。これには、b2Bodyなどが格納されています。
体を動かすには、まずスプライトを動かしてその加速度を追跡する必要があります。これにより、スプライトの動きを追跡するために必要な力(質量を使用)を見つけることができます。オブジェクトのスプライト(ボディに同期している)を移動できないため、「ビーコン」と呼ばれる別のスプライトを作成し、それを子としてオブジェクトに追加して、移動します。次に行う必要があるのは、前述の力を使用して、box2dボディの位置をこのビーコンスプライトと同期させる機能を用意することです。
その結果、b2bodyの動きが素晴らしく、スムーズに動き、自分の力で遊ぶことなく、CCSpriteの動きをコピーして、その動きを複製することができます。すべての力であるため、他のb2Bodyオブジェクトと衝突するときにジッターや歪みが発生することはありません。他にこれを行う方法がある場合は、回答を投稿してください。ありがとう!
android - Cocos2D-AndroidのCocos2D-iOS CCNode.visit()に相当するAndroid?
iOS Coco2D ゲームで次のコードを取得しました。
Coco2D Android では、次のように記述します。
visit メソッドのパラメータには何を書けばいいですか?
objective-c - CCSpriteが存在するかどうかを確認し、CCSceneに追加および削除し、条件が満たされるまでループします
現在、CCSpriteをシーン(アニメーション化されたゴースト)に追加し、ランダムに生成されたポイントから別のランダムに生成されたポイントに移動し、フェードアウトしてからシーンから削除するゲームに取り組んでいます。プレイヤーがゴーストをタップすると、スコアに1が追加されます。
すべてがうまく機能していますが、条件が満たされるまで(具体的には、スコアが50に達したとき)、このアクションを繰り返してほしいと思います。私はこれを行うための最良の方法を理解することはできません。ループを実行しようとするたびに、ループが無限に繰り返され、ゲームがクラッシュします。
そのようなループを達成するための最良の方法は何ですか?スプライトの配列を作成するという話を聞いたことがありますが、シーン上で一度にゴーストが繰り返されるのは1回だけです。これを達成する他の方法はありますか?
理想的には、私が達成したいのは、アクションを実行し、アクションが終了するのを待ってから、スコアが50になるまでアクションを再度実行することです。
これが私のコードです:
スプライトを生成するには:
'ghostSpawner'関数は、シーンの'init'で呼び出されます
これで十分だと思います。これは私の最初の本当のiPhoneプロジェクトの1つなので、どんなフィードバックも素晴らしいでしょう。前もって感謝します!
animation - デバイス上でのみ移動すると、CCAnimation がスキップされる Cocos2d スプライト
シミュレータ上で完璧に動作するデモ アプリケーションを作成しましたが、実際のデバイスに配置すると、サイコロが飛んでしまいます。例としてビデオを示します。アプリを再起動した後、アニメーションは問題ありません。エラーは、ロール ボタンを繰り返し押して約 1 分間発生しました。
コードはすべて次の場所にあります。
https://github.com/rnystrom/MartionDemo サイコロ オブジェクトでアニメーションを作成する方法:
ローリング機能:
cocos2d-iphone - Cocos2D - スプライトを転置した効率的なスプライト シート
テクスチャ メモリをより有効に活用するために Cocos2D でスプライト シートの使用を開始したばかりで、私のアセットを生成するアーティストは、Unity3D の以前のゲームで使用したスクリプトを持っています。このツールは、多数の画像を取得し、透明なスペースと空白を削除して、アトラスに詰め込みます。テキスト ファイル内の各スプライトの「位置」と「UV」を返します。ツールが無効にできないように見えることの 1 つは、スプライトの一部をより適切に配置するために転置することです。
Cocos2D の plist ファイルからアニメーションを読み込みたいです。フレームをテクスチャ キャッシュにロードする際に、フレームを通常の状態に戻す方法はありますか? そうでない場合、個々のフレームを CCAnimation に読み込んだ後、どのように転置しますか?
これでうまくいかない場合は、転置されたすべてのスプライトをカット アンド ペーストしてアトラスに追加し、少し余分なテクスチャ メモリを使用して対処します。