がおまる開発ブログ

cocos2d-xやlevelhelperを使って iPhone/Androidアプリの作り方を解説します

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[新作]麻生でホッピングをリリースしました!

本日新作アプリ「麻生でホッピング」をリリースしました!
リリース前から大好評で驚きの連続です!

そしてリリース直後からGameCenterが凄い!
なんてったって、作者がGameCenter1位を独占していたのが何とも(^_^;)

もう今は他のプレイヤーに抜かされましたが(´Д⊂ヽ
好評なので、近いうちにバージョンアップとRetina対応をしたいと思っています!!

リコさん何とか安倍さんの顔貸してもらえませんかね〜
ハードモードだけ安倍ちゃんの顔にしたいんですよw

そして3/1に大阪でアプリのプレゼンで登壇します!
もちろん麻生でホッピングのプレゼンです!

既に80人オーバーですが(^_^;)

来場者特典としてスライドの途中にナースの顔を晒します!

見たいって人は是非!appbank勉強会にふるってご参加くださいw

[iOS版]

麻生でホッピング 1.0.0(無料)App
発売日: 2013/02/27
カテゴリ: ゲーム, エンターテインメント, アクション, スポーツ
販売元: fuate Co., LTD. - fuate Co., Ltd.(サイズ: 5.2 MB)
全てのバージョンの評価: (1件の評価)
GameCenter対応


[Google Play版]
麻生でホッピング
fuate Co., Ltd.



スポンサーサイト

3/1 AppBank Network 主催勉強会で登壇します!

3/1 AppBank Network 主催勉強会にて、プレゼンを初めてさせていただくことになりました!
( ゚Д゚ノノ☆パチパチパチパチ

今年はアクティブに動く事をモットーにして、
今まで勉強会は何度か参加していましたが、遂に初めてプレゼンを行います!

もう既に緊張気味(´Д⊂ヽ
さっき参加者人数見たらもう60人オーバー(^_^;)
そんな初めてで60人以上の人間の前でしょーもない事をしゃべるのは拷問やでw

まぁ何事も経験です!

テーマは既に決まっております!
もうじきリリースされるはずの「麻生でホッピング」のプレゼンを行なってきます!
指先リフティング以降Hit作から恵まれず、かなり遠のいていたので、このチャンスを活かしたいと思っています。

因みに…

ナースは来ません!
会場に来れば写真ぐらいは見せてあげるよ(・ω<)

という事で参加は100人のキャパがあるんで、
まだまだ余裕ですよ!
参加したいって人はこちらから登録してください!

3/1 AppBank Network 主催勉強会 @大阪 戎橋

とあるプリクラ業界での壮絶体験!第8話:ブラをする漢

まだ変な人居たのを思い出したw

いつものように入れ替わり立ち代わり色んな人が派遣として送られてきました。
その中で特に衝撃だったのがどうみてもオカマって感じな人が来ましたw

年齢は40代前半って言ってたかな〜
その人はちゃんと妻がいて、子供も居てる人でした。

でも!
いつも着てくる服は松尾伴内さんじゃないけど女性っぽい服ばかり…
まぁ人の個性や、趣味をどうこう言うつもりじゃないけど、バリバリのプログラマーでやってる人で、
ちょっと想像出来なかったです(^_^;)

僕はその人の席の後ろに居たのですが、夏場に薄着で来られた時に衝撃的な光景が目に入って来ました!
うっすらブラジャーのようなものがちらりと見えるではありませんか!!
スポーツブラとかでは無く、ガッツリ女性物が!!!

あかん…これは本物や…
なんでこの職場は特殊な人ばかり来るのだろうか(^_^;)

その人も数ヶ月後には消えてしまいましたけど(´Д⊂ヽ
ホント色んな人がいてますね

[新作] にゃるころ!を本日リリースしました

本日新作アプリ「にゃるころ!」をリリース致しました!
なんとこのアプリに登場するのは…

ナースが飼っている猫!
が登場します!

s_20130223_0.png
もう20年以上長生きしているんですよ!
繊細な猫で、ストレスが貯まると頭に10円ハゲが出来るかわいい猫ちゃんです。


このアプリは「だるまさんがころんだ」の要領で、
左右から流れてくるお寿司を猫にバレずに箱に入れていくゲームです。
見つからずにいくつ入れられるかな!

猫の声はひみつだよ!

今回もcocos2d-xとLevelHelperを使って作成しました!
どうもありがとうございます!
猫の日にリリース出来ればよかったな(^_^;)

iOS版

にゃるころ! 1.0.0(無料)App
発売日: 2013/02/23
カテゴリ: ゲーム, エンターテインメント, アクション, キッズ
販売元: fuate Co., LTD. - fuate Co., Ltd.(サイズ: 4.6 MB)
全てのバージョンの評価: (1件の評価)
GameCenter対応


GooglePlay版
にゃるころ!
fuate Co., Ltd.
リリース日:2013/02/18



Javaからcocos2d-xにコマンドを送る

前回はc++→Javaでつぶやきをするという機能をご紹介しました。
今度はその逆でJava→c++に対して命令を実行するやり方をご紹介しましょう!

Eclipse側にあるmain.cppを編集します
s_20130218_0.png

// Java_[パッケージ名]_[メソッド名が書かれているjava名]_[メソッド](JNIEnv* env, jobject thiz,[引数])
// 今回はorg.cocos2dx.libパッケージにあるCocos2dxActivity.javaに定義したjniTest(int no)にしました
// パッケージ名の「.(ドット)」は「_(アンダーバー)」に置き換えるのがルールのようです。
void Java_org_cocos2dx_lib_Cocos2dxActivity_jniTest(JNIEnv* env, jobject thiz, jint no)
{
// cocos2d-x側で実行したいやつを書く
HelloWorld::sharedScene()->jniTest(no);
}

s_20130218_1.png


private static native void jniTest(int no);

@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// 好きなタイミングで呼び出したいメソッド名を書きます
// この例では引数に[10]を与えてます
Cocos2dxActivity.jniTest(10);
}


Xcodeで実際に呼び出す処理を書きます。
プログラムは結構はしょってるので、気をつけてください。

class HelloWorld : public cocos2d::CCLayer {
public:
~HelloWorld();
HelloWorld();

static HelloWorld* sharedScene(void);

// returns a Scene that contains the HelloWorld as the only child
static cocos2d::CCScene* scene();

void jniTest(int no);

}


#include "HelloWorldScene.h"

static HelloWorld *g_gameScene;

////////////////////////////////////////////////////////////////////////////////
HelloWorld* HelloWorld::sharedScene() {
return g_gameScene;
}

////////////////////////////////////////////////////////////////
CCScene* HelloWorld::scene()
{
// 'scene' is an autorelease object
CCScene *scene = CCScene::create();

// add layer as a child to scene
g_gameScene = new HelloWorld();
scene->addChild(g_gameScene);

return scene;
}

////////////////////////////////////////////////////////////////////////////////
void HelloWorld::jniTest(int no)
{
CCLog("jniTest=%d", no);

}

これで受け渡しが出来ると思います。
ビルドするのを忘れずに!!

とあるナースから聞いた都市伝説

とあるナースから裏情報を聞く機会があります。
以前聞いた話をチラッとご紹介w

これは都市伝説なので、へ〜という感じで受け止めてください。

患者を実験台にしている
こんなのはごく一部だと思うのですが、新薬を試すために寿命が短い患者などを対象に、
実験台になっているというのです。
健康な人でも新薬の投与をしてみてどういう反応をするか見ることもあるとかないとか…

信じるか信じないかはあなた次第です!

インフルエンザワクチンが余りまくっている
去年はワクチンが不足しまくって大変になりました。
今年はその対策として大量にインフルエンザワクチンを購入して、在庫が捌ききれずに余りまくっているようです。
何故か保健所みたいな所からワクチンを打て打て言いまくっているようです。
しかし、ワクチンを打っているにも関わらずやたらとインフルエンザが病院で大流行しているようです。

とあるナースの見解ですが、今年のワクチンは効力が薄いのでは?
全然効果がないのかもしれないと思っているようです。
保健所としても在庫が大量にあるので、やっぱり捌きたいでしょうから各病院に積極的にワクチン接種を促している模様です。

ナース同士は犬猿の仲
男性の看護師が増えてきていますが、それでもまだまだ女性の職場です。
陰湿な女子同士のイジメや女性特有のややこしい問題が結構あるようです。

挨拶をしても無視したり、時にはわざと聞こえるように悪口言ってみたりなど(^_^;)
なかなか怖いですよね(´Д⊂ヽ

ドクターには逆らえない
やはりドクターには逆らえないようです。
経験値などの高いナースは薬の分量など経験で知っている事もあるのですが、
足りないな〜と思ってもドクターには逆らう事が出来ず、黙っている事が多いようです。

決して白衣の天使ではない
表の顔やイメージではナース=白衣の天使と思っている人多いはず…
しかし実際には一番不健康な生活をしているようなのです。
夜勤はあるし、それで食生活も乱れて、患者さんには3食規則正しく食べましょうね〜とか言いながら
言っている本人は高カロリーな食生活やタバコなどかなり不健康な事をしている人が多いようです。


如何でしたでしょうか?
聞いた話ばかりなので、信憑性にかけますがただの都市伝説なのでお気になさらないようwww

信じるか信じないかはあなた次第です(・ω<)

とあるプリクラ業界での壮絶体験!第7話:仕様の決め方

プリクラに仕様書なんてありません!
簡易的な全体の遷移図があって、撮影→落書き→印刷の流れが書いてあり、
最後の決めゼリフは決まって「他社と同じにしてくれれば良い」です(^_^;)

結局プリクラの成果物は最後のシールなので、
中身なんかほんとどーでもいいんですよね(´Д⊂ヽ

企画する人が他社のプリクラでビデオカメラを回してきたものを
皆で見て、それを形にしてくれれば良いというだけです。
だから他社と全体的に動きが一緒なんですね〜

一時期はシールの成果物の他に、
シュシュなんておまけももらえる機種もありました。

今は赤外線通信は当たり前で、Pontaカードでポイントがもらえる機種もあります。
もう何がなんだかイミフですね(^_^;)

PHSで撮影した写真データを送信して、iPhoneで後から落書き出来るのが現在の最新ですね。
今は、何か問題があれば全機種が繋がっているのでアップデートも容易にできちゃうようです。

でも怖いのは写真データもフラグ一つで蓄積が可能なので、
変な写真は下手すると開発者に見られてるかもねw

特にロケテスト中は危険だと思いますよ〜

新製品の体験が出来るとうたっていますが、
色んな撮影データを取得して解析したりしているようです。
怖いですね〜今はどうか知りませんけどw

cocos2d-xのCCProgressToを使ってみる

cocos2d-xには便利なCCProgressToという機能があります。
これを使えばタイマーを視覚的に見やすくなります。

導入は簡単です。
10秒で100%の計算です

CCProgressTo *to1 = CCProgressTo::create(10, 100);


リソースはこんな感じ!
timeB.png
timeB.png

time.png
time.png


// 背景画像です
CCSprite* timeB = CCSprite::create("timeB.png");
timeB->setPosition(ccp(s.width/2, s.height/2));
addChild(timeB);

// タイマーの針です
CCProgressTo *to1 = CCProgressTo::create(10, 100);
CCProgressTimer* time = CCProgressTimer::create(CCSprite::create("time.png"));
time->setType( kCCProgressTimerTypeRadial );
addChild(time);
time->setPosition(ccp(s.width/2, s.height/2));
time->runAction( to1 );



実際の動きはこんな感じ!

とあるプリクラ業界での壮絶体験!第6話:プリクラの環境

プリクラって何で動いているか知ってますか?

実は普通のパソコンが入っています。
OSはWindowsXPが現在の主流ですね。

最初派遣で行ってWindowsで動いているのはビックリしましたね〜
当初はWindows98とかWindows2000とかで動いていて、負荷がかかると動きが重たくなったり
ブルーバックになって止まる事もありました(^_^;)

ハードウェアの影響もあって、
コストダウンでハードディスクの回転数のしょぼいPCを採用した時は破滅でしたね(´Д⊂ヽ
ソフトは一切悪くないのにハードディスクのせいでフリーズやあり得ないバグなどに何度泣かされたことか…

Windows7に移行の話が出ているようですが、
シールを管理するドライバーが7に対応してないから未だにXPで仕方なく動いている状況ですな〜

プリクラのシールは消耗品としてそこでも儲けが出るようになってます。
この仕組みはプリンタ屋と同じ手法ですね。

シールを出力するのにセキュリティートークンというコインを使って出力枚数を管理しています。
セキュリティートークン1枚(印刷可能枚数128枚やったかな)とシールロール(6ロール)セットで何万円もします!
えげつない商売ですわ(^_^;)

後、開発環境はc++ですね〜
c++と独自のiniファイルで管理しています。
iniファイルがかなり曲者で、このファイルにボタンの定義やらc++の関数を呼び出したりしてました。

iniファイルにプログラムを書くという感じでした。
通常のiniファイルと全く違いました。

かなり特殊な環境なので、直ぐ辞めていく人が沢山いましたよ(^_^;)
最短で3日で辞めていく人が居ました。

理由は残業が嫌だからとか、無断でいきなり居なくなるとか…
メールで一方的にさようならと告げて居なくなったり…

やっぱゲーム業界ってこんなんが多いんかな〜

cocos2d-xでCCMenuを使う

cocos2d-xにはCCMenuという便利な機能があります。
これを使うと、簡単にボタンの配置が出来ちゃうのが嬉しいですね〜

CCMenuにボタンを登録するのはCCMenuItemImageというものを同時に使います。
実際の使用例は以下の通りです。

ボタン画像のON/OFF画像と実際にタップした時の処理を指定します。

CCMenuItemImage* btnStart = CCMenuItemImage::create("btnStart_OFF.png",
"btnStart_ON.png",
this,
menu_selector(HelloWorld::startTapped));



僕のゲームではこんな感じで指定しています。

// スタートボタン
CCMenuItemImage* btnStart = CCMenuItemImage::create("btnStart_OFF.png",
"btnStart_ON.png",
this,
menu_selector(HelloWorld::startTapped));

// オススメアプリ
CCMenuItemImage* btnMyApps = CCMenuItemImage::create("btnMyApps_OFF.png",
"btnMyApps_ON.png",
this,
menu_selector(HelloWorld::myAppsTapped));

// ランキングボタン
CCMenuItemImage* btnRanking = CCMenuItemImage::create("btnRanking_OFF.png",
"btnRanking_ON.png",
this,
menu_selector(HelloWorld::rankingTapped));

// ゲームスタート2
CCMenuItemImage* btnStart2 = CCMenuItemImage::create("btnStart2_OFF.png",
"btnStart2_ON.png",
this,
menu_selector(HelloWorld::start2Tapped));

// サウンドボタンOFF(トグルスイッチ用)
CCMenuItemImage* btnSound_Off = CCMenuItemImage::create("btnSe_OFF.png",
"btnSe_OFF.png",
this,
NULL);

// サウンドボタンON(トグルスイッチ用)
CCMenuItemImage* btnSound_On = CCMenuItemImage::create("btnSe_ON.png",
"btnSe_ON.png",
this,
NULL);

// サウンドボタンのトグルスイッチ
CCMenuItemToggle* btnSound = CCMenuItemToggle::createWithTarget(this,
menu_selector(HelloWorld::soundTapped),
btnSound_Off,
btnSound_On,
NULL);

// つぶやきボタン
CCMenuItemImage* btnTwitter = CCMenuItemImage::create("btnTwitter_OFF.png",
"btnTwitter_ON.png",
this,
menu_selector(HelloWorld::twitterTapped));

// Facebookボタン
CCMenuItemImage* btnFace = CCMenuItemImage::create("btnFacebook_OFF.png",
"btnFacebook_ON.png",
this,
menu_selector(HelloWorld::facebookTapped));

// 並べるボタンの順番を指定
CCMenu* topMenu = CCMenu::create(btnStart, btnStart2, btnRanking, btnMyApps, NULL);

CCMenu* subMenu = CCMenu::create(btnFace, btnTwitter, btnSound, NULL);
subMenu->setPosition(ccp(s.width*0.4, s.height*0.75));

// 縦に配置(隙間を10ずつ空ける)
topMenu->alignItemsVerticallyWithPadding(10);
topMenu->setPosition(ccp(s.width/2, s.height*0.35));
this->addChild(topMenu);

// 横に配置(隙間を10ずつ空ける)
subMenu->alignItemsHorizontallyWithPadding(10);
subMenu->setScale(0.6);
subMenu->setAnchorPoint(ccp(1, 0.5));
this->addChild(subMenu);



実際に動かすとこんな感じ!
サクッと配置できるので便利ですね♪
Androidと比べると断然楽ちん!
s_20130212_0.png

とあるプリクラ業界での壮絶体験!第5話:特許で狂わされる仕様

どこの業界にも特許は存在します。
このプリクラ業界も当然特許ありました(^_^;)

この特許をめぐって結構辛い思いを沢山しましたね〜
なんでこう誰も得しない特許って存在するんでしょうねw

そもそもこの「プリクラ」もアトラスの商標登録だしwww

ビックリした特許を紹介しましょう!

同じ写真を同時に落書きしてはいけない
落書きブースは画面を左右に分けて、それぞれが好きな写真に落書き出来ますが、
同じ写真を同時に落書きしてはいけないという特許が存在します。

思いっきりのこの特許に引っかかり、
ゲームの90%以上完成してリリースもうじきって所でNGが出ました(´Д⊂ヽ

苦肉の策は選択している写真に落書き中のマークを付けて、
選択出来ないようにする対策をしました。
多分この特許のお陰で他のプリクラも同じような仕様になっていると思います。

全く誰も得しませんよね(^_^;)

他にも細かい特許がめちゃくちゃあります。
もうあり過ぎて忘れましたけどねw

iPhoneではあまりこういう特許とか意識せずに作ってますが、
調べれば細かいの有りそうですよね〜
何か凄い特許とかあるんかな?

CPI広告を試す!GameFeatってどやさ!

CPI広告を試す!GameFeat編です!
これはAndroid限定です!

現状iOS版は未対応です!
まもなくiOS版も対応するらしいです。

特徴
カジュアルゲームに特化したCPI広告
・運営元があの「マッチに火をつけろ」のベーシック
・1成果毎に平均200円以上!
・GameFeatを導入しているアプリに対して相互に自社アプリを無料で掲載できる

結構導入単価も高くて、運営元がベーシックなんで露出の機会が増えると思います。
相互掲載できるのが最大のメリット!

マッチに火をつけろも導入しているので、
おすすめアプリに掲載されることもあり!?

s_20130211_2.png

s_20130211_3.png

実際にはこんな感じに掲載されました。
「マッチに火をつけろ」で出たのを確認しています。
s_20130209_7.png

s_20130211_4.png

僕のアプリの場合はボタンをクリックすると
GameFeatのおすすめアプリページに遷移するようにしています。
s_20130209_5.png

ボタンを押すと、このページになります。
「オススメ」部分が成果報酬型広告になります。
s_20130209_6.png

cocos2d-xの画面遷移

cocos2d-xの画面遷移方法はむちゃ簡単です!
では早速試してみましょう♪

ボタンをタッチした時などに下記を実行すれば、画面遷移します

// 遷移先の画面のインスタンス
CCScene *pScene = HelloWorld::scene();

// これで画面遷移します
pDirector->runWithScene(pScene);


画面遷移に色んなアニメーションをしながら遷移したい時も
簡単に出来ます。
下記の例はフェードアウトしながら遷移する例です。

CCScene *pScene = HelpLayer::scene();

// 0.5秒かけてフェードアウトしながら次の画面に遷移します
CCTransitionFade* transition = CCTransitionFade::create(0.5f, pScene);

CCDirector::sharedDirector()->replaceScene(transition);



他の遷移アクションは動画で確認してください!
色んなアクションが用意されているので、結構面白いですよ〜

とあるプリクラ業界での壮絶体験!第4話:来てソッコー寝るな!写真も大公開!

前回は肩が痛いので休みまくる師匠のお話でした。
今回は出社するなりいきなり寝る人のお話です。

プリクラには撮影コーナーと落書きコーナーがあって、
最後に成果物であるシールを印刷するというのが一連の流れです。

その落書きコーナーのコアな部分を作ったのが今回の主役です。
落書きのペンのシステムを作らせると右に出るものが居ないぐらいの力量の持ち主でした。

でもやっぱりその人も曲者ですね(^_^;)
写真も後ほど大公開!
この人もだいたい昼過ぎに出社します…
出社するなりいきなり寝ます!

それは誰が見ても確実に寝てるやん!って突っ込まずには居られない体勢なんですよ(´Д⊂ヽ
上司が来ようが、社長が来ようがお構いなし!
つい5分前に出社したばかりなのに、疲れたのか何もしてないのに寝始めます。

不具合が起きて、直ぐに来て欲しくても全然来てくれません(^_^;)
携帯が主流の時代にピッチでかろうじて連絡が取れるという人です。

何回注意されても全然平気!
次の日もケロッとした顔で当然寝ます。

ではそんな人の寝ている姿を勝手に盗撮しましたwww


s_20130209_2.png
どうですか?ガッツリ寝てますよねwww

Box2Dのジョイントを試す:マウスジョイント編

Box2Dには物体同士をくっつけたりするジョイントという機能があります。
いくつかジョイント機能のうち今回はマウスジョイントをお知らせします。

マウスジョイント
マウスジョイントとはマウスで物体を掴んで、
タッチ位置を起点に物体を振り回したりドラッグしたり出来ます。
結構面白い動きになるので、発想によっては色々と応用が効きそうです。

実際の動きはこんな感じ!


LevelHelperを利用してますが、
cocos2d-xでも利用できるソースですので、ご利用ください!

SpriteHelperを開いて、オブジェクトにBox2Dを付与していきます。
s_20130209_0.png

LevelHelperに配置していきます。
s_20130209_1.png

続いてXcodeでソースを書いていきます。

#include "cocos2d.h"
#include "Box2D.h"
#include "LevelHelperLoader.h"

class HelloWorld : public cocos2d::CCLayer {
public:
~HelloWorld();
HelloWorld();

// returns a Scene that contains the HelloWorld as the only child
static cocos2d::CCScene* scene();

void initPhysics();
virtual void draw();
virtual void ccTouchesBegan(cocos2d::CCSet* touches, cocos2d::CCEvent* event);
virtual void ccTouchesMoved(cocos2d::CCSet* touches, cocos2d::CCEvent* event);
virtual void ccTouchesCancelled(cocos2d::CCSet* touches, cocos2d::CCEvent* event);
virtual void ccTouchesEnded(cocos2d::CCSet* touches, cocos2d::CCEvent* event);
void update(float dt);

private:
b2World* world;
LevelHelperLoader* lh;

// マウスジョイント変数定義
b2MouseJoint* mouseJoint;

// マウスジョイント取得
b2MouseJoint* getMouseJoint(cocos2d::CCPoint p);

// マウス移動処理
void setMouseTarget(CCPoint p);

// マウスジョイント破棄
void setDestroyMouseJoint();


};

#endif // __HELLO_WORLD_H__



HelloWorld::HelloWorld()
{
setTouchEnabled( true );

CCSize s = CCDirector::sharedDirector()->getWinSize();

// 初期化
this->initPhysics();

scheduleUpdate();
}

HelloWorld::~HelloWorld()
{
delete lh;
lh = NULL;

delete world;
world = NULL;

delete m_debugDraw;
}

// 初期処理
void HelloWorld::initPhysics()
{

CCSize s = CCDirector::sharedDirector()->getWinSize();

b2Vec2 gravity;
gravity.Set(0.0f, -10.0f);
world = new b2World(gravity);

// Do we want to let bodies sleep?
world->SetAllowSleeping(true);
world->SetContinuousPhysics(true);

// LevelHelper初期化
lh = new LevelHelperLoader("GaomarTest.plhs");
LHSettings::sharedInstance()->setLhPtmRatio(PTM_RATIO);
lh->addObjectsToWorld(world, this);

if(lh->hasPhysicBoundaries())
lh->createPhysicBoundaries(world);

if(!lh->isGravityZero())
lh->createGravity(world);

// マウスジョイント変数初期化
mouseJoint = NULL;
}

// タッチダウン
void HelloWorld::ccTouchesBegan(CCSet* touches, CCEvent* event)
{
CCSize s = CCDirector::sharedDirector()->getWinSize();

//Add a new body/atlas sprite at the touched location
CCSetIterator it;
CCTouch* touch;

for( it = touches->begin(); it != touches->end(); it++)
{
touch = (CCTouch*)(*it);

if(!touch)
break;

CCPoint location = touch->getLocationInView();
location = CCDirector::sharedDirector()->convertToGL(location);

// マウスジョイント取得
mouseJoint = this->getMouseJoint(location);
}
}

// タッチ移動時
void HelloWorld::ccTouchesMoved(CCSet* touches, CCEvent* event)
{
CCSize s = CCDirector::sharedDirector()->getWinSize();

//Add a new body/atlas sprite at the touched location
CCSetIterator it;
CCTouch* touch;

for( it = touches->begin(); it != touches->end(); it++)
{
touch = (CCTouch*)(*it);

if(!touch)
break;

CCPoint location = touch->getLocationInView();
location = CCDirector::sharedDirector()->convertToGL(location);

if (mouseJoint != NULL) {

// マウスジョイントがあれば、オブジェクト移動させる
this->setMouseTarget(location);

} else {
// 無いのでマウスジョイント取得する
mouseJoint = this->getMouseJoint(location);

}
}
}

// タッチキャンセル時
void HelloWorld::ccTouchesCancelled(CCSet* touches, CCEvent* event)
{
CCSize s = CCDirector::sharedDirector()->getWinSize();

//Add a new body/atlas sprite at the touched location
CCSetIterator it;
CCTouch* touch;

for( it = touches->begin(); it != touches->end(); it++)
{
touch = (CCTouch*)(*it);

if(!touch)
break;

// マウスジョイント破棄
this->setDestroyMouseJoint();

}
}


// タッチアップ時
void HelloWorld::ccTouchesEnded(CCSet* touches, CCEvent* event)
{
CCSize s = CCDirector::sharedDirector()->getWinSize();

//Add a new body/atlas sprite at the touched location
CCSetIterator it;
CCTouch* touch;

for( it = touches->begin(); it != touches->end(); it++)
{
touch = (CCTouch*)(*it);

if(!touch)
break;

// マウスジョイント破棄
this->setDestroyMouseJoint();

}
}

////////////////////////////////////////////////////////////////////////////////
// マウスジョイント取得
b2MouseJoint* HelloWorld::getMouseJoint(CCPoint p) {
b2Vec2 locationWorld = b2Vec2(p.x/PTM_RATIO, p.y/PTM_RATIO);

// ANIMALタグだけを取得
CCArray* spritesWithTag = lh->spritesWithTag(ANIMAL);
CCObject* data = NULL;
CCARRAY_FOREACH(spritesWithTag, data) {
// スプライト取得
LHSprite* spr = (LHSprite*)data;

// スプライトがタッチされたかどうか?
if (spr->isTouchedAtPoint(p)) {
// スプライトに付与されているBodyを取得
b2Body* b = spr->getBody();
b2MouseJointDef md;
b2BodyDef groundBodyDef;
b2MouseJoint* mouseJoint;
b2Body* groundBody = world->CreateBody(&groundBodyDef);
md.bodyA = groundBody;//ground Body
md.bodyB = b;
md.target = locationWorld;
md.collideConnected = true;
md.maxForce = 1000.0f * b->GetMass();

b->SetAwake(true);

// ジョイント取得
mouseJoint = (b2MouseJoint *)world->CreateJoint(&md);
return mouseJoint;
}

}

return NULL;
}
////////////////////////////////////////////////////////////////////////////////
// マウスジョイント移動処理
void HelloWorld::setMouseTarget(CCPoint p) {
if (mouseJoint) {
mouseJoint->SetTarget(b2Vec2(p.x/PTM_RATIO, p.y/PTM_RATIO));
}
}
////////////////////////////////////////////////////////////////////////////////
// マウスジョイント破棄
void HelloWorld::setDestroyMouseJoint() {
if (mouseJoint) {
world->DestroyJoint(mouseJoint);
mouseJoint = NULL;

}
}

とあるプリクラ業界での壮絶体験!第3話:肩が痛いので休みます

前回は金髪でライダースーツ来て、Repsolで出勤するサングラス野郎をご紹介しました。
今回の人は僕の師匠です!

プリクラにはテストモードと呼ばれるゲームの設定の管理や、ストロボ発行のテストなど、
ハードウェアの確認をするものがあります。

その設定画面をその人から引き継ぎました。
最初の師匠ですね!

でもこの人もやっぱり曲者でした(^_^;)
その人の特徴をざっとご紹介!

・顔は中国人っぽい(ラーメンマンみたいなw)
・髪型は笑い飯の西田っぽい
・カメラに絶対に写らない(←本人曰くが抜かれるらしい…)
・上記の理由でプリクラなのに一度も撮影テストしたことない
・韓国語ペラペラ

そして一番びっくりしたのがこれだ!

肩が痛いので休みます

この人も重役出勤なのか、昼過ぎぐらいに出勤が日常でした。
いつもの時間に来ないな〜と思ったらメールが来て、
「肩が痛いので休みます」とそれだけのメッセージ!

次の日も、「今日も肩が痛いので休みます」
「今日も」って何やねん!!

久々に出勤してきたと思ったら、「肩が痛いので帰ります
何もしてないやん!

後半だんだん面倒くさくなってきたのか、メールの文章が全て定型文的な感じになってましたw
もう変な人ばっかり(´Д⊂ヽ
トラブっても昼過ぎや夕方にしか来ないので、無駄に残業したことも(^_^;)

ある日突然、仕事を辞められて今は元気に韓国でお仕事しているらしいです。

まだ続きます!
変な人居てますよ〜


誰も取り上げないから自分で取り上げるアプリ:指先引越センター

どこのサイトも取り上げてもらえず、
完全に埋もれてしまった自分のアプリや誰かのアプリを自分で取り上げようというコーナーです。
不定期に掲載していきますよ!

今回はこのアプリだ!

指先引越センター 1.0.0(無料)App
発売日: 2012/05/23
カテゴリ: ゲーム, アーケード, アクション
販売元: fuate Co., LTD. - fuate Co., Ltd.(サイズ: 4.8 MB)
全てのバージョンの評価: (13件の評価)
GameCenter対応


s_20130207_5.png
この家具が割れる処理もLevelHelperで出来ちゃいます!

このやり方も後日紹介します!

s_20130207_6.png
小刻みにタッチして家具を運ぶ!
結構難しいのよこれが!

s_20130207_7.png
トラックに無傷で3つの家具を運び終えるまでのタイムを競い合います

とあるプリクラ業界での壮絶体験!第2話:金髪Repsol野郎

前回は会社のPCでWi◯nyをやってどや顔している上司のお話でした。
今回はその派遣先のソフトウェアの統括している人のお話です。

この人が居なかったらデカ目が生まれなかったかもしれない。
一番最初にこのプリクラ屋が撮影終了時に目をいじったりする加工を施した事で有名らしいです。
今では目を認識してサギプリなんていい方をするようですが(^_^;)

この人がそのシステムを開発して真っ先に導入したんで、
もうソフトウェアに口出しは一切出来ないんです。
なんで、かなり自由奔放な人でした!

この人が出社してくると一気に空気が締まる異様な感じになります。
全員がピリピリムード!
誰も何も言えません。

彼の特徴はこんな感じ!
・頭が金髪(たまにシルバーにもなる)
・サングラスかけて恐ろしい
・理不尽な事でキレる
・自分に絶対の自信を持っている
・ゲーム開始するのにお金の投入する所を知らない
・出社する時間は昼過ぎ!しかもたまにしか来ないので、作業が進まない(´Д⊂ヽ
・この人の自己中で何日も家に帰れなかった
・HONDAのレプソルというバイクに乗っていた
 s_20130207_4.png

いや〜すごい人でしたよ(´Д⊂ヽ
どんだけ辛い思いをしたか…
でもかなり精神は鍛えられましたね(・ω<)

個性的な人はまだまだ居てます!
次回に続く!!

AppStoreとGooglePlayの違いはこれだ!噂のエラーコメント画面も見せちゃうよ

AppStoreとGooglePlayマーケットにアプリを出してみて、
色々気がついた点などを挙げていきます。

AppStore
・年間契約(¥8,800)
・アプリを出すのに審査がある(2013年2月現在1週間で審査が通ります)
 何をするにも時間がかかる
 Appleが冬休みで審査が行われない事がある
・審査が鬼のように厳しい!
 くだらないアプリ(html5でやれ!)やお下品(おならやうんこ)なアプリはリジェクト!
・ダウンロード数は多いかも
・ランキングに埋もれると復活はほぼ絶望的
・機種依存がない

GooglePlay

・契約金は最初だけ!(¥2,500ぐらい?)年会費もなし!
 これさえ払えばどんなアプリでも何本でも出せる!
・審査が無い!
 アプリが出来れば登録して半日ほど待てば全世界に配信出来る
・どんなアプリでもリリース可能!
 iPhoneでは出せないうんこアプリなども出せちゃうw
 でも度が過ぎるとGooglePlayから排除されることも!
・ヒットするとランキングに継続して生き残れる
 2年前にリリースしたアプリでもゲーム総合100位以内に残れることも!
・コメントが便所の落書き
 通常のコメントの他にもエラー発生時にコメントがデベロッパーに送信出来ます。
 それはデベロッパーしか見られないので、完全匿名なため「死ね!」とか日常茶飯事
・広告SDKが組み込みにくい
 xmlを使った広告SDKを導入しているものがあり、androidの細かい事を知らないと組み込みにくい
・機種依存が半端ない!
 画面解像度の違いにOSのバージョンでもかなり違う!
 全部カバー出来ないので放置!
・10M以上のアプリ容量はSDカードに移動出来るようにすること
 本体のメモリが少ない機種もあるので、SDに移動出来るようにしておくとベスト!
・他のマーケットにもリリース出来る!
 AmazonAppStoreやauマーケットなどGooglePlay以外のマーケットにも出せる

ここでGooglePlayの管理画面を大公開!
噂の便所の落書きも公開するよ!

s_20130207_0.png

s_20130207_1.png

s_20130207_2.png
s_20130207_3.png

こんな感じです!
@UeharaLaboさん如何でしたでしょうか?

[新作] アニマルどっち?を本日リリースしました

アニマルどっち?という新作アプリをリリースしました!
今回もcocos2d-xとLevelHelperで作りました!
ありがとうございます!

このアプリはLighty JapanというNGO団体から動物のデザインを頂き、
勝手にコラボした作品です。

Lighty Japnaは僕が個人で出している京阪バス時刻表チェッカーというアプリが凄く便利だ!という所から出会いが始まりました。

いきなりメールが来て、「アプリが作れるって事はパソコン得意ですよね?私が運営しているNGO団体のホームページ作って欲しい!」と言われました。

えらい唐突やなぁ〜と戸惑いながらも、
レンタルサーバー借りたり、ドメイン取ったり、メールサーバー構築したり(^_^;)
これ業務やったら相当お金貰うのに…
まぁ勉強ついでのボランティアって事でそのホームページを作ってからの付き合いです。

とある日に知り合いのデザイナーが動物のイラストを描いてくれたからアプリ化を頼まれました。
それで、今回会社にも何も言わずに勝手にコラボして作りましたw

良かったらダウンロードしてみてください!

iPhone版

アニマルどっち? 1.0.0(無料)App
発売日: 2013/02/06
カテゴリ: ゲーム, キッズ, エンターテインメント, アクション
販売元: fuate Co., LTD. - fuate Co., Ltd.(サイズ: 5.3 MB)
全てのバージョンの評価: 無し(0件の評価)
GameCenter対応


Android版

アニマルどっち?
fuate Co., Ltd.
リリース日:2013/01/31



とあるプリクラ業界での壮絶体験!第1話:Wi◯nyを仕事中にする上司

今回から新連載!
僕が二十歳のころから4年間お世話になったとあるプリクラ業界に派遣社員として行ってきた時の話です。

専門学校を卒業して小さな会社に就職したのですが、
いきなりプリクラを作っている会社に派遣社員として派遣されました。
派遣だけは嫌だったのに!

壮絶な派遣先でした(´Д⊂ヽ

Theブラック企業とは正にこの事!
いきなり行ってビックリしたのは部屋に二段ベッドがあるではないですか!
もう残業バリバリあるよっていう意味でしたね(^_^;)
(この二段ベッドには後から大変お世話になるw)

入って直ぐプログラムなんて出来るわけでも無く、
派遣されてから1年半ぐらいまではアルバイトと共に作ったプリクラのテスターがメインの業務でした(´Д⊂ヽ

プリクラは様々コースや明るさ、写りがあり、テストするのも大変です!
スタンプが全てのサイズ、全ての種類が正しく表示されるか、
ペンが全ての色、太さが出るかどうかのテストなど、一日では到底終わらないようなテストばかりでした。
それでもやりがいがあって、楽しい職場でしたね♪

今回はその派遣先の直属の上司のお話です。
その上司は係長の立場で、いわゆる中間管理職でした。

その係長がかなりのポンコツで、
仕事もしてるのかしてないのかよくわからない!

とある日、僕が何気なく当時流行っていたWi◯nyを紹介したんです。(←言うんじゃ無かった)
すると上司がやたらと食いついて、次の日から偉いことになりましたw

「おい!がおまる!共有フォルダに音楽保存しておいたで!」
とどや顔で言ってくるでは無いですか!
言われたフォルダを覗いてみると、当時のオリコンチャートをご丁寧に週ごとに分けられたTOP10フォルダがあるではないですか!

まさかここまでやっているとは(^_^;)
上司が席を外した時にたまたまPCを見てみると、
Wi◯nyのアイコンが右下に常駐している!

この人会社のパソコンで、Wi◯nyしてるぞ!
開いた口が塞がりませんでした(´Д⊂ヽ
この後もず〜とやり続けていたのは言うまでもありません。

今もヘタしたらやってるかも!?

こんな感じで個性的な人たちと次々出会っていきます。
不思議なキャラクター勢揃いですな(´∀`*)ウフフ
好評やったら続きます!

ナースと付き合うまでにやった◯◯な事!番外編:東大阪市役所での告白

前回は婚活バスツアーで今付き合っている彼女との出会いまでのお話でした。
今回は番外編として告白するまでのお話です。

彼女のデータを大公開!
・ナース
・僕より一回り上(恋愛に年齢は関係ない)
・インスタントラーメンを最近食べたらしい(シーフードヌードルを食べて感動したようだ)
・冷凍食品も最近食べたらしい
・一人っ子
・猫を2匹飼っている(20年以上生きている)
・ニーソを履いてくれた(←最大のポイント)

婚活バスツアーから二日後に、大阪の時空の広場で待ち合わせることに。
この日は普通にお茶して、僕のせきららな過去の恋愛などを話して過ごしました。

やっぱ可愛い!
めちゃタイプやわ(´∀`*)ウフフ

次の週末に早速初デートに誘います。
車で迎えに行って、箕面の夜景を見に行くことに。
まず近所のレストランで腹ごしらえ。

お互いの情報やら、どんな奴なんかを紹介し合います。
ピザとカルボナーラ食べて満腹です!
その後夜景を見るため、箕面の滝を目指しますが、ソッコー道に迷う(^_^;)
スーパー格好悪い姿を晒してしまい、そのまま当てもなくドライブをすることに。

結構緊張していて何を喋っていたかあんまり覚えてないな〜

そして3回目のデートです!
会社の近くの沖縄料理で食事をした後、
車で夜景のリベンジをします。

この時彼女はニーソを履いてきており、
心のなかでキタ━(゚∀゚)━!と叫んでました。
ニーソには目がありません(∩´∀`)∩ワーイ

大阪のオススメ夜景ポイントである、東大阪市役所の22階展望フロアです。
ここは人も少なくて大阪が一望出来る最高のポイントです。

初めて行ったのですが、本当に誰も居ません!
しーんと静まり返るフロアで男女が夜景をバッグに居てるとだんだんと気持ちが高ぶってきました。
そっと彼女の肩に手を置いて、ギューっと抱きしめてしまいました。

そっと耳元で大好きです!と行って告白しました。
すると彼女もうんと頷いてくれました。
そこで、初キスをします。

そして、この日からお付き合いするようになりました。

そのまま今まで喧嘩もしたけど、2年近くお付き合いが続いています!
この人と将来を共に過ごしたいと本気で思っています。
あの時バスツアーに行って本当に良かった〜

皆さんも迷ったら行動あるのみです!
これで本当に、ナースと付き合うまでにやった◯◯な事!の話はおしまいです。
暖かく見守ってください〜

AmazonAppStoreってどやさ!ダウンロード数も大公開!

AmazonAppStoreってどんなもんなんでしょう。
そんな皆の気になる疑問に全力でお答えします!

そもそもAmazonAppStoreとは、Amazonが独自に展開しているGooglePlayマーケットみたいなものです。
AmazonAppStoreにアプリを出すのは簡単なんですが、
アプリを出すにはAmazonが行う審査に合格しなければなりません!

大体審査は4〜5日かかります。
基本的にはGooglePlayと同じ物をリリースすればOKなのですが、
この条件は絶対に守らないといけません!

後、管理画面が全部英語なので萎えます(´Д⊂ヽ

GooglePlayへのリンクは絶対NG!

かなり細かい所までチェックしているようで、GooglePlayへのリンクが残っていれば
すかさずリジェクト対象になります。
逆にこれさえ守れば誰でも無料で出すことが出来ます。

しかしappCなどの成果報酬型の広告を導入している方は注意が必要です!
あれはGoogle経由でインストールされたかどうかチェックしているので、AmazonAppStoreは対象外!
リンク先もGooglePlayなのでどうせリジェクト対象です。

日本のみのリリースでも説明文に英語が必要

日本のみのリリースでもアプリ情報には英語に翻訳したものを載せないといけません!
スクリーンショットは別に日本語でもOKでした!
説明文を英語にするだけなんで、Google先生に翻訳してもらったものを掲載しました。
日本だけだし、日本語で申請したら思いっきりリジェクト食らいました(^_^;)


では、気になるAmazonAppStoreのダウンロード数を大公開しましょう!
現在出しているアプリは3つです。

第3位 338ダウンロード

プラマイ電池
fuate Co., Ltd.
リリース日 2013/01/14



第2位 445ダウンロード

指先リフティング
fuate Co., Ltd.
リリース日 2013/01/15



第1位 1,712ダウンロード

ぶっ飛び!車でハンマー投げ!
fuate Co., Ltd.
リリース日 2013/01/10


やっぱり人気ですねこれ。
このダウンロード数で人気無料ゲーム部門ランキングで27位!(人気順に並び替えて手で順番に数えたw)
まだまだ他の人気アプリに混じる事が可能です!

内訳はこんな感じかな〜
Amazon.co.jp 1,003
Amazon.co.uk 125
Amazon.com 570
Amazon.de 14

結構皆様子見状態なのかしら(^_^;)
もう一本申請しよっと♪

ナースと付き合うまでにやった◯◯な事!最終話:婚活バスツアーに参加!そして運命の出会い

前回は初めての彼女が出来て、別れた話をしました。
今回はいよいよ今お付き合いしている彼女との出会い編です!
これで今回の話の最終話かも!?

もうグロい話はないので、ただのリア充話だと思って温かい目で見てください。


初めての彼女の壮絶な別れを経て、
女性不信に陥りながら、お見合いパーティに行こうか迷っていた所にとある番組で婚活バスツアーの特集が始まりました。
特に興味は無かったんですが、今までのお見合いパーティと違った所に行こう&話のネタになるという
安易な気持ちで参加してきました。

運命の出会いを果たす婚活バスツアーはこれだ!

ハピネスツアー
参加条件がゆるゆるで、22歳〜40歳ぐらいまでの独身という事だけ!
参加費が1万円以上と今までのお見合いパーティに比べると結構な値段がします。
でも至れり尽くせりなバスツアーです!

ほぼ毎週のように行われており、
行く場所も様々で結構面白い内容になっています。

初の婚活バスツアーで運命の出会いを果たします。


あれは2011年の8月21日(日)大雨の日でした。
この時も雨男パワー全開!
梅田でバスを待ちます。

参加人数は男性女性合わせて21人ぐらい居たかな〜
ちょうど男女比11:10ぐらいだったと思う。

座席は既に決められており、僕が座った隣にはツアー参加の女性が既に座っていました。
この人ではないですw
梅田の次は京都へツアー参加者をピックアップしていきます。
その移動時は強制的に隣の人と話す事ができます。
また、京都まで微妙に遠いので、隣の人とかなり話することが出来ました。

当然、ネタは今までの僕の恋愛話www
貢いだ女性の話やネズミ講まがいの女性とネタは付きないので、
京都まであっという間でした。

目指す場所は滋賀県にある彦根城です。
彦根城の散策後は伊吹山ドライブウェイで頂上まで行くという流れでした。

ツアーの流れは、プロフィールカードを書いて席を移動していき、
全員と会話し終えるまで回転寿司形式で男性が回っていくものでした。
しかし、このツアーの最大の特徴は、連絡先の強制交換

小さな紙に携帯の電話番号とメルアドを書いて
強制的に交換することができます。
今までのお見合いパーティにように5千円払って一度の会話で連絡先も何も成果物がないってやつよりも
かなり得るものがありました。

そりゃ連絡先交換は抵抗あるかもしれませんが、
やっぱり結婚っていうかなり本気のツアーなんで、やることが大胆って思いました。

最後まで会話する前に彦根城に着いたので、
残りの人とは場所を移動してからとなりました。
昼食前にまだ喋ってない人と会話が再開します。

そこでいよいよ今の彼女との最初の出会いです。
初めて見た時に松田聖子じゃないですけど、「ビビビッ」と来ました!!
めちゃタイプの人や!と思って自然と目で相手を追いかけてしまいます。

昼食の時ランダムで席が選ばれていたのですが、
偶然にも隣同士になることが出来ました!

彦根城にある良い感じのレストランで昼食なのですが、結構量も多くて
かなり料理も美味しかったです!ホンマただの観光旅行で行っても良いぐらいですね♪
その後、城下町の散策にうつります。

彼女と一緒に散策したかったのですが、
見失う(´Д⊂ヽ
後、友達と一緒にツアーに参加していたらしくそのまま2人で何処かにいってしましましたw

僕はしぶしぶ適当に他のツアー参加者とぶらぶらすることに。
彦根城は行ったこと無かったんで、ほんま観光してただけですなw
続いて伊吹山へ移動!

そこから更に大雨になって偉い事なりました。
伊吹山に着いて、山頂に登るプランだったのですが、大雨で登山道がぐちょぐちょになっていました。
流石に登るのは諦めて、喫茶店で休憩することに。

すると彼女も喫茶店にいるではありませんか!
僕は勇気を振り絞って声をかけました!

「ご一緒に座ってもよろしいですか?」

めちゃドキドキしたw
そのまま他の参加男性(←邪魔)と彼女と彼女の友達の4人で色々と喋ってました。

彼女に後から聞いてみると、あの時話しかけてくれたから気になったと言ってくれました。
もし、あの時話しかけなかったらこの出会いは無かったかもしれません。。。

最後は自由に席を移動して会話出来たのですが、
最初話した隣に居た女性が友達に僕の過去の経験の事を聞きたいと言われて、
その人にずっとしゃべってましたwww

そしていよいよ、気に入った女性の番号を書いて投票する時間になりました。
ここのシステムは第5希望までの女性の番号を書いて、上位希望同士がカップル成立となるシステムです。

結果は無事その彼女とカップル成立でした!
そして大阪まで着いたのですが、その日は遅かったのでそのまま帰りました。
家に帰ってから今度別の日に一緒にお茶をしようと約束を取り付けました。

そして、デートを重ねてお付き合いするようになって、
現在に至ります。

これが彼女との運命の出会いまでのお話です。
これがナースと付き合うまでにやった◯◯な事!の全貌です。

如何でしたでしょうか?
婚活バスツアーオススメですよ♪
興味ある方は是非参加してみてね〜

次は二十歳の頃の凄まじいプリクラ開発の話でも書こうかしら?
興味あるか知らんけどw

先月のダウンロード数TOP5を大公開!2013年1月

先月(2013年1月)のダウンロードTOP5を大公開!
現在出しているアプリでiPhoneとAndroidそれぞれのダウンロード数TOP5の発表ですっ!

ではさっそく!
iPhoneアプリから!

第5位 2,273ダウンロード

解錠の達人 1.1.0(無料)App
発売日: 2012/11/27
カテゴリ: ゲーム, アーケード, パズル, エンターテインメント
販売元: fuate Co., LTD. - fuate Co., Ltd.(サイズ: 4.1 MB)
全てのバージョンの評価: (25件の評価)
GameCenter対応

ヌメロンが放送されるたびにランキングが上下しますw
Android版では995ダウンロードでやっぱりiPhone強し!って所ですね。

第4位 2,621ダウンロード

ボールで壁当て 1.1.0(無料)App
発売日: 2012/11/13
カテゴリ: ゲーム, スポーツ, エンターテインメント, アクション
販売元: fuate Co., LTD. - fuate Co., Ltd.(サイズ: 3.5 MB)
全てのバージョンの評価: (25件の評価)
GameCenter対応

スポーツゲームはなんだかんだで強いですなぁ〜
手軽に出来るのが良いのか?
でももう少しダウンロード数伸びてほしい所ね
因みにAndroid版は985ダウンロードで全くダメ!

第3位 5,046ダウンロード

ぶっ飛び!車でハンマー投げ! 1.4.0(無料)App
発売日: 2012/03/14
カテゴリ: ゲーム, アクション, スポーツ, エンターテインメント
販売元: fuate Co., LTD. - fuate Co., Ltd.(サイズ: 3.9 MB)
全てのバージョンの評価: (8,927件の評価)
GameCenter対応

これホンマ根強いわ!
ウチのNo1ヒットアプリ!
そろそろ2を作ってみたいなぁ

第2位 5,221ダウンロード

金魚すくいアプリ 1.1.0(無料)App
発売日: 2012/03/24
カテゴリ: ゲーム, アクション, スポーツ
販売元: fuate Co., LTD. - fuate Co., Ltd.(サイズ: 5.4 MB)
全てのバージョンの評価: (1,281件の評価)
GameCenter対応

夏場のアプリが第2位!
何故か人気がありますね!
これはまた夏祭りが楽しみだ(∩´∀`)∩ワーイ

第1位 15,125ダウンロード

指先リフティング 1.4.0(無料)App
発売日: 2012/04/06
カテゴリ: ゲーム, スポーツ, スポーツ, アクション
販売元: fuate Co., LTD. - fuate Co., Ltd.(サイズ: 5.8 MB)
全てのバージョンの評価: (3,969件の評価)
GameCenter対応

まだまだ大人気のリフティング!
多分先月高校サッカーの決勝戦があったから更にダウンロードされたのかも?
でもこれAndroidではTOP5にも入らないのよね(^_^;)
iPhoneで出して良かった♪Androidでも流行れ!!



続いてAndoridのTOP5です。

第5位 995ダウンロード

解錠の達人
fuate Co., Ltd.
価格:無料  平均評価:3.0(7)


iPhone同様、ヌメロン効果でしょうか?
でもダウンロード数は微妙です(^_^;)

第4位 1,110ダウンロード

超越カージャンプ!
fuate Co., Ltd.
価格:無料  平均評価:0(0)


この前出したばっかりで第4位に!
アプリゲットというサイトに掲載されたのが大きかったかも!?
面白いからやってみてね♪
ランキングも対応よ!

第3位 2,178ダウンロード

うんこアプリ
fuate Co., Ltd.
価格:無料  平均評価:3.8(126)


iPhoneでは絶対にリジェクト対象のアプリです。
Androidだから出せちゃうんですね♪
これ実は結構こってて、システム日付に応じて様々なテーマに変わります。
今はバレンタインテーマが出てることかと♪

第2位 2,656ダウンロード

金魚すくい 無料版
fuate Co., Ltd.
価格:無料  平均評価:3.6(134)


Androidでも大人気の金魚すくいです!
iPhone同様第2位に!

実はこれ、広告なしの有料版も配信しているのですが、
今までのダウンロードは140ダウンロード!
どれだけ有料アプリが厳しいか分かりますよね(^_^;)

第1位 4,654ダウンロード

ぶっ飛び!車でハンマー投げ!
fuate Co., Ltd.
価格:無料  平均評価:3.8(113)


やっぱり大人気ですね♪
去年の11月にcocos2d-xに対応してから更に継続してダウンロードされています。
しかし面白いデータもあります。

AndroidにはiPhoneと違いアンインストール数も分かってしまいます。
どれだけインストールされているか一目瞭然!

ダウンロード数:4,654
アンインストール数:15,362
インストール数:28,617/146,447 (インストール率:19%)

ダウンロード数多いぜ!とか思っていても実際に端末にインストールされている数が分かると
結構悲しくなります(´Д⊂ヽ
iPhoneも数万ダウンロードとか喜んでても実際に端末に入っているインストール数がもしも
分かっちゃうと恐ろしくなりますね((((;゚Д゚))))ガクガクブルブル

ナースと付き合うまでにやった◯◯な事!第5話:初めての彼女

前回はお見合いパーティに行って、ネズミ講まがいな女性と出会ったお話でした。
今回はお見合いパーティで知り合って、初めての彼女が出来たお話です。

懲りずにほぼ毎週のようにお見合いパーティに行ってました。
当然毎週行っていたので、先週も居たぞ!とか、前にも来てたなぁ〜というのがあり、
段々かぶってくるようになって来ました。

当然前にも話したので、次あった時は気まずさMAX!
それだけ必死だったんだなぁ(^_^;)

以前カップルになって実際あって相性が合わなくて放置していた人とも
またお見合いパーティで出くわして最悪な空気になった事もありました(´Д⊂ヽ

まぁ〜悪いことばっかりではありません!
ある日またお見合いパーティに行くと、出身地とかもプロフィールカードに書くので、そのから僕は話を広げていきます。

するとめちゃ地元から参加しており、僕の街の隣の駅から来ている女性でした。
当然話も弾んで、デートをするようになりやがてお付き合いをすることに!
この人が僕の人生で最初の彼女です。←今の彼女ではないです。

27歳で初彼女…

やっと手をつないだり、初キッスが出来ました。
キスが甘酸っぱいって本当だったんですね〜
家が近いので、週2ぐらいで会ってました。

付き合い始めて1ヶ月ぐらいたってから、
彼女から友達がボクサーでその試合があるから一緒に見に行こうと言われました。
全然ボクシングに興味無かったんですが、渋々見に行くことに。。。

会場に着くと異様な空気!
輩の怒号が響いて凄まじい感じでした(^_^;)
でも有名なボクサーも観戦に来ていて、そこはちょっと興奮しましたね〜

座席に座ると隣同士では無く、通路を挟んで座ることに。
↑多分後から考えるとこれが別れの原因だったんかな?

他の座席は空いていたので、客が来るまで隣に座れば良かったんでしょうけど、
ルールを守るのが質なんで、離れたまま観戦してました。
そのまま試合も終わって帰ることに。

帰りの車の中は何故か彼女が一言も喋らず…
めちゃ重い空気の中帰ったのを覚えています。
やっぱ怒ってたよな

すると毎週のように会っていたのに、
この後から徐々に仕事が忙しいを理由に合わない日が増えて来ました。
理由を聞いても仕事が忙しいの一点張り。。。

どうやら冷めたらしいです。
ある日メールが来て、大事な話があるから近くのファミレスまで来てほしいとの事。
そこで別れ話を切りだされました。

彼女曰く、100%価値観が一緒じゃないと嫌だからもう別れるというのが理由だそうです。
何か彼女の中で僕では無かったようです。
だいたい男女頭の構造も違うので、100%価値観が一緒な人間なんてこの世に存在しないし、
そんな奴がおったら気持ち悪いし、人間違うから良いのではとか頭の中でグルグル思ってました。

そのまま別れを告げて、家でショックを受けていると、
一通のメールが届きます。
相手はさっきまで話をしていた彼女からでした。

件名をみると、「がおまるうざい!」
メールを読んでみると、恐らく彼女の友達宛に送る内容のメールが間違って僕に送信したのでしょう。
本当の嫌な理由などが書かれた別れたばかりの人間には衝撃的な内容のメールでした。
そこに真実が全て書かれていたからです。

最後に、「一生パーティ行ってろ!」という言葉で締めくくられており、
あぁ〜そんな事思ってたのかとショックを通り越して、なんて汚い言葉を使う最低な人なんだと思いました。
別れて正解だと確信。

こんな感じで人生初の彼女とは1ヶ月ちょっとのお付き合いで幕を閉じました。
精神もズタボロですわ。
この後も暫く女性不信になり、お見合いパーティも行かなくなりました。

しかし、ある日テレビを見ていると、お見合いバスツアーなるものの特集がやっていました。
何故かやけに気になって、思い切って参加してみることにしました。
これが今の彼女との運命の出会いになっていきます。

次回からようやく今の彼女との出会い編です。
お楽しみに!

Androidでスコアセンターを使ってみた!

AndroidにはiPhoneのようなGameCenterが無く、
スコアの共有がなかなか出来ません。

過去にも様々なサービスを使って試したのですが、
どれも使い勝手が悪かったり、アプリの登録認証に時間がかかったりして、
思うようなサービスがありませんでした。

過去にも自分でGoogleのGAEを使ってスコアセンター作ってやっていたのですが、
仕様が変わって、結構お金とられるようになったんで諦めていました。

そんな時、マルジュさんがかなり良い感じのスコアセンターを導入していたので、
ず〜っと良いなと思っていました。
思い切って担当者にツイッターでフォローしてSDKってもらえますか?と聞いてみると、
年明けに使えるようにするので、公開出来るようになったら真っ先に連絡します!と言われました!

それで第1クライアントに選ばれて、スコアセンターを導入してみた感想です!!
まだ登録画面がないようなんで、どうしても使ってみたい!っていう人はマルジュさんに連絡してみては?
↑スコアセンターの登録画面が出来た模様です!
こちらから登録してください!

管理画面が素晴らしい!

直感的で素晴らしい管理画面です!
s_20130203_0.png

アプリを登録して、次にスコアボードを登録します
s_20130203_4.png

登録されたスコアの編集ができますので、
あり得ない数値が不正に上がってきた場合にも対処が可能です!

ユーザーから見たスコアボード画面

実際に導入しているゲームのスコアボードはこんな感じです。
s_20130203_5.png

好きなユーザーIDとパスワードを入力するだけ!
登録はかなり簡単です。
s_20130203_6.png

好きな写真、ニックネームを自由に変更可能です!
s_20130203_7.png

順位と各スコアが見られます
s_20130203_8.png

過去にもRankParkとか使っていたのですが、
不具合があったりでアプリが落ちたり、どえらい目にあいました。
もう最近は修正されたようですが、アプリ登録認証で時間がかかったり、管理画面がひどいので、
もう今は使ってません。

もしこのスコアセンター使ってみたいって場合は
マルジュさんにでも連絡してみては?
つーかマルジュはアイコン型広告もして、スコアセンターもしてアプリも作って、
手広くやり過ぎですな〜

ナースと付き合うまでにやった◯◯な事!第4話:お見合いパーティ復活!そしてネズミ講まがいな女!

前回はありえないほど貢ぐ愚かな漢の話をしました。
今回は別れてからの話です。

ここからは少し平和になりますが、
まだ今付き合っている彼女とは出会いません。
ちょっと長文ですが、宜しくねw


前回の衝撃的な出来事の後、暫く女性不信が続きました。
もうこのまま一生彼女も出来ず、女性というものを知らないまま年を越すのかと一瞬よぎります。

しかしどこかでこのままではいけないという気持ちが溢れ、居ても立ってもいられなくなり、
再度お見合いパーティに行くことにしました。

以前まで利用していたお見合いパーティは諦めて、
今回からは個室でゆっくり話せる業界最大手のエク◯オという所を利用しました。

このシステムは個室と行っても、完全に部屋に別れるわけではなく、
二人掛けの机に向かって話し合うものでした。

1人長くて5分、短くて2〜3分でお互いのプロフィールカードを交換していき、
話が終わると男性が席を移動して次の女性の元に回転寿司形式で流れていきます。
女性、男性共に胸には番号札が書いてあるので、
気に入った女性の番号をメモしていきます。

最終的に第5候補ぐらいまで好きな女性の番号を書いて、
候補が高い順にお互いに番号を指名していれば晴れてカップル成立です。

その場で結果がわかるので、自分が良いな〜と思った女性が誰を指名したかが一目瞭然!
まぁ男性の顔はせいぜい移動時に前後の番号の人しか分からないのであんまり意味ないですが、
前後の番号を指名してカップルになっているのを見てるとムキーってなりますw

そりゃ自分がカップル成立すれば( ・´ー・`)どやってできますがw

■メリット
・全員と確実に話すことができます
・前回のシステムのように椅子取りゲームをしなくてもよい
・プロフィールカードで話のネタにも困らずにいける(ギリギリに来て何も書かない女性も居ましたがw)

■デメリット
・男性が移動して直ぐに次の女性と会話なので、メモをとる時間がない
・女性も次々現れる男性が把握出来ずに終わる事が多い
・参加人数が多い場合2分で終わるので、何もアピール出来ずにおわる。
・一度しか会話が出来ないので、あの人どうやったっけと思っても二度と確認出来ない

ちょっとデメリットの方が多くなっちゃいましたが、
結構慣れるまで厳しいです!

このお見合いパーティにはポイント制度があり、
一回パーティに参加すると100PTがもらえます。(100PT→100円)
500PT毎に使えるので、貯めれば貯めるほど格安でパーティに参加できる事ができます。

月に2回〜3回いったので、ポイント貯まりまくって、タダで参加したことがありますw
だってパーティ参加費すごいですよw

男性は4,500円〜6,000円とかです。


毎週謎のクイズが出題されて、そのクイズに正解すると3PTもらえます。
ツイッターをフォローすると毎月100PT
3日前ぐらいまでに予約すると早期予約ボーナスで800PTもらえます
パーティ参加で更に100PT、クレジットカード支払いで更に100PTもらえます。

なので、一度のパーティ参加で1,000PTもらえます。


パーティはこんな感じです。
ここから本題!

そのパーティに参加して何度か会って、
また凄い人と出会っていくのですよ。

■ネズミ講まがいの女性

特にカップル成立したわけではなかったのですが、
いきなり会話終了時に紙を渡されて、「良かったら友達になりませんか。」とメルアド付きの紙をもらいました。

こんなこと初めてだったんで、傷もだいぶ癒えていたので、
軽い気持ちで女性にメールをしました。
最初は普通にご飯食べて前回のような人ではないと安心していたのですが。。。

何故かとある人に合わせたいと言い出してきました。
話を聞いてみると、その人は彼女の凄く尊敬する人で、1人で会社を立ち上げて大成功した人なの!
今度会ってみない?

まぁ会うぐらいならええか〜と思って、
会いに行きました。
てっきり女性の友達かと思ったら男性で、なんか成功者って感じの人でした。

まぁ最初は自己紹介から始まって、ビジネス論やら
自分が成功した話、自慢話を永遠聞かされましたよ(´Д⊂ヽ
その日はそれでわかれたのですが、またとある日に別の人にまたあって欲しいと言われました。

どうやらそれはその最初会った男性の先輩だそうで、
その人も成功して起業してたりするようです。

なんでこう次々成功した人に合わせるのだろうとちょっと疑問に思う程度でしたが、
後から考えるとネズミ講まがいのやり口だったんだなぁ〜と思いました。


また別の日に最初に会った男性と会うことになり、
今度はとある人が書いた本が僕の教科書だ!とか言い出して、
なんか買わせようとしてきました。

僕は本が嫌いなので、全然興味無かったのですが、
帰り際一緒に居た彼女がちょっと本屋に寄ろうと言い出して本屋によることに。

それで何故か話題に上がった本の前に連れてこさせられ、
これだよ〜さっきの本!読んでみない?って言われ、
特に断る理由も無かったので、買ってしまいました。


帰ってその本を途中まで読むと、
成功するためには最終的にネズミ講みたいな事をしろ!というネズミ講を助長する内容の本でした。
途中で読むのをやめて、もうその彼女とは距離を置くことにしました。

色々ググるとその本を購入することで大きな団体にお金が入るとか、
あんまり良くなさそうな事が書いてありました。
(この本を知ってる人はすみません・・・一個人の感想ですので!)

ちょっとゾッとして、パーティで忙しいから会えないみたいな事をさらっと言って、
もう彼女とはそれっきり合わなくなりました。


なんか会う女性、会う女性何か曲者ばっかりですわ(^_^;)
今回はここまで!

次回は、パーティで知り合って初めて彼女が出来るという話です!
でもこれは今の彼女では無いですw
またまたこれも曲者でしたwww

次回をお楽しみに!多分後2回ぐらいかな〜

cocos2d-xにアスタを導入してみる:Android編

前回はiOS編のアイコン型広告の導入方法を解説しました。
今回はAndroid版を解説します。

前回の記事を参考にして、
新規で広告枠を作成してSDKと識別コードを取得しましょう。

s_20130202_0.png

Android用のメディア識別コードをメモってください
s_20130202_1.png

続いてEclipseを起動して、
SDKをプロジェクトに追加します。

ビルドパスの構成を選択
s_20130202_2.png

s_20130202_3.png

s_20130202_4.png

s_20130202_5.png

次にアイコン設置用のレイアウトファイルを新規で作成します。
layoutで右クリックメニューを開いて新規でxmlファイルを作成します。

その他を選択します
s_20130202_6.png

s_20130202_7.png

今回は「icon.xml」としました
s_20130202_8.png

これで作成されました。
s_20130202_9.png

次にこのファイルを編集していきます。
icon.xmlを開いてください

下記のように書き換えます
これはアイコン1つ分の領域と考えてください。

<?xml version="1.0" encoding="UTF-8"?>
<view
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="80dp"
android:layout_height="80dp"
class="jp.maru.mrd.IconCell"
/>



次に「AndroidManifest.xml」を編集します。
ネットワーク接続するので、権限の追加をします。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jp.co.fuate.gaomartest"
android:versionCode="1"
android:versionName="1.0">

<uses-sdk android:minSdkVersion="8"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application android:label="@string/app_name"
android:icon="@drawable/icon" android:enabled="true">

<activity android:name=".GaomarTest"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:configChanges="orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<supports-screens android:largeScreens="true"
android:smallScreens="true"
android:anyDensity="true"
android:normalScreens="true"/>
</manifest>



次に新規でクラスを作成します。「iconAd.java」を作成しましょう。
s_20130202_11.png

s_20130202_12.png

では、編集していきます。

package jp.co.fuate.gaomartest;

import jp.maru.mrd.IconCell;
import jp.maru.mrd.IconLoader;
import android.app.Activity;
import android.view.View;
import android.widget.LinearLayout;

public class IconAd {
private Activity mActivity;
private LinearLayout mLayout;
private IconLoader<Integer> mIconLoader;

public IconAd(final Activity act, final LinearLayout layout, final IconLoader<Integer> iconLoader) {
mActivity = act;
mLayout = layout;
mIconLoader = iconLoader;
adInit();
}

/**
* 広告初期化
*/
private void adInit() {
try {
// ここでicon.xmlファイルを読み込んで来てます
View view = mActivity.getLayoutInflater().inflate(R.layout.icon, null);
if (view instanceof IconCell) {
((IconCell)view).addToIconLoader(mIconLoader);
}

mLayout.addView(view);




} catch(Exception e) {
e.printStackTrace();

}

}
}


次に「Cocos2dxActivity.java」を編集します。

public abstract class Cocos2dxActivity extends Activity implements Cocos2dxHelperListener {

private static Cocos2dxActivity myActivity;

// ジャストのサイズにする
private final int FP = LinearLayout.LayoutParams.FILL_PARENT;
// 広告レイアウト
private LinearLayout iconAdView;

// アイコン型広告
private static final String _MEDIA_CODE = "xxxxxxxxxxxxxxxxxx"; //←メモした識別コードに変えてください
private IconLoader<Integer> iconAd;

@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

this.mHandler = new Cocos2dxHandler(this);

myActivity = this;

this.init();

Cocos2dxHelper.init(this, this);
}

@Override
public void showDialog(final String pTitle, final String pMessage) {
if (pTitle.equals("command")&&pMessage.indexOf("iconAd") >= 0) {
String[] str = pMessage.split("@");

if (str[1].equals("0")) {
// アイコン型広告非表示
myActivity.dispIconAdView(false);
} else {
// アイコン型広告表示
myActivity.dispIconAdView(true);

}
}
}

}

public void init() {
// FrameLayout
ViewGroup.LayoutParams framelayout_params =
new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT);
FrameLayout framelayout = new FrameLayout(this);
framelayout.setLayoutParams(framelayout_params);

// Cocos2dxEditText layout
ViewGroup.LayoutParams edittext_layout_params =
new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
Cocos2dxEditText edittext = new Cocos2dxEditText(this);
edittext.setLayoutParams(edittext_layout_params);

// ...add to FrameLayout
framelayout.addView(edittext);

// Cocos2dxGLSurfaceView
this.mGLSurfaceView = this.onCreateView();

// ...add to FrameLayout
framelayout.addView(this.mGLSurfaceView);

this.mGLSurfaceView.setCocos2dxRenderer(new Cocos2dxRenderer());
this.mGLSurfaceView.setCocos2dxEditText(edittext);

// アイコン型広告処理
RelativeLayout adMain = new RelativeLayout(this);
this.initIconAd();

// 広告用RelativeLayoutに追加←RelativeLayoutがキーポイント!
adMain.addView(iconAdView);

// フレームレイアウトに追加
framelayout.addView(adMain);

// Set framelayout as the content view
setContentView(framelayout);
}


/**
* アイコン型広告初期化
*/
private void initIconAd()
{
iconAdView = new LinearLayout(this);

RelativeLayout.LayoutParams layoutParams =
new RelativeLayout.LayoutParams(FP, (int)(80 * getResources().getDisplayMetrics().density));

// 中央揃え
iconAdView.setGravity(Gravity.CENTER_HORIZONTAL);
iconAdView.setLayoutParams(layoutParams);

// アイコン型広告識別コード設定
iconAd = new IconLoader<Integer>(_MEDIA_CODE, this);
// 更新インターバル15秒
iconAd.setRefreshInterval(15);

// 今回は4つのアイコンを設置します
for (int ii=0; ii<4; ii++) {
final LinearLayout iconAdSubView = new LinearLayout(Cocos2dxActivity.this);
LinearLayout.LayoutParams layoutSubParams = new LinearLayout.LayoutParams(1, (int)(80 * getResources().getDisplayMetrics().density), 1.0f);
iconAdSubView.setLayoutParams(layoutSubParams);

// ここでIconAd.javaを呼び出します
new IconAd(Cocos2dxActivity.this, iconAdSubView, iconAd);

// 設定したアイコンデータをViewに追加する
iconAdView.addView(iconAdSubView);

}

}

}


これで上部に表示されました。
s_20130202_14.png

下に表示したい場合はこうします。
ALIGN_PARENT_BOTTOMを指定します。

/**
* アイコン型広告初期化
*/
private void initIconAd()
{
iconAdView = new LinearLayout(this);

RelativeLayout.LayoutParams layoutParams =
new RelativeLayout.LayoutParams(FP, (int)(80 * getResources().getDisplayMetrics().density));

// ALIGN_PARENT_BOTTOMを指定します
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
iconAdView.setGravity(Gravity.CENTER_HORIZONTAL);
iconAdView.setLayoutParams(layoutParams);

iconAd = new IconLoader<Integer>(_MEDIA_CODE, this);
iconAd.setRefreshInterval(15);

for (int ii=0; ii<4; ii++) {
final LinearLayout iconAdSubView = new LinearLayout(Cocos2dxActivity.this);
LinearLayout.LayoutParams layoutSubParams = new LinearLayout.LayoutParams(1, (int)(80 * getResources().getDisplayMetrics().density), 1.0f);
iconAdSubView.setLayoutParams(layoutSubParams);
new IconAd(Cocos2dxActivity.this, iconAdSubView, iconAd);

iconAdView.addView(iconAdSubView);

}

}



はい、下に出ました
s_20130202_15.png

任意の高さに出す場合は


/**
* アイコン型広告初期化
*/
private void initIconAd()
{
iconAdView = new LinearLayout(this);

RelativeLayout.LayoutParams layoutParams =
new RelativeLayout.LayoutParams(FP, (int)(80 * getResources().getDisplayMetrics().density));

// 一旦下に表示させる
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE);
// ディスプレイのインスタンス生成
Display disp = wm.getDefaultDisplay();
// 画面のheightを取得して比率を計算して下から120pxの位置に表示させる
int yPos = (disp.getHeight() * 120) / 480;
layoutParams.setMargins(0, 0, 0, yPos);

iconAdView.setGravity(Gravity.CENTER_HORIZONTAL);
iconAdView.setLayoutParams(layoutParams);

iconAd = new IconLoader<Integer>(_MEDIA_CODE, this);
iconAd.setRefreshInterval(15);

for (int ii=0; ii<4; ii++) {
final LinearLayout iconAdSubView = new LinearLayout(Cocos2dxActivity.this);
LinearLayout.LayoutParams layoutSubParams = new LinearLayout.LayoutParams(1, (int)(80 * getResources().getDisplayMetrics().density), 1.0f);
iconAdSubView.setLayoutParams(layoutSubParams);
new IconAd(Cocos2dxActivity.this, iconAdSubView, iconAd);

iconAdView.addView(iconAdSubView);

}

}



下から120dipの場所に表示されました。
s_20130202_16.png

こんな感じで表示されます。


ナースと付き合うまでにやった◯◯な事!第3話:貢ぐ漢

前回はお見合いパーティで知り合った女性とデートを重ねて、高級バッグを買わされるという所まででした。

今回はその第3話です。
クドいようですが閲覧注意です!

バッグを買った後はず〜と肌身離さず持ってました。
心の何処かでそのまま持ち逃げされるんじゃないかと勝手に思ってましたので(^_^;)
土砂降りの雨の中本当にどえらい目に会いましたね。


その後もデートを重ねていったのですが、
何故か相手が一切携帯番号を教えてくれなかったのが気になりました。
連絡はいつもメールだけ。。。

ちょっと喧嘩になってもメールでやり取りw
今思えば色々作戦だったと思います。

待ち合わせと言えば、彼女の家ではなく彼女の友達の家の近くに僕が車で迎えに行くというパターンや、
一人暮らしだったようですが、絶対に家を教えませんでした。


西宮ガーデンズの大起水産というお寿司屋さんが定番のデートです。
大阪から仕事終わりにしょっちゅう行ってました。
絶対に彼女が財布を出すことはありません!!

別れる直前に思い切って聞いてみると、
「付き合ってもないのになんでお金を出さないといけないの?」とか言われる始末。
なので、食事代は全て僕が負担しています。

結局手も繋いでいません!


ここであり得ない彼女の言動を発表しましょう!!

第5位 もらったコインケース無くしたから同じのちょーだい

プレゼントで上げたコインケースがあるのですが、(当然ルイ・ヴ◯トン)
一度も使わず無くしたようです。
挙句の果てにもう一回同じのちょーだいと言い出しました。
これで第5位なんですね〜

第4位 プレゼントしてくれるならお金ちょーだい

どうせあなたが買いに行くなら、私が今度買いに行くし、お金ちょーだいって言って来ました。
これには開いた口が塞がりませんでした。
「え?同じ事でしょ〜あなたが買うんだし、お金くれたら私買いに行くよ♪」ってマジで言ってんの?

第3位 自分の気持ちが収まらないから今すぐ靴を買って!

とあることで喧嘩をして、言い合いして、誤ってそれで済むかなぁと思ったんですが、
それだけではきがすまなかったようで、
「自分の気持ちが収まらない!何か買ってもらわないとダメ!」とか言い出します。
もう最悪です。

第2位 え?もう売ったよ!

第1位の出来事と関連するんですが、
今まであげた「そんなにお金が足りないのなら、ブランドバッグ売ればいいやん!」って勢いで僕が言ったのですが、
「もうとっくに売ってないよ」と言われました。
冗談で言ったのにもう一歩先に進んでました(´Д⊂ヽ

第1位 おばあちゃんが手術するからお金貸して!

もう笑うしかありません。
ここまで読んでくれた人も、これは嘘やろ〜って思うかもしれませんが、
全て事実です。
おばあちゃんが手術するらしく、早急にお金が必要になったようです。

「なんで僕が出さないといけないの?」と言ったのですが、
「弟もダメな人で自分の事にお金使って、親も離婚してて誰も身寄りがないの」だって!

最初聞いたときは僕もバカだったのか、
その話を信じてしまって、今回だけという約束でお金を貸しました。←当然帰って来ません。

その後まさかの2度目があります。
その時に言われたのが第2位の言葉です。
お金足りなきゃ今まであげたバッグ売ってお金にすればって言いました。

そしたらもう売ってないとの回答。。。
やっぱりお金を貸す以上、信用問題になるので、せめて携帯番号だけでも教えてって言ったのですが、
「信じてないの?」って言われて最後まで教えてもらえませんでした。

最後はメールで一方的にして、
僕のメルアドを強制的に変えて別れました。

もう彼女がどうなったのかは知りません。
知りたくもないですが、お金は返してほしい!!

長文最後までお付き合い頂きありがとうございました!
次回もまだまだ続きます!!

次のページ

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。