カスタム検索

2010年8月31日火曜日

Flexで丸画像とか

Flexで四角以外のアイテムを生成するときのお話
忘れそうなのでメモメモ

丸画像に対してイベントを取得したい時など、Imageを使うと四角の領域でイベントが取得されます。
コンポーネントに対して mask 処理をしてやることで、任意の領域のみイベントの対象とする事が出来ます。

詳細はコチラ
Imageを拡張したクラスを用意して、 cornerRadius プロパティを追加。
描画更新時(updateDisplayList)に、cornerRadius の値からマスクを作成してセット。

2010年8月26日木曜日

cocos2dで日本語をCCBitmapFontAtlasで使うには

ちょっとはまったんでメモメモ

cocos2dでは文字の表示に CCLabel という簡単なものがあるのですが、これが結構な重い処理となります。
スムーズな動作を必要とするゲームなどでは、BitmapFontを使うと良いです。
(逆にADV系など速度を要求しないものであればCCLabelでおk)

現時点(cocos2d v0.99.4)では標準のままでは使えません。
公式フォーラムのコチラで問題点が指摘されています。

プロジェクト内の cocos2d Sources > cocos2d > CCBitmapFontAtlas.h を編集します。

kCCBitmapFontAtlasMaxChars = 2048

kCCBitmapFontAtlasMaxChars = 65536
に変更

BitmapFontを作る方法ですが、Hiero Font EditorというのとBMFontGeneratorというが推奨されているようです。

BMFontはWindowsでしか動かないので、とりあえずhieroを使ってみたんですが、どうもうちではうまく動作してくれませんでした。
(出力画像が天地左右反転されたり、出力対象がコピペできなかったり、一度出力すると変更して二度目の出力が出来なかったり)

なのでBMFontを使ったやり方を紹介します。

・必要な文字を含んだテキストファイルを作成(UTF-16で保存)
・Edit -> Select chars from file で上記ファイルを選択
・Export OptionsでBit depth を 32、png 出力
・Font Settingsで Font smoothing を選択

色などはお好みで、cocos2d側でも変更が効くので特に気にする必要もないと思います。
これで出力された .fnt ファイルを CCBitmapFontAtlas で読み込んでやればBitmapFontで描画されます。

2010年8月4日水曜日

今そこにあるpaypal

paypalが日本での本格展開を始めると言う事で、早速使ってみた。

使い始めるまでの準備をザックリと。

1.Paypalにサインアップする。
本番用と練習用(sandbox)では、別々にアカウントをセットアップする必要があるので注意。

2.sandbox内で使えるアカウントを作成する。
テンプレで作成出来るが、日本語アカウントはマニュアルで作るしかない。
ビジネスでセットアップすれば架空のカード番号が入力されるので、そのままセットアップする。

3.APIのアカウントを取得する
個人設定>APIアクセス>オプション2のAPI証明書を取得する

4.エクスプレスチェックアウトを有効にする
上と同じ所から有効にできる。
レガシーなウェブペイメントorメール決済を使う場合は必要ない、けどエクスプレスチェックアウトを推奨


上記に加え、本番アカウントならカード認証やら口座設定やらをしておく。

新しくはじめるなら、paypalのAPIに対応したカートを使うのが一番簡単。
APIのアカウントを設定するだけでいけるはず。

それではおもしろくない(?)ので、一からAPIをつついてみた。
APIではSOAPとNVP(Name-Value-PairただのPOST通信)が使えるらしいので、もっとも汎用的っぽいNVPをチョイス。

APIのURLや詳細はまずそうなので伏せるとして、流れは以下の通り。

1.SetExpressCheckout
今から支払いスルヨー!とpaypalに宣言する。
オプションでアカウント不要とか、画面表示を変えたりとか出来る。
APIコールに問題なければTOKENが返ってくるので、ユーザ向けページへTOKENを付けてリダイレクトする。

2.GetExpressCheckoutDetails
指定した戻り先のページに戻ってきたら、このAPIを実行。
ユーザがpaypalのページで入力した情報を取得する。(住所とか。クレジットカード番号は取得不可。)

3.DoExpressCheckoutPayment
決済処理の確定。

だんだんめんどくさくなってきたのでこの辺で終了。
paypalの利点は、他社に比べて圧倒的に安い事と、始めやすい(オンラインだけですぐ始められる)事でしょうか。
欠点としては日本での認知度の低さや、わかりにくさ(決済ページが英語表示、ユーザが日本語表示に切り替える必要がある)でしょうか。