問題タブ [cocos2d-x]
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.
compilation - Marmalade で Cocos2d-X をコンパイルするには?
私が Cocos2d-x で書いたコードを Marmalade でコンパイルするためのチュートリアル、または 3 つの簡単な手順を知っている人はいますか?
既にコンパイルして Cocos2d-X で使用したコードを取り、マーマレード プロジェクトに挿入してコンパイルしたいと考えています。いろいろなところで簡単と書いてありますが、私はこれが苦手です。
誰かが従うべき簡単なステップを持っていれば、私は本当に感謝します:「マラマレード+ダミースタイルのcocos2d-x :)」
ありがとう、エイドリアン。
c++ - コードがAndroidNDKでコンパイルされない
Cocos2d-xは、Cocos2d-for-iPhoneのC++ポートです。クロスプラットフォームの利点があります。私はCocos2d-xを使用してAndroidとiPhone用のゲームを開発しています。
現在、AndroidNDKとXcodeの両方を使用してCocos2d-Xコードのセットをコンパイルしています。
Xcodeでは、ゲームはiPhoneでコンパイルされ、正常に実行されます。
Android NDKでは、コンパイルが失敗します。(私は公式のAndroid r7c NDKを使用しています)。
助けてください。
編集済み:完全な実装ファイルに興味のある方のために。ここにあります。
そして完全なヘッダーファイル
android-logcat - Eclipse の場合、CCLog は機能しません。CCMessageBoxはうまく機能します
GitHub からチェックアウトした最新のコードを使用しています。(0.13.0 ベータ版)
私はEclipseでAndroid用に開発しています。Android.mk に *COCOS2D_DEBUG* を追加しました。COCOS2D_DEBUG が実際に値 1 で定義されていることを確認しました。
問題: CCLog が LogCat に何も出力しません。その間、CCMessageBox はうまく機能します。
(その後、同じコード セットを iOS でテストしました。CCLog と CCMessageBox の両方がうまく機能します。)
ここで何が欠けていますか?
android - 新しいアクティビティへの変更中に Android ネイティブでクラッシュする
アプリケーションが OpenFeint ダッシュボード メソッドを開くことができません。ネイティブ C++ ライブラリの実装では、cocos2d-x をグラフィック ライブラリとして使用しますが、OpenFeint 関数を使用できるようにするためのハンドラとラッパーがあります。OpenFeint の初期化と非アクティビティ メソッドは正しく機能します。
openLaderBoards や openAchievements などの UI ダッシュボード関数が Jni 呼び出しから、または Java onCreate 初期化で呼び出されると、アプリケーションがクラッシュします。
編集:私はテストしましたが、私が試したアクティビティの変更、さらには自分の新しいクラスでも発生します。
EDIT2:同様の質問で+100の報奨金があります。答えを思いついた人なら誰でも手に入れることができます。
コード
アクティビティ:
ラッパー:
ハンドラー openDashboard 関数:
マニフェスト:
スタックトレース (SO ではインデントされません):
cross-platform - CCScrollView for cocos2d-xは機能しますか?
編集:十分な書き直しとコメントがあれば、私はそれを実行しています、他の人のために以下に最終を投稿します。
Edit2:私は自分のバージョンをさらに更新してきましたが、元のコーダーはC ++であまり良くないことを学びました。使用する前に、そこにあるすべてを調べて、以下のコメントをチェックしてください。
cocos2d-xで現在利用可能なCCScrollViewには、1つの大きな欠陥があります。
具体的には、cpp関数のヘッダーが.hファイルのヘッダーと一致しません。cppファイルは、X-Platformではなく、UIEventおよびNSMutableArrayを参照します。
スクロールビュー自体に配列を追加する必要があります。これにより、forループを使用してメニュー項目を作成する機能が制限されます(メニュー項目を作成する場合)。これは、変更可能なものを使用できず、相互にサブクラス化されないためです。 iOSなので、ミュータブルを使用することはできません。CCArray* array = mutable-> getMutableArray()などと言います。
また、定義は古くなっており(cocos2d-xサイトの変換ルールを介してCCX_SAFE_DELETEを追加することで修正可能ですが)、プロジェクト内にさえないNSおよびUIオブジェクトを作成しようとするさまざまなランダムテンプレートには手がかりがありませんどうして。
基本的な考え方は、可変配列の使用を追加することを除けば、このクラスはあまりにも混乱していて、C++への変換に煩わされることはありません。ヘッダーが一致しないため、作成者が自分が作成したバージョンをコンパイルしたとは思いません。私はcppファイルと.hファイルの両方(それぞれ2つあります)をダウンロードしたと思いました。両方とも、他の問題とともにCCではなくUIEventを持っています。
注:上記のさまざまな問題を修正し、さまざまな場所でSelectorProtocolをCCObjectに変更しましたが、圧倒されています。
おそらく、代わりに視差ノードを使用する必要がありますか?
これはばかげているだけです。おそらくCocos2dには最適ですが、c2d-Xでは機能しません。とにかく、私は再コーディングして検索します、どんな提案にも感謝します!
編集:これが私が現在使用しているクラスです。編集は完了していませんが、これらは誰でも始めて、iPhoneだけでなくコンパイルすることもできます
ヘッダ:
CPP
c++ - 間違った関数を呼び出す仮想関数、C++ と Cocos2dX で完全に異なる名前
同様の名前のサブ/スーパークラス関数を呼び出す仮想関数について、大量のスタック オーバーフローの質問と回答が表示されますが、次のようになります。
シーンが loadWithData で読み込まれる条件は、関数を void name(types) にすることです。私は cocos2d-x のパターンに従って virtual を使用しました。その場合は代わりに setScaleX を呼び出し、デバッガーを使用してステップインしました。
2 つの質問があります。
1) scene() 関数がシーン (TitleDescription タイプの子ノードを持つ) を返す場合、この呼び出しはどのように機能しますか?
2) めちゃくちゃになったとき、vTable はガベージの場所を指しているだけですか? それはたまたま同じ関数ですか?
注: cocos2d (および X) では、シーンはレイヤーのサブクラスであり、CCObject をサブクラス化します。CCObject には呼び出される関数が含まれていますが、名前とパラメーターが大きく異なり、名前とパラメーターが完全に異なる関数が呼び出される理由がわかりません。
私は、これに関する参考文献や優れたドキュメントを受け入れています。私のキャスト (すべてを強制的にバイパスするためだけに再解釈するように設定) が、署名を void ではなく bool に変更し、ビルドをクリーンアップする場合を含め、実行ごとに仮想関数が同じ関数を指している可能性があるのではないかと疑っています。 .
注:XCodeは私がいる環境です。LLVMもまだ使用しているとは思いません。私はそれを微調整して、何が起こるか見てみます。
他のみんなと同じように、抽象クラスの使用と強制オーバーライドについては知っていても、vFunctions を完全に理解しているとは思いません。(その関数を持つ最初のクラスであるため、現時点でなぜ仮想化する必要があるのか わかりませんが、私がやっていることのためにサブクラスで関数を拡張する予定です)。
ありがとう、スティーブ・J
android - Androidデバイスがスリープ状態になるとCCSpriteFrameがなくなります
私はcocos2d-xを使用しており、この素晴らしいものを使用して満足しています。
私はいくつかのplistファイルでCCSpriteFrameCacheを使用しています。しかし、Androidデバイスのスリープボタンを押して再びゲームに戻ると、すべてのスプライトフレームが再び読み込まれているようです!! スリープモードからゲームに戻るには3〜4秒かかるので気づきました。CCSpriteFrameCacheを使用しない場合は正常に動作します。そして、私がiPhoneで試してみると、それは間違いなく大丈夫です。
そして私はそれがcocos2d-xフォーラムで問題になっていることに気づきました。
何か助けはありますか?スリープモードからゲームに戻るたびに、毎回3〜4秒の遅延が発生することを理解しているとは思いません。
ありがとう。神のお恵みがありますように。
cocos2d-iphone - cocos2d/cocos2dx の従来の update-render-loop メソッドはやり過ぎですか?
だから私はボードゲームを作っているとしましょう。私はゲーム ボード アレイを持っています。私のロジックは位置と衝突検出をチェックする必要があります。それで問題ありません。
従来、directX などを使用して、ゲーム ループを作成し、いくつかのロジックをテストし、ゲーム ボード アレイを更新して、最後に画面を描画していましたが、cocos2dx では、画面に直接描画せず、レイヤーにスプライトを追加し、cocos が残りを行います。 !
例えば..
- ゲーム ボードを表すゲーム配列を初期化する
- ゲームオブジェクトを初期化する
- オブジェクトを配列に追加する
- 画面を更新します(配列を画面にレンダリングします)
- ゲームループを開始
- 論理条件のテスト
- 配列からオブジェクトを削除
- いくつかの論理条件をテストし、オブジェクトの位置を更新します
- オブジェクトを配列に追加する
- 画面を再度更新する
- ループ
前のものは問題なく動作しますが、位置を更新して画面に再レンダリングするためだけにレイヤーからオブジェクトを削除する必要はありません。配列を更新します。
このアプローチを続行できますが、何か不足しているかどうかを知りたいです。
ゲーム アレイはゲーム ロジックに役立ち、実際のプレイ可能エリアを模倣しますが、少し石器時代を感じずにはいられません。
誰でもこれを手伝ってもらえますか、私はプロットを完全に見逃していますか?
android-ndk - jni main.cpp(cocos2d-x)の実行中のシーンにアクセスする
jni main.cppで自分のシーンにアクセスしたいのですが、電話をかけたときにcocos2d::CCDirector::sharedDirector()->getRunningScene()
取得できませんでした。私のコード:
helloworld以外のシーンはありません。
cocos2d-x - cocos2d :: CCmoveTO
こんにちは、cocos2dx プログラミングは初めてです........
ターゲットスプライトの発射モーションを作ろうとしています
// addtarget() 部分で
nextPoint は、構造体 p (時間、速度、および空間座標 t、x、y、vx、vy を持つ) を返す関数です。ループの外側ではすべて正常に実行されますが、内側ではデバッグが行われず、すべての座標が表示されません。大丈夫です NUllを削除しようとしました できません 最終的にベジエを使用したので、部分的に機能するようになりました。しかし、なぜ CCMoveTo が機能しないのか理解できません。常に (60,60) の初期座標と、モバイル ゲーム プログラミングが初めての人向けの cocos 2dx の優れたチュートリアル リンクが表示されました。ありがとう!