cocos2d-x(c++) 色(Color3B等)を定数の配列でカラースキーム化

cocos2d-xで、色のパターン等用意する時、
配列で定数化しておくと便利なのでメモ

宣言


// Color3Bの型で3色用意 static const std::vector<Color3B> COLOR_LIST = { Color3B(255,0,0), //赤 Color3B(0,255,0), //緑 Color3B(0,0,255) // 青 };

呼び出し


COLOR_LIST.at(0); // 赤 COLOR_LIST.at(1); // 緑 COLOR_LIST.at(2); // 青

もちろん、Color4Bでも同じ要領

ちなみに赤を出したいだけなら、、、


Color3B::RED

とするだけなので、この記事はそういう趣旨じゃない。。。

cocos2d-x(c++)ひっかかりそうなポイントメモ

ただ生成したNodeのgetContentSize()は0。


node->getContentSize().width // 0

座標は、左下が基準

OpenGLだからか、左下が基準。

oya->addChild(ko)をすると色々挙動が難しい

子は親のアンカーポイントを無視する。

getBoundingBoxの座標が連動していなかったり。

androidでビルドする時、std::to_string()を使うビルドできない。

下記で代用


int newInt = StringUtils::toString(hogeInt);

Vec2でキャストせずにintとしてつかっているといつの間にかずれるのでちゃんとキャストしよう


Vec2 vec2Hoge = hogeMethod(touchLocation); log("vec2HogeFloat x:%f y:%f",vec2Hoge.x,vec2Hoge.y); log("vec2HogeInt x:%i y:%i",vec2Hoge.x,vec2Hoge.y);

cocos2d-xのアプリ開発のお気に入り環境メモ

cocos2d-xでAndroidとiOSのアプリ開発で使っている環境メモ

言語&IDE

C++でxcode使ってる、

もうcocos creator使った方がいいみたいですが。

UI&アニメーションの開発エディタ

下記ツールでUIをGUIエディタ作れる。

cocos studio

version3.10で ※注意サポート終了

下記からダウンロード可能

http://cocos2d-x.org/docs/deprecated/studio/

メモ

  • 下記particle2dxのplistをそのまま取り込める。
  • opacityや、colorのアニメーションも、デフォルトだとタイムラインに表示されないが、record frame の✅を入れると表示される。

パーティクル用のエディタ

Particle2dx

http://particle2dx.com/
* オリジナルの画像がアップロードできないようなので、一度エクスポートしてから、画像ファイル名をplistをテキストエディタで開いて変更する。
* もしくは、エクスポート時の画像ファイル名と同じ画像ファイルで上書き。

シェーダー周り

cocos2dx用というわけでないないがシェーダーのデモに使える

http://glslsandbox.com/e#38793.0

Unity5でアイコンフォントをNGUIで使ってみる。

UILabel、ペースト

Unityでボタン等のアイコン画像をフォントでまかないたいなと思って、

NGUI「UI Label」に入れようとおもったけど、どうやっていれていいかわからなかったのでメモ

1. アイコンフォントで有名らしい「http://fontawesome.io/」を、Unityで入れてみたいと思い入れてみた

※ライセンスにはご注意を!

2. まずダウンロードし、UnityのAssets/Fonts/**.ttfにドラッグ。

※拡張子がttfのものを使おう!

3. でこのあとどうしてよいのかわからくなった、textにいれたらいいんだろう。

サイト内に各アイコンに紐づく、unicodeというもので指定ができる。。

iconfont unicode
iconfont unicode

が、実際にはそれをUI Labelのテキスト内にいれてもアイコン画像は表示されません。

そう、通常unicodeはそのままでは入力できないんです。ただ、実はクリップボードコピーはできちゃいます。

iconfont
iconfont

この画面でコピーw

4. ダウンロードしたフォントデータを開き、使うアイコンテキストをコピーし、UI Label内にペーストする。

UILabel、ペースト
UILabel、ペースト

text内は何の文字も見えない状態ですが、ペーストされていれば、アイコン画像が表示されているはず!

5. これで表示されると思います!

6. 一応上記でも対応できますが、ちゃんとunicodeを入力できるようにする方法がありました。先人の知恵

参考サイトさま:http://nekobata.blog.jp/archives/1032788479.html

Unity4からUnity5に移行した時に、「Workaround for Non-convex MeshCollider cannot be used as a trigger in Unity 5」というエラー

Unity4のアプリをUnity5に移行したら下記のようなエラーが、


Workaround for Non-convex MeshCollider cannot be used as a trigger in Unity 5

翻訳するとすぐわかるのですが、Unity5から、
MeshColliderにを triggerとして使えないそうです。

とりあえず対処

インスペクタから、のMesh ColliderのかわりにBox Colliderを、
つけて、triggerをチェック!で解決w

Unity、角度を適用させる〜備忘録。

Unityで毎回、角度適用の仕方を忘れてしまうので、メモφ(..)メモメモ

角度を加算する。


transform.Rotate(0,0,addAngle);

指定の角度にする


// 角度を適用 transform.rotation = Quaternion.Euler(0.0f,0.0f,targetAngle);

transform.rotation = targetAngle; みたいな事はできないのでご注意をw

Unityで二次元配列を、stringに変換するコード

2次元配列を、string変換

Unityで通信用に変換したりする時に利用できそうなのでメモ。
下記は、int型の二次元配列の例でっす


// 二次元配列を文字列化 public static string Arr2StrEncode(int[,] intArr){ string str = ""; for (int i = 0; i < intArr.GetLength(0); i++) { for (int j = 0; j < intArr.GetLength(1); j++) { str = str + intArr [i, j].ToString(); str = str + ","; //列の区切り文字 } str = str + "\n"; //行の区切り文字 } return str; }

namespaceで、一元化しておくと便利。
あと、列と、行の区切り文字も変換できるようにしておいた方がいいです。。

Unityで、指定のGameObjectの子の数だけ、カウント&制御

unity5 Hierarchy 子供の数制御

Unityで、指定のGameObjectの子供の数分foreachで、数えて。表示/非表示

ハート等のライフポイントの数だけGameObjectを出す例。

unity5 Hierarchy 子供の数制御

上記のように、Hierarchyに配置したGameObjectの子の数を数えて、表示、非表示など制御。


GameObject arrObj = GameObject.transform.Find ("GameObject/GameObjectHoge").gameObject; int num = 0; foreach(Transform childObj in arrObj.transform){ // ライフポイントの数だけ、GameObjectをアクティブにして表示、指定ポイントより低かったら非アクティブ if (lifeCount > num) { childObj.gameObject.SetActive (true); } else { childObj.gameObject.SetActive (false); } num += 1; }

この例だと、ライフポイントの数だけ、GameObjectをアクティブにして表示、指定ポイントより低かったら非アクティブして、
ライフポイントの表示制御をしています。

間違えやすいポイントとして、 foreachの型指定が、GameObject型ではなく、Transform型にしないとエラーになります。