Corona SDKで画像のバリエーションを増やす

彩り楽しいってことで、Corona SDKでパターンを生み出す方法を模索中です。

今回は「画像にもsetFillColorは使えるよ」ってことだけをスクショ付でやってみます。

ゾンビ君の画像を用意します。背景透明、塗りは白です。
ゾンビを思い浮かべて描いた以上、これはゾンビでしかありません。

zombie_UntitledSheet-hd

適当に配置します。

スクリーンショット 2013-07-25 22.20.03

勇ましいです。
では着色します。

local body = display.newImage(zombieSheet, 1)
body:setFillColor(100, 100, 100)

スクリーンショット 2013-07-25 0.57.40

きちんと画像内だけ着色されています。
簡単なことですが、これだけでいろんなパターンができます。

スクリーンショット 2013-07-25 22.32.16

ではでは。更なるパターンを求め再び旅に出ます。

Corona Docs: API > Types > VectorObject > setFillColor http://docs.coronalabs.com/api/type/VectorObject/setFillColor.html

 

Corona SDKでGoogle Play Game Servicesを使ってみた。

ちょっと前からですが、Corona SDKがプラグインでGoogle Play Game Servicesに対応してます。 Androidでのランキングを簡単に実装する方法でピンとくるものがなかったので、とてもありがたいです。

使ってみるにあたって、いくつかぶつかった点があったのでメモしておきます。 要点としては以下です。

・リリース前の場合、デバッグ用のキーストアからフィンガープリントを取得、登録すると上手くいった。

・デバッグ用のキーストア使ったアプリで認証した状態のGoogleアカウントはリリース用のキーストア使ったアプリだと認証に失敗してしまう?

・そもそもGame Centerの代わりではない?

その他は記事最後の「参考になったサイト」様方に助けて頂きました。
では、それぞれについてです。

・リリース前の場合、デバッグ用のキーストアからフィンガープリントを取得、登録すると上手くいった。

最初、リリース用のキーストアでapkファイル作って実機で確認していたのですが、それだとどうもログインに成功しませんでした。 なんでだろとググってたらフィンガープリントが違うんじゃないの?って話があったのですが、たぶんあってるっぽい。 ではではと、試しにデバッグ用のキーストア使って、apk作って、そっちのフィンガープリント取得して登録してってやったら上手くいきました。ちなみにMacでCorona SDK内のデバッグ用のキーストア使ってフィンガープリント取得する方法は以下です。

keytool -exportcert -alias androiddebugkey -keystore /Applications/CoronaSDK/Resource¥ Library/Android/debug.keystore -list -v

なんやかんやでリリース前からリリース用のキーストア使ったアプリも認証させてしまってたので、 その辺してなかったらどうなるのかってのは次回試してみようようと思います。

・デバッグ用のキーストア使ったアプリでログインした状態のGoogleアカウントはリリース用のキーストア使ったアプリだとログインに失敗してしまう?

リリース後、デバッグ用アプリで使用していたGoogleアカウントを使ってログインしようとすると失敗してしまいました。もしやと思ってデバッグ用アプリ再度インストール、ログアウトして待つこと数分(直後だとまだ失敗しました)、リリースしたアプリでもログイン出来るようになりました。

・そもそもGame Centerの代わりではない?

Coronaのチュートリアルではアプリ起動時にinit後、ログインさせようとしてるんですが、 それ、いざ実機でやってるみると気持ち悪いんですよね。なんか勝手に出てきたぞって感じで。
OSとのフレンドリーさというか方針がGame Centerとは違うんじゃないのかな。
実際、既にリリースされていた対応ゲームいくつか見てみたんですが、ユーザーがログインしようとして初めてログインするのがよくあるタイプな気がしました。

なので自分は起動時はinitのみ、既に過去ログイン済みならばログインも..としました。
これだと大抵の場合、スコア等リクエストするタイミングもGame Centerとは違ってくるだろうし、ちょっとした分岐だけでいいってわけではなさそうです。

最後に、実際に使ってリリースしたゲームはこちらです。

どうぶつのわくせい – Google Play の Android アプリ
https://play.google.com/store/apps/details?id=com.plasticaromantica.SafariPlanet&hl=ja

ではでは。

参考になったサイト

