アップデート内容はバグ修正です。
さて、以前よりキーボードを閉じるボタンを追加していたのですが、iOS9以降で表示されなくなってしまいました。
UIViewを使ったカスタマイズキーボードの動作が変わっており、変換候補などを表示した後は閉じるボタンが表示されますが、テキスト入力開始時は表示されなくなっています。
UIToolbarを利用すると上手く行くので、UIToolbarを使用してカスタマイズキーボードを作成するように変更しました。
// ツールバーの準備 UIToolbar *keyboardToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.bounds.size.width, 44)]; // スペース UIBarButtonItem *extraSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:(UIBarButtonSystemItemFlexibleSpace) target:nil action:nil]; // 閉じるボタン UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"button_keyborad_back.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] style:UIBarButtonItemStylePlain target:self action:@selector(closeKeyboard:)]; // スペースと閉じるボタンをツールバーへ追加する [keyboardToolbar setItems:[[NSArray alloc] initWithObjects:extraSpace, backButton, nil]];
これでキーボードを閉じるボタンができました。
]]>
ダウンロードはこちら
ABCクッキー屋さんをオープンしたかえるのフート店長が、英単語大好きなお客さん(こっちもかえる)を相手に奮闘するゲームです。
英語の教育アプリという位置づけにはしましたが、教育部分を限りなく薄くし、ゲームの継続性による英語への触れ合いをポイントとしています。
そのため、物量作戦でもはや英語なんて関係なくゲームを進めることもできてしまいます。
そういったゆるさもウリになっています。
中学、高校の教科書で使う英単語をそれぞれ約700語、約1800語を収録
Voice of America special englishから1500語を収録。Voice of America special englishはアメリカ合衆国政府が運営する国営放送であり、英語を母国語としない人向けにアメリカのニュースを約1500語に厳選された英語で発信しています。そのため、この1500語の意味を把握することで、アメリカのニュースは全て読めることになります。
当然ながら、英単語のアルファベットの使用頻度には差があります。考えなしに進めていくと、“A”などは枯渇し、”J”などが余っていってしまいます。
工場では生産能力を調整できます。さきほどにもありましたが、英単語のアルファベットの使用頻度には差があるのでAの生産能力はアップグレードの優先度が高く、Jなどの生産能力はアップグレードは後でアップグレードしていくととで効率よくゲームを進行できることでしょう。
英単語を作る際には、単語のボーナスを考慮するとより効果的です。
例えば、
frog
の後に
gorilla
を選択することで、しりとり(frogの最後尾のgとgorillaの先頭のg)ワードボーナスを得ることができます。
ワードボーナスを溜めることでクイズイベントが発生します。お金を大量に稼ぐチャンスです。
稼いだお金は工場の生産能力を上げる他、部屋のカスタマイズもできます。和風な感じでもはやお店じゃなくしたり。そんな感じのゲームです。
開発はCocos2d-x v3.6 + Live2D(Cubism SDK)
開発プラットフォームのCocos2d-xは初めて使用しましたが、シーンの切り替え、スプライトの表示など非常に簡単で便利でした。開発プラットフォームの選定にあたってはUnityとどちらにしようか迷いましたが、C++は仕事でも使っていたことがあるのでCocos2d-xに決めました。
しかし、やはりC++は面倒だ。こんなプロフェッショナルのための言語は嫌だ。やっぱりポインタから逃げたい。とも思いました(笑)
そして、かえるさんのアニメーションはLive2D(Cubism SDK)を使わせて頂きました。別エントリでも紹介しています。
この一枚の絵をアレコレすると、
動いてくれます。Live2D素敵。
せっかく作ったのでダウンロードして遊んでみて下さいね。
ではでは。
]]>
かえるさんのABCクッキーのボーナス時は、背景を動的にグラデーションさせています。この動的なグラデーションの実現に、カラーピッカーのことを調べたので備忘録として記しておきます。
ペイントソフトのカラーピッカーも大体の場合においてRGB成分の位相をずらして表現しているので、プログラムでも同じことをすれば動的なグラデーションが可能ということになります。Cocos2d-xにはTintTo, TintByという色を変更する関数が用意されていますが、虹色にグラデーションしようともなると大変なので、Tintは使わない方向でのアニメーションさせてみます。
具体的なコード例
void update(float delta) { static float theta = 0.0f; theta += 0.05f; // グラデーションの更新速度 GLubyte center = 128, width = 127; // 色の基準値と増減値 GLubyte r = sin(theta) * width + center; // 赤成分 GLubyte g = sin(theta + 2.0f / 3.0f * M_PI) * width + center; // 緑成分 GLubyte b = sin(theta + 4.0f / 3.0f * M_PI) * width + center; // 青成分 _layer->setColor(Color3B(r, g, b)); // 色の更新 }
処理内容としては、スケジュール関数にてRGB成分をそれぞれの1/3ずつ位相をずらすことで、グラデーションを実現させています。
この例では基準値を128、増減値を127にしていますので、RGBそれぞれの成分が1~255の値で更新されるので、綺麗なグラデーションになるわけです。
ちなみに、基準値を明るくすればパステルカラーも可能です。
GLubyte center = 220, width = 35; // 色の基準値と増減値
ゆるい英語学習ゲーム、かえるさんのABCクッキー配信中ですのでよければ遊んで下さい。
ではでは。
]]>
ついでにサポートページも
今回はちょっと技術的な話を。
かえるさんのABCクッキーにはLive2Dを使わせて頂きました。
イラストをぬるぬるアニメーションさせる技術です。
アメトーークの絵心ない芸人でも使われた実績がありますね。
例えば、このかえるちゃんのイラストが
Live2Dでこんな感じ(gif出力です)
2016/04/08 一旦WebGLを削除
2016/04/09 さらに加筆修正(WebGLである程度動作することを確認)
私がアプリで使用したのはCocos2d-x版のLive2Dですが、Live2DにはWebGL版も用意されています。
WebGL版で動作させてみる
画面にタッチするとアクションします。あと、微妙に呼吸動作で動いているはずです。
※お使いのブラウザ、もしくはスマフォでは動作しない可能性があります。(その際はかえるさんが表示されません)
一度WebGL版を記事にしたはいいけど、自分のiPhoneで表示されなかったりで加筆したり削除したりあれこれしました。上のWebGL版も色々奥が深そうでまだまだ問題がありそうです。す。
ただ、このあたりの技術は非常に楽しそうなので勉強してみたいです。
ちなみに、また問題が見つかる可能性が大なので、将来この記事は消えて無くなっているかもしれません(笑
1枚のイラストからアニメーションがぬるぬる動く。技術的進歩というのは凄いですね。
ではでは。
]]>祝!リリース
ABCクッキー屋をオープンしたかえるさんが、英単語にしてクッキーを販売しながら
拡大していくアプリです。
ダウンロードして遊んで見てくださいね。
]]>