コンテンツへ移動

実績用のアイコン素材

GooglePlayGameServicesやGameCenterなどの実績用のアイコン画像を作成したので公開します。
難易度別に4種類用意しました。
ご自由にお使いください。

(クリックで拡大)
blonze_medal

silver_medal

gold_medal

grand_medal

広告

cocos2d-x & Androidで画面の明るさに関するメモ

cocos2d-xを利用してゲームを開発してる際に、Android端末の画面の明るさを変更する方法をメモ。
基本的には、通常のAndroid開発でActivityのonCreateで変更する方法と同じである。
cocos2d-xの場合は、srcフォルダ内の[プロジェクト名].javaファイルに記述することになる。

(1) 画面が暗くなるのを防ぐ

srcフォルダ内の[プロジェクト名].javaを開き、onCreate内に以下を記述する。

// 画面が暗くなるのを防ぐ
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

(2) 画面の明るさを変更する

同様に、[プロジェクト名].javaのonCreate内に以下を記述する。
明るさの指定は0から1のfloat値を設定することで変更できる。
1に近いほど明るくなる。

// 明るさを設定
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = [0から1のfloat値];
getWindow().setAttributes(lp);

Box2Dの物体をGUIで定義できるツール「Physics Editor」

cocos2dなどから利用できるBox2Dという物理エンジンで物体をグラフィカルに定義できる「Physics Editor」というツールがある。
これを使えば、物理エンジンに使う物体を簡単に定義できるようになり、非常に便利である。
公式サイトはこちらから

そして、このツールの全ての機能を使うにはライセンスを購入する必要があるが、ブログをやっている方には無償でライセンスを配布してもらえる。
以下の条件があるが、当てはまる場合は申請することができる。

  1. ブログを持っている
  2. 半年以内に5つ以上の記事を投稿していて、1ページ以上の長さがある。
  3. ブログのテーマが「ゲーム/ソフトウェア/WEBプログラミング/アプリケーション」についてである。

無償ライセンスの申請はこちらから

[Cocos2d-x – 2.2] install-templates-xcode.shが見つからない

Cocos2d-xに入門しようとしたところハマったのでメモ。

Cocos2dの導入方法を調べると、色々なサイトで

 sudo ./install-templates-xcode.sh

を実行してXcodeへインストールするということが書いてありました。

しかし、cocos2d-x-2.2ではinstall-templates-xcode.shが存在せず、これを実行することが出来ません。

代わりに、以下の方法でプロジェクトを作り、Xcodeで開けば良いということが分かりました。

1. ターミナルでcocos2d/tools/project-creatorに移動する
2. python create_project.py -project [プロジェクト名] -package [パッケージ名] -language [言語名 (cpp |lua | javascript) ]; を実行する
3. cocos2d-xフォルダ下のprojectsフォルダにプロジェクトが作られるので、それを開く
4. プラットフォーム別にフォルダが作られるので、適したものを開く

 

以上です。

こちらを参考にしました。

http://www.cocos2d-x.org/forums/6/topics/36960

ブロックくずしで地球をまもれ!「インベーダーくずし」を公開

Android向けの「インベーダーくずし」というゲームを公開しました。


————————————————————————————————

・ブロックくずしで地球をまもれ!

地球にせまり来るインベーダーから地球をまもって下さい。

ブロックくずしのようにボールをバーで跳ね返すことで敵を倒しましょう。

invederkuzushi_ss.006

・敵のビームを跳ね返して反撃

インベーダーはビームを撃ってくることがあります。

地球をまもるために、そのビームを避けずに跳ね返してください。

invederkuzushi_ss.007

・ボス敵との激戦を勝ち抜け

特定のステージでボス敵が登場します。様々な攻撃をしてくるボスとの激戦を勝ち抜いてください。

invederkuzushi_ss.008

また、このゲームには2つのモードがあります。

1つ目の「アーケード」は、ステージを進めながらハイスコアを競うモードです。

このモードには3体のボスが登場します。

2つ目の「VSボス」は、ボス達と連続して戦うモードです。

アーケードに登場する3体のボスを倒すと、このモードにのみ出現する最後のボスが登場します。

あなたは最後のボスを倒してエンディングを見ることができるでしょうか?

————————————————————————————————

インベーダーくずしをダウンロード

Get it on Google Play

リーダーボードを公開前にリセットする方法 [Google Play Game Service]

Google Play Game Serviceのリーダーボードや実績にはデバッグ用の機能が用意されていない様で、ゲームサービスの公開前にデバッグ中に登録された記録をリセットする方法がありません。

しかし、リーダーボードは簡単にリセットすることが出来たのでメモします。

1 . Developer Consoleよりゲームサービス内のリーダーボードを選択する。

2 . リセットしたいリーダーボードの情報を一時的に変更して保存する。
(ハイスコアの順番付けなどを一時的に変更する)

3 . リーダーボードがリセットされたことを確認して、設定を元に戻す。

以上です。

onSignInSucceeded()とonSignInFailed()が両方とも呼ばれない問題 [GooglePlayGameServices]

今作っているゲームに、GooglePlayGameServicesを使おうとしたところ、色々と問題が発生したのでメモ。
今回は、特に解決に時間がかかったタイトルの問題について書きます。
BaseGameActivity.beginUserInitiatedSignIn()をしても、onSignInSucceeded()とonSignInFailed()が両方とも呼ばれずサインイン出来ない。
しかし、一度画面を消した後などに復帰すればそのタイミングでサインインがされるという事がありました。

この問題は、onActivityResult()をオーバーライドしている場合に起こります。
Activityをextendsしている場合では、super.onActivityResult()を呼ぶ必要はありませんが、
BaseGameActivityのbeginUserInitiatedSignIn()の処理を完了するためにsuper.onActivityResult()を呼ばなければいけません。
たったこれだけの原因ですが、なかなか解決が困難でした。

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent intent)
	{
		// これが無ければonSignInSucceeded()・onSignInFailed()が呼ばれない
		super.onActivityResult(requestCode, resultCode, intent);

		/**
		    処理
		**/
	}

こちらを参考にして解決出来ました。
Google Play Game Services: strange sign in behavior