Tutorial: Introducing Google Play Game Services | Corona Labs http://www.coronalabs.com/blog/2013/06/25/tutorial-introducing-google-play-game-services/
Google Play Game Services login issues – General Questions/Discussion – Corona Labs Forums http://forums.coronalabs.com/topic/35896-google-play-game-services-login-issues/
Android – Google Play game services のサンプルを動かしてみる – Qiita [キータ] http://qiita.com/t2low/items/b447f6ed913fabd83b61

クックパッド社「第4回 開発コンテスト24」に参加しました。

ほぼ1年ぶりの日記です。

クックパッドさんが開催する開発コンテストに参加しました。 課題が発表されてから24時間で開発しようというコンテストです。

エンジニア向け「第4回 開発コンテスト24」開催

友人と自分の2人チームで参加しました。 企画以外の部分、それぞれ何するかは当日決めようと話していましたが、 結局、自分がプログラム、友人はデザイン担当に落ち着きました。

・出来上がったアプリの紹介ページ

達成キャンドル | PLASTICA ROMANTICA

お題の「年をとった自分が使うサービス」から何を作るかという相談には わいわいと大体全体の40%くらいの時間を使ったと思います。 他の方の作品をみても「年をとった自分」の解釈はいろいろあって面白かったです。

年をとることは、ある時を堺に「老い」などネガティブなイメージが前面に来てしまいがちですが、 その中でも日々積み上げているものはあるはず。 積み上げていく様子を楽しく可視化したい。 自分たちも日々達成を積み上げて年をとっていきたいという気持ちで作りました。

・アプリの説明

まず、達成したい目標を登録します。 繰り返しボタンで何度も達成したい目標(毎日の散歩..etc)も登録できます。

iOSシミュレータのスクリーンショット 2013.06.16 18.25.00

登録した目標はタップすることで 達成ビューに積み上げていくことで出来ます。

iOSシミュレータのスクリーンショット 2013.06.16 18.31.18

達成したい内容のカテゴリーごとに色分けしてあり、見た目も楽しいです。

iOSシミュレータのスクリーンショット 2013.06.16 18.31.46

最後に、ケーキアイコンをタップすると、 毎年の積み上げをろうそくの高さとして比べることが出来ます。

iOSシミュレータのスクリーンショット 2013.06.16 18.31.54

以上、 決められた時間内に脳みそ絞ってひたすらコードを書く体験、かなりエキサイティングでした。 クックパッドさん、友人に感謝です。

ちなみに技術的なことをおまけしておくとアプリ作成にTitaniumを使用しています。 簡単なアニメーションならTitaniumを使った実機上でも思い通り動いて面白かったです。

タイトルは逃してしまいましたが、 せっかく作ったので、近くストアかGithubで公開出来ればと考えています。 ではでは!眠い!

Corona SDK 試してみた。

titaniumでアプリ出すと息巻いてたのだけど、注文してたcoronaSDKの本が届いたから少し浮気。今日一日コード書いてみて面白かったので参考になったものをまとめてみます。

届いた本はこちら。

基礎から学ぶ CoronaSDK基礎から学ぶ CoronaSDK
坂本俊之 藤川佑介 山本直也 中原智博

シーアンドアール研究所 2012-02-25
売り上げランキング : 61143

Amazonで詳しく見る
by G-Tools

titaniumに比べると全然日本語情報がない。試しに使ってみようと思ってググってもなんだかな..だから本から入ってみた。あとは公式ドキュメント。

Corona Docs: API http://docs.coronalabs.com/api/index.html

エディタはosxのAppStoreに以下の専用エディタがあったので購入。これはちょっとまだ正直しっくりきていなかったりします。良いのだけどね。

CoronaComplete http://coronacomplete.com/

で、coronaSDKは無料じゃstoreにアプリ出せなくて$199~$349/yr(2012/07時点)払わきゃだめ。もちろん、まだお試しだから払ってないんだけど、公式ページに乗ってたサードパーティツールが気になって買ってしまった。

:: X-PRESSIVE.COM :: – PARTICLE CANDY FOR Coronaョ IPHONE / ANDROID SDK http://www.x-pressive.com/ParticleCandy_Corona/

39.95ユーロした。ドルだと思って買ったらユーロだった。そのへんのクッションになってしまうPayPal怖えぇよ、と思い知りました。もちろんPayPalが悪くないのだけど。よく確認しましょう。

で、このparticle candyなんだけど、公式サイトみてもなんかよくわかんない。僕みたいな軟弱者からするとサンプルコードが足りない。こう書いたらこう動くからこれを使ってくれ!ってのが見たい。 それでもやっぱり気になるから買ってみたら、36個くらいサンプルコードが入ってた。サンプルコードが入ってた。自分みたいな人に伝えたいことだったので2度書いてみました。

物理演算を使ったゲームのテンプレートはCoronaSDKに入ってるし、particleもサンプル見ながらやったらすぐだったしで、そんなことなで半日くらいやってたらトップの画像のようなゲームではない何かが出来ました。コードや動画晒す程のものじゃないんで、それはもう少しいじった時にでも。

とりあえず以上!

おまけ

標準のapiだとadmodの広告表示出来ないのだけど、以下使って表示出来ました。一応表示まで試してみたのでおまけで紹介です。

deniza/Ad-Mediator-for-Corona · GitHub https://github.com/deniza/Ad-Mediator-for-Corona

EC2でDjango+Nginx環境構築するメモ (Amazon Linux AMI 2012.03

選択したAMIは”Amazon Linux AMI 2012.03″
以下の記事が参考になったのですが、記事の中で使われているAMIはUbuntuなのでapt-getをeasy_installにしてます。
詰まったとこメモしてるだけなので、全体像は偉大なるリンク先参照ください。

Adrián Deccico » Setting up Django 1.3 + NGinx 1.0.5 + Green Unicorn 0.13 in an Ubuntu 11.10 EC2 instance

sshでつなげて、いろいろインストールしてDjango用の環境を作る。

sudo easy_install python-pip
sudo pip install pip --upgrade
sudo pip install virtualenv
sudo yum install nginx
virtualenv --no-site-packages django_app
cd django_app
source bin/activate

アプリケーション作成して、とりあえずgunicorn_djangoで実行。
#このときEC2のSecurityGroupでport8000を許可してなくて一度つまりました。

pip install django gunicorn
django-admin.py startproject app
cd app
gunicorn_django -b 0.0.0.0:8000

これで、PublicDNS:8000にアクセスしたらDjangoのwork画面が見られる。
control+cで終了して次にNginxの設定。

sudo mkdir -p /opt/django/logs/nginx/
mkdir $HOME/django_app/static
mkdir $HOME/django_app/templates
sudo ln -s $HOME/django_app/static /opt/django
sudo mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.backup

#ここでdefault.confを書き換える。設定内容はリンク先記事のwgetで取得したものを参考にしたので省略。

DjangoのTEMPLATE_DIRSに作成したディレクトリを追加。
TEMPLATE_なんたらと間違えてて詰まった。ちゃんとDIRSだと確認。
Django触るの初めてだよと言い訳。

vi settings.py

TEMPLATE_DIRS = (
	'/home/ec2-user/django_app/templates',
)

urlpatternにテスト用テンプレートのurlを追加。
import direct_to_templateも忘れずに追加。

vi urls.py

from django.conf.urls.defaults import patterns
from django.views.generic.simple import direct_to_template

urlpatterns = patterns('',
	(r'^test_static/$', direct_to_template, {'template': 'test_static.html'}),
)

以下のテンプレディレクトリにhtmlを置いておく。端折ってHelloWorldとだけ書いときました。
/home/ec2-user/django_app/templates/test_static.html

Nginxを再起動して、gunicorn_djangoで再度gunicornを動かす。
今回は80番portでアクセス(PublicDNS/test_static/)出来る。SecurityGroupで80番portが許可されているか確認。

最後に自動起動させるためににUpstartに登録する。
/etc/init/以下に.confファイルを置けばいいのだけど、.confファイルの記述ミスってるとそもそもサービスとして認識してくれない。
で、リンク先ではwww-dataってユーザーに実行させてるけど、www-dataにどのくらい権限与えればいいのかよくわかんなかったので、取り急ぎec2-userで実行するよう書いときました。

#!/bin/bash
set -e
LOGFILE=/var/log/gunicorn/django_app.log
LOGDIR=$(dirname $LOGFILE)
NUM_WORKERS=3  #recommended formula here is 1 + 2 * NUM_CORES

USER=ec2-user

cd /home/ec2-user/django_app
source bin/activate
cd app
test -d $LOGDIR || mkdir -p $LOGDIR
exec gunicorn_django -w $NUM_WORKERS \
  --log-level=debug \
  --log-file=$LOGFILE 2>>$LOGFILE \
  --user=$USER

以上。

って、ホントはflaskの入った環境欲しいなと思い始めたので、放置してflaskでアプリ組むための環境作ろうと思います。
気が変わってもイメージとっておけるのがEC2の良いところですね。