変更箇所は多岐にわたり、概ね以下のようになりました。リアルタイムにヴィジュアル・エフェクトの変化を楽しむアプリケーションですが、静止画として保存し、なんちゃってアートで遊ぶことも可能です。過去に僕が作った画像集があります。渋い画像ですが、なんとなく曼荼羅っぽくなっていますね。加工してみますと、こんな感じになります。ヴィヴィッドな感じになりました。改良を行っていました。なんと次回アップデートは、前回から約10ヶ月ぶりになってしまいました。Storeでネガティブな書き込みをされてから、国内ではまったく売れなくなってしまい、正しいことを書かれているにしても、モチベーションがかなり減退していたことは否定できません...。これではイカンと、また改良に着手し始めました。Mandalaの機能の見直しと、よりシンプルさを追求する方針で行いました。その結果、「デバイスをシャッフルしてキャンバスの回転速度を変更する」という操作は無しにして、常にAutoで回転速度がコントロールされるようにしました。これによって、操作の煩雑さを一軸減らすことができました。「3本指タップで回転を止める」操作は残してあります。アドオンを購入することによって、製品版へアップグレードできる仕組みになっていて、それまでは時間制限付き体験プレイという形になっています。その体験時間を1プレイ10分に延長してみました。2分では短すぎでした。これによって多くの人が「インストール→なんだこれよく分からん→即削除」という結果になっていたのではないかと推測します。この2分という数字は、実は最初はもうちょっと長かったのですが、知人から「体験時間が長いから買うまでもない」と言われて、それを鵜呑みにして設定したものでした。何分がペストなのか、まだ僕には分かりません。オブジェクトのプロダクトリストが、空になって返ってくるという現象がおきました。Connectに登録されていて、今まで正常に動いていました。手がかりが無かったのですが、ふと思って一旦アプリをデバイスから削除して、再インストールしたらリストが取得できるようになりました。上書きインストールしたことによって、SKPaymentQueueサービスのデータ引き継ぎがうまくいって無かったのかもしれません。正しいことは分かっていませんが、もし同様の事でハマっていましたら、試してみてはいかがでしょうか。Objective-C2011年8月22日月曜日CCNodeのdrawメソッドでOpenGLTweetcocos2dでCCSpriteをテクスチャーに描画する方法を調べていました。作りたいと考えていたためです。残念ながら、cocos2dのクラスリファレンスやネットを調べても、それらしい便利なメソッドは見つけられませんでした。ESで実装するというのが正解みたいです。ESを知っていればそう難しい事でもなさそうです。ESコマンドが書けるらしいということです。テクスチャーへの描画はちょっと脇へ置いて、まずは、その辺りを最初に試してみることにしました。お題は、背景にグラデーションのスプライトを敷くプログラムです。クラスを作成しました。このメソッドを去る時には、必ずEnableに戻しておかなければいけない。これ以外のstateはDisableに戻しておくこと。4);glEnableClientState(GL_TEXTURE_COORD_ARRAY);glEnable(GL_TEXTURE_2D);}@endあとは、Bgクラスをインスタンス化して、適当なシーンに追加するだけです。tag:GameSceneNodeTagBg];実行結果は下のような感じになります。前回のテストプログラムから引き継いで、だいぶサイケになったネコ君でした。Objective-C2011年8月21日日曜日@synthesizeの代名記法Tweetcocos2dのObjective-Cのソースを眺めていて、@synthesizeで初めて知った記法がありました。CCTexture2Dのヘッダファイルでは、こんな感じに定義されております。定義されていたからです。実装の方を見ると、こんな感じになっておりました。name_;@synthesizeに=を付けて代名させることが出来るとは知りませんでした。いつから出来たのでしょうか。バージョン1.1がリリースされました。更新内容は以下のようになっています。今回は間に合いませんでしたが、次回の更新の時には、マルチタッチに対応したいと思います。サンプルプログラムを動かして勉強してきましたが、そもそもじっとしていられない質なのと、自分の理解度を試すために、簡単なプログラムを作りました。内容は、ネコグラス時計のネコのアニメーションを表示するだけのものです。工程としては以下のようになりました。CS5.5で、ネコをステージに配置したSWFファイルを作成します。ステージのサイズもネコに合わせて小さくしましたが、あえて必要な作業ではありません。使用するアニメーション画像を画像ソフトで切り出すSWFSheetで書き出した画像ファイルから、上記の3つ画像をそれぞれ切り出しました。切り出す際に、それぞれの中心位置がズレないように注意して下さい。しましたが、ファイル名はそれぞれ好きな名前で良いです。アトラスを作成します。pngファイル名はcocos2d上ではフレーム名として扱われ、それぞれのテクスチャを呼び出す際のkeyとなるので覚えておいて下さい。パブリッシュすると、テクスチャ画像とplistファイルが書き出されます。アニメーションの設定ファイルを作成します。今回は上記のように設定しました。animations、frames、delayは固定名なので変えないで下さい。アニメーション名です。framesの中身は、各フレームで呼び出されるフレーム名を設定します。pngファイル名になります。delayは各フレーム間の時間(秒)を設定します。今回は0.06秒にしました。Xcodeでcocos2dのテンプレートプロジェクトを作成ここはcocos2dアプリを作るときのお決まりの工程なので割愛します。ここでは、CCAnimationCacheクラスにエクステンション機能をつけて、先ほどのplistファイルを読み込み、CCAnimationデータを生成する方法が解説されています。これを元に、独自の実装を追加していくのが良いのではないかと思いました。ネコをCCSpriteで表示まず、適当なシーン作成のイニシャライザで、以下のコードを記述します。アトラスとアニメーションファイルを読み込ませておきます。それぞれキャッシュに入れるので、後からkeyを使用して、いつでも呼び出すことが可能になります。最後にネコ(Catクラス)のインスタンスを作成し、適当なポジションに配置します。tag:GameSceneNodeTagCat];Catクラスは、CCSpriteクラスの派生クラスにしてあります。a)する方法もあります。Catクラスのイニシャライザでは以下のコードを記述します。データを呼び出し、そのアニメーションを無限ループさせるアクションを生成し、その後実行しています。self;}以上のような工程で、初めてでも案外あっさり完成してしまいました。Rejectedが追加Tweet今朝は一刻、集中豪雨でした。凄い湿度!早くもエアコンのお世話になってしまいました。いうタイトルで案内メールが飛び込んできました。内容は以下のような感じでした。Rejected状態になる。アプリ開発者は、アプリの再提出が必要なく、メタデータを編集して修正することができる。IDを編集することができる。Rejectedの文字がアプリ開発者をビビらせますが(笑)、内容としては悪くなさそうですね。iOS2011年8月18日木曜日cocos2dで使えるテクスチャツールたちTweet少し時間が空いたので、cocos2d修行再開しました。使用しているのはこの本です。久しぶりにやると前のことをかなり忘れてしまうので(笑)、一章分まるまる読みなおしたりして、やっと第7章まで終わりました。この本は、原著のすばらしさもさることながら、翻訳者の方たちもcocos2dに精通してるらしいので、補足情報も盛りだくさんでありがたいです。7章までを要約すると、だいたいCCNode(CCLayer,CCSprite)クラスの使い方に終始していました。そもそもcocos2dがスプライトライブラリコアといった感じなので、これはこの本全体に言えることなのかもしれません。ActionScript3で例えるならば、DisplayObjectとDisplayObjectContainerクラスといったところでしょうか。僕がこの本を気に入っているのは、たんなるスプライトライブラリのリファレンスに留まらず、2Dゲームをオーサリングする開発環境に配慮された記事が多いところでしょうか。初心者向けというよりは、何度かゲームプログラムを作った経験のある中級者以上向けの本かと思います。アトラス作成)ZwoptexTexturePackerがあります。いったツールの紹介だけでも、ゼロから自分で調べるよりはたいへん助かりました。アトラスというらしい)を作成するツールは、ゲームを作るにおいて、あると無いとじゃ大違いなので助かります。自分がcocos2dでゲーム開発するとして、一番欲しいと思っているのは、タイムラインに沿ったアニメーションを作成できるアートデザイナー用のエディターです。Flashのようなものです。cocos2dのフォーラムでも時々、アニメーションエディターに関しては話題になっているようですが、それなりに求められている割りには、これだ!というものが見つけられませんでした。アニメーションエディターなどは、社内ツールとして独自開発されたものが使用されていることが多く、あまり外に出てこないのが要因でしょうか?用途は限定されますが、簡単なアニメーションデータ作成になら使えそうなツールがありました。SWFSheetSWFSheetはFlashからパブリッシュされたSWFファイルを読み込んで、ステージに配置されたムービークリップのアニメーションを1つのテクスチャファイルに書きだしてくれるツールです。AIRアプリなのでMac、Windowsで利用できます。僕もFlashのデータをcocos2dへ持っていけないかなと考えていたので、このツールを見た時はアイデアものだなぁと思いました。下の画像はSWFSheetで、ネコグラス時計のネコのムービークリップをテクスチャファイル化しているものです。このツールの難点を上げてみますと、アニメーションによっては同じ画像が複数登録されてしまうので無駄が出る隙間が大きい画像だと無駄も大きい数百フレームの巨大なアニメーションの書き出しには無理があるといったところでしょうか。いえ、Flashでタイムラインアニメーションを作成する開発スタジオでは、重宝しそうなツールですね。Tools2011年8月16日火曜日ネコグラス時計のマルチタッチ対応Tweetネコグラス時計のマルチタッチ対応を行いました。マルチタッチイベントを取得できるクラスが追加されています。簡単に実装できると思っていたら、意外な落とし穴が...。クラスに置き換えるだけでなんとかなりそうです。クラスが、Macに対応していないようなのです!!コードを記述することはできますが、イベントを受け取ることができないのです。クラスでハンドリングできても良かったのではないかと思います。併用するのが、正しい作法であるみたいです。以下は、base_mcというSprite上のマウスイベントと、タッチイベントを受け取るコードです。{trace(e.stageX.toString()+","+e.stageY.toString());}}上記を実行すると、Mac上では、baseMouseDown()関数しか呼ばれません。iOS上では、baseMouseDown()、baseMultiTouchBegin()の両関数が呼ばれます。baseMouseDown()、baseMultiTouchBegin()の両方にやってくることになります。一方をスキップしてやらなければいけません。マップされているかどうかを表すBoolean値です。MouseEventでマップされているよ、という意味になります。プロパティこそが、僕が先に「Adobeオフィシャル的」と言った意味なのでした。何はともあれ、ネコグラス時計でもマルチタッチに対応することができました。タッチした時のエフェクトが重い関係で、2つ同時までしかマルチタッチを許しておりませんが。(笑)でも、だいぶ良い感じになりました。iOS2011年8月13日土曜日ズッコケ君のメガネが...TweetズッコケGuysのバージョン1.1を開発中です。変更点は以下のようになる予定です。画質の向上フレームレートの改善ズッコケ君のメガネが...画質の向上に関しては、全体的にビットマップレンダリングのクォリティを上げて対応しました。フレームレートに関しては、iPadの方が効果大きいですが、iPhone4でも若干ですが向上しました。なんと言っても目玉はメガネ!あっ、メガネが外れてる!(笑)長年の謎だった、ズッコケ君の素顔が、とうとう明かされる時が来たのです!しかし、そんなに期待するほど、すごい顔だったのか!?それはご自身の目でお確かめ下さい。Storeに表示されるように画像を加工するのには、それなりに手間がかかります。アイコンとアイコーン...。(笑)ネコグラス時計の広告用アイコンを作ってみました。方なので注意しましょう。リリースされました!TweetiPadなごやか置き時計の「ネコグラス時計」がリリースされました。Storeから確認することができます。iPadの実力がどれ程のものか、ぜひご自分の目でお確かめ頂ければと思います。Storeが起動します。Mandalaというアプリケーションを紹介するようになっています。いわゆるセルフ広告です。この導線は、紹介するアプリがひとつしかない場合は簡潔で良いのですが、紹介したいアプリが増えてくると問題が生じます。ネコグラス時計がもう直ぐリリースされるはずなので、ズッコケGuys上でのセルフ広告システムをバージョンアップしました。まわりくどくなってしまいましたが(笑)、ようするにAIRのStageWebViewクラスを使って、HTMLでセルフ広告を表示する方法にしました。Storeが起動して、そのアプリのページまで移動するので、機能的にも問題ありません。選べないということです。表示プライオリティは、全表示オブジェクトよりも上になってしまうようです。2.6と2.7で若干変わっています。2.7になってより自然に回転しているように見えます。違いが分かるように、ネコグラス時計を使ってデモしてみました。Storeへ登録申請しました。リリースされるまで、今しばらくお待ちください!先にリリース中のズッコケGuysも、なかなかの好評を頂いております。ありがとうございます。AIRの例のバグで、対応言語リストに沢山の言語が表示されると思いますが、本当に対応している言語は、英語と日本語だけです。購入者のみなさまには、大変申し訳ありませんが、よろしくお願いいたします。ConnectへSubmitしてみました。結果は同じでした...。項に、余計な言語が追加されてしまいます。iOSを利用したアプリの開発に、本格的に移行できないので早く修正して欲しいのですが、今のところ望み薄であります。iOS2011年8月5日金曜日バグ対応のプライオリティに負けるTweetネコグラス時計、完成しました〜。Submitする時に、アプリの概要を英語と日本語で記述しなければならず、「分かりやすく、かつ面白く伝える」という命題も含めて、すんなりとは進ませてくれません。週末中にSubmitできればいいのだけど。iOSのバグ(#2878252)ですが、Adobe側からのコメントが出ました。business.バグはAdobe側でも再現できたけど、対応プライオリティとしては低く、近い将来にバグフィックスすることはできない。プライオリティが低いというのは、問題を抱えているこちらとしては、聞き捨てならない言葉ですが、要はそういう事らしいです。CS6.0待ち?なんか1時間ぐらいで修正できそうなバグなんだけどなぁ...。チェックにはそれなりに時間は要しますが。改め「ネコグラス時計」は、全てのデバイスの向きに対応しています。デバイスの向きは、stage.deviceOrientationの値から得ることができます。デバイスの回転を検出したらイベントを発生させて、そのイベントオブジェクトからデバイスの向きを調べることもできます。stage.deviceOrientationの値を調べておりました。stage.deviceOrientationには、以下のような注意書きがついていました。常に取得できるとは限りません。アプリケーションの最初の起動時や、デバイスが水平に置かれている場合などは、デバイスの方向が「unknown」(不明)として報告されます。アプリケーションの起動時に必ずunknownになるという不思議な仕様に、しばらく悩みました。どこかの方向へ向いている訳なので、要はその向きが分かればいいわけです。現在の画面(ステージ)の向きを調べるには、stage.orientationの値から得ることができます。stage.orientation。この2つのプロパティの意味の違いを混同すると、思わぬバグを混入させるハメになるので注意した方が良いでしょう。AIRフォーラムで頂き、Bugリポート(#2878252)にリストされている事を確認しました。残念ながら今現在、回避策はないようです...。この問題って、有料ソフトを販売する時に、購入者さんを騙すことになりはしまいか?はやいところ直して頂きたいです。iPad、もうじき完成です。2.7を使用しませんでした。2.7(ver.2.7.0.20020)のTimerクラスにバグらしきものを発見してしまったからです。一応、Adobeにはバグレポート(#2931038)を提出しておきましたが、うまく伝わってるか不安(汗)バグ症状は2種類みつけました。60秒間隔でTimerEvent.TIMERが起動するように設定したが、最初の1回目のイベント起動がおよそ1.5〜2倍ぐらいの時間がたってから起動する。timerObj.reset()→timerObj.start()を実行すると、その直後にTimerEvent.TIMERイベントが起動してしまう。2.6では正常に動作することを確認しております。すべてのプロジェクトで、このように動作するのかは分かりませんが、ネコライフ時計では100%このようになってしまいました。HamkenDevelopMac,iPhoneのネイティブアプリ開発。Flashアプリの開発をやっています。このブログを検索マイアプリPOLYZANTHショート・ショート・ゲームの迷宮リラックス。ゲームをクリアすれば、先へ進むことができます。じきに慣れるでしょう。Rebirth程よいランダム感で繰り返し遊べます。iOS版:https://goo.gl/pLxhgEAndroid版:https://goo.gl/IjxKhB右脳でございます記憶力の鍛錬をしながら「右脳くん」キャラクターを収集。新トレーニングも追加しました。iOS版:https://goo.gl/AOEtYzAndroid版:https://goo.gl/MAocZU不安なさかな不安症な魚がよみあげる短歌を楽しむアプリです。してらんない動きまわる文字から、単語を読み取るゲームです。(13)人気の投稿iPhoneのメッセージの吹き出しが突然青から緑になったらiPhoneのメッセージが便利すぎて、最近、iPhone同士の相手とはメールをほとんど使わなくなりました。GameObjectの非表示2つの方法と削除GameObjectをスクリプトから、一時的に非表示にする方法を試してみました。Unityでは、以下の2つの方法が一般的なようです。Unityアセット9選Unityを使っていると、次々とすばらしいアセットがリリースされて、その情報を追いかけるだけでも大変です。いったような事にならないようにしたいですね。