cocos2d-x

Cocos2d-x Androidでマルチタップを無効にする

Cocos2d-xでシングルタップの判定を行うときはEventListenerTouchOneByOneを使いますが、何故かAndroidではこれを使ってもマルチタップができてしまうので、これを無効にする方法です。今回使用したバージョン Cocos2d-x 3.9 ググってみると、2つの方法が見…

cocos2d-xの画像のキャッシュについてちょっと見てみる

cocos2d-xでSpriteを使って画像を画面上に表示するのは非常に簡単ですが、 扱う画像について意識せずに使いまくってしまうと、メモリ大量に消費してしまい、メモリ不足でクラッシュしたりすることがあります。 この場合、原因の特定は非常に困難で、修正に何…

cocos2d-xでSQLiteを使う

珍しい内容でもないですが、自分なりのやり方を備忘録も兼ねてまとめておきます。wxSplite3を使って暗号化も行いますが、その手順についてはこちらを参考にさせていただきました。 cocos2d-xでwxSqlite3を使ってみた | SystemTelescope今回使用したバージョ…

cocos2d-xでsocket.ioを使う Android版

cocos2d-xでsocket.ioを使う iOS版 - おかひろの雑記 ではCocos2d-xでsocket.ioを使うためのiOSの設定をしましたが、今度はAndroidの方を設定します。Androidではsocket.io-java-client(https://github.com/Gottox/socket.io-java-client)を使いますが、そ…

cocos2d-xでsocket.ioを使う iOS版

Cocos2d-xでsocket.ioを使う方法について調べました。 Cocos2d-xには標準でSocketIOクラスが用意されていますが、諸々の理由により使わずに、 iOS/Androidそれぞれ個別に設定を行います。まずはiOSから。iOSはAZSocketIOを使用します。AZSocketIOはcocoapods…

cocos2d-x + Box2d 接触している物理体を調べる

Box2dでの衝突検出はb2ContactListenerがありますが、これは衝突したときに呼ばれるもので、 そのときに衝突した物理体の情報のみ取得することができます。そうではなく、ある瞬間で、物理体が接触している他の物理体の種類や個数を知りたいことがあります。…

cocos2d-x + Box2d 物理体のデバッグ表示

物理体のデバッグ表示です。今回使用したバージョン Cocos2d-x 3.9 こちらを参考にさせていただきました。 cocos2d-x 3.2 + Box2D iOSでDebugDrawの実行まで - Qiita動作するサンプルはこちら。 https://github.com/okahiro/Cocos2dxBox2d (Cocos2d-xのフル…

cocos2d-x + Box2d PhysicsEditorで作った物理体を拡大/縮小してみる

Box2dの物理体を拡大/縮小したいことがありますが、 単純にSpriteをsetScaleしただけでは、見た目は変わっても、物理体は変わりません。cocos2d-x + Box2d PhysicsEditorで作ったデータを読み込む - おかひろの雑記で作ったサンプルに、拡大/縮小処理を入…

cocos2d-x + Box2d PhysicsEditorで作ったデータを読み込む

cocos2d-xでBox2dを使う - おかひろの雑記 で、Cocos2d-xでBox2dを使う設定をしましたが、 実際にゲームで使いたい物理オブジェクトの形は複雑なことが多いので、 物理体の座標を個別に設定するのは相当難しいと思います。なので、PhysicsEditor(https://ww…

cocos2d-xでBox2dを使う

ゲームに物理エンジンを使いたいことはよくあります。Cocos2d-xは標準でChipmunkをラップした仕組みがあって便利そうに見えますが、iPhone5s以上(?)の実機で動かすと 挙動がおかしく、あまり使い物にならなそうです。 これはCocos2d-xに添付されているcocos2…

cocos2d-xプロジェクト作成+自分用設定など

Cocos2d-xで新しいプロジェクトを作成するときの、自分用メモです。 Androidは、Android Studio用のプロジェクトを使うようにします。今回使用したバージョン Cocos2d-x 3.9 AndroidNDK r10c プロジェクト作成 cocos new プロジェクト名 -p パッケージ -l cp…

サーバー上においてある画像をダウンロードして使う(TextureAtlas)

サーバー上においてある画像をダウンロードして、それをそのままSpriteに使う例はそれなりにみかけますが、 TextureAtlas(pngとplist)をダウンロードしてSpriteFrameCacheを使う例は見かけなかったので、自分なりに試してみました。今回使用したバージョン…

Cocos2d-xでアプリのバージョンを取得する

Cocos2d-xからiOS,Androidのアプリバージョンを取得する処理を作成したのでメモします。 JNIのクラスなど、ネイティブ連携のクラスはCocos2d-x上からTwitterにツイートする - おかひろの雑記などと同じ形で作成してあるとします。今回使用したバージョン Coc…

JNIでJavaからC++のメソッドを実行

ネイティブ連携はC++→Objective-C or Javaの一方向で事足りることが多いですが、 ネイティブ側からC++のメソッドを呼びたいケースもやはりあります。 (課金処理の結果をC++に渡すなど)JNIは少しややこしいので、メモをしておきます。 JNIのクラスなど、ネ…

Actionに他のターゲットのアクションを混ぜて実行する

Cocos2d-xで、例えば スプライト1を指定の座標に移動 ↓ スプライト2を指定の座標に移動 ↓ スプライト1をフェードアウト のように、他のターゲットのActionを混ぜて実行する方法のメモ。今回使用したバージョン Cocos2d-x 3.2 そんなに難しくなく、runActi…

Cocos2d-x 3.2でスクリーンショットを撮ってツイート

Cocos2d-x3.2で、スクリーンショットを撮るためのメソッドが実装されたので、 これを使ってスクリーンショットをツイートする機能を作ってみたのでメモ。基本はこの記事と同じです。 Cocos2d-xで撮ったスクリーンショットをTwitterに添付してツイートできな…

Spriteの場所からスコアラベルを表示する

ゲーム中で敵を倒した時に、その敵Spriteの近くにスコアを表示させたい場合があります。 当然そのスコアラベルはずっと表示されるわけではなく、一定時間で消去します。 ぐでー退治では、ぐでーをタップするとスコアラベルが表示され、徐々に上に行きながら…

ゲーム内のどこからでも使えるシングルトンクラスの作成

どのレイヤー、どのクラスからでも使えるシングルトンクラスを作っておくとなにかと便利です。今回使用したバージョン Cocos2d-x 3.2 クラス名は"GameManager"とします。GameManager.h #include "cocos2d.h" USING_NS_CC; // Tag enum kTag { kTagBackGround…

NotificationCenterを使う

今まであまり気にしていなかったのですが、NotificationCenterの仕組みが便利であることがわかったので、 その使い方をメモ。今回使用したバージョン Cocos2d-x 3.1 呼び出される側の実装 // コンストラクタ HelloWorld::HelloWorld() { NotificationCenter:…

Cocos Studioデータの読み込み

Cocos Studioで作成したアニメーション、UIデータをcocos2d-x3で読み込む例です。 Cocos StudioはWindows版です。今回使用したバージョン Cocos2d-x 3.1 Cocos Studio 1.5.0.1(Windows) 事前準備 必要なimport、usingの記述を加えます。hファイル #include "…

Cocos2d-x 3.x でのTexture Atlas読み込み

備忘録。 Cocos2d-xでのTexture Atlas読み込み方法。今回使用したバージョン Cocos2d-x 3.1 Texture Packer 3.3.4 Texture Packerでの出力 "Data file"、"Texture file"はそれぞれ拡張子が"plist"、"png"になっていることを確認 取り込み AppDelegate.cpp bo…

Cocos2d-x 3.x タップ可能なSpriteのサブクラス

Spriteのサブクラスを作成し、EventListenerを組み込む例です。ここを参考にしました。 http://www.cocos2d-x.org/wiki/How_To_Subclass_Sprite_And_Add_Event_Listeners今回使用したバージョン Cocos2d-x 3.1 GudeSprite.h #include "cocos2d.h" class Gude…

Cocos2d-x 3.x 環境構築

Cocos2d-x 3.Xを使い始めようかなと思ったので、またいろいろとメモしていきます。まずは環境構築から。 iOSとAndroidで動作確認します。今回使用したバージョン Cocos2d-x 3.1 android-ndk-r8e apache-ant-1.9.3 必要なもののダウンロード Cocos2d-x http:/…

Cocos2d-xでCocosBuilderを使う場合のLayerクラステンプレート

とりあえずよく使う形で、毎回一から作るのが面倒なのでテンプレートにしました。 GitHub - okahiro/cocos2d-x_ccb_layer_template: CocosBuilder layer template sources for cocos2d-xなんてことはない、ただ最低限のことが書いてあるだけのLayerクラスで…

ビルド時にCCDatavisitor.hの#include で'string' file not foundというエラーが突然出るようになってハマった

Cocos2d-xの開発をしていて、プロジェクトをCleanしてBuildしたら突然エラーが出るようになりました。 私のケースでの解決方法をメモ。バージョン Xcode4.6.3 cocos2d-x-2.1.4 自作クラスで"Block"という名前のクラスを作成していましたが、これがダメだった…

cocos2d-xでcreate_project.pyを使わずにBox2Dに対応させる(Android)

Cocos2d-xの環境構築(Android向け) - おかひろの雑記 このやり方でBox2D対応のプロジェクトをAndroidで動作させるときに必要な設定のメモ。 iOSのプロジェクトは"ocos2dx_box2d"で作成します。今回使用したバージョン cocos2d-x-2.1.4 Android.mk LOCAL_C_…

Cocos2d-xで撮ったスクリーンショットをTwitterに添付してツイートできないか試してみた

Cocos2d-x上からTwitterにツイートする - おかひろの雑記ではテキストデータのみのツイートをやってみましたが、 Cocos2d-xの画面のスクリーンショットを添付してツイートできないか試してみました。 ちなみにCocos2d-xでスクリーンショットを撮る方法はこち…

Cocos2d-xでいろいろな外部ツールを使う時のディレクトリ構造と設定

Cocos2d-x(Cocos2dでもですが)を使っていくと、いろいろな外部ツールを使って開発を効率化していくことになりますが、 複数のツールを使うようになってくると、ファイルの管理がだんだんややこしくなってきます。ファイルをわかりやすく管理しつつ、変更が…

Cocos2d-xのプロジェクトをビルドしてTestFlightにアップロード(Android)

Cocos2d-xのプログラムをAndroid向けにビルドしてTestFlightにアップロードするスクリプトです。 create_project.pyで作成したプロジェクトの直下にスクリプトを置いているものとします。 違う場所に置く場合などはパスの変更が必要です。 #!/bin/sh # confi…

CocosBuilderとローカライズ

CocosBuilderを使うと画面上にラベルを表示してアニメーションさせたりが非常に簡単になりますが、 ローカライズはどうするのかなと思っていました。とりあえずベストなやり方がわからなかったので、CocosBuilder上は日本語で作っておいて、 cocos2d-xのプロ…