RetroWeb ~iPhoneとAndroidでハイブリッドゲームアプリ開発~

AIR for iOS+AndroidでSmartPhone Game ハイブリッドアプリ開発

最近作ったアプリ
100億本の抜け毛 100億匹のモナー DQ3闘技場アプリ モナーペット(進化)

ドラクエアプリ開発12 だいたい完成

オリキャラエディット、エディットバトル(つまり対人戦)、エディットランキングとゴールドランキングの切り分けが済み、基本的には完成しました。あとはデバッグやアイコンやリリース準備など。

勝ち負け判別、勝率ランキング、ユーザーデータのキャッシュ、サーバーデータ仕様、サーバーエラー時の処理、サーバー連動タイミングがなかなか混乱しましたw

f:id:hisashi_vc:20141224210248j:plain

ドラクエ3闘技場シミュレーター 開発その5

ドリームマッチとして、りゅうおうを参戦させました。また、AIRデフォルトのプルダウンメニュー(ComboBox)が、スマフォであまりに使いづらいので、オリジナルの選択メニューUI生成メソッドを作成しました。

そういえば改造ドラクエ3なんてあるんですね。プロトタイプゴーレムとか、それっぽくて本物の続編みたい。

f:id:hisashi_vc:20141216110839j:plain
f:id:hisashi_vc:20141216110845j:plain

ドラクエ3全モンスターのバトルロジック完成

1日+半日でドラクエ3の全敵キャラバトルロジックを移植しました。
絵と音は無いですが、ドラクエですw

全138キャラ一斉に戦わせたところ、19ターンで闇ゾーマが僅差で勝つことが判明しました。トリビアの泉みたいだ。ただしドラクエ3裏仕様の自動回復はオフにしてあります(オンにすると戦闘が終わらない)。あとグループ攻撃は任意の3体、全体攻撃は任意の5体に攻撃させてます。

多少見た目整えて、バトルシミュレーター的な感じでアプリ化しようかな~

f:id:hisashi_vc:20141212022925j:plain

ゲームアプリ「焼きそばvsゴッキー」完成&Android版を申請しました。

実働3日くらいですが、結構フル稼働でしたw ゴッキーの動きをフルーツ忍者風にすれどいまいちだったため、全部作り直して、ゴッキーっぽい動きにしました。ボスゴッキーも出現します。

f:id:hisashi_vc:20141208180808p:plain

今日中にはAndroid版公開されると思います。iPhone版も作らねば~

焼きそばVSゴッキー

申請時に使用した説明キャプチャ

f:id:hisashi_vc:20141208172820j:plain
f:id:hisashi_vc:20141208172825j:plain
f:id:hisashi_vc:20141208172830j:plain
f:id:hisashi_vc:20141208172834j:plain
f:id:hisashi_vc:20141208172839j:plain

アプリ★ゲット様に、開発したゲームアプリ「空から女の子が!」の記事が掲載されました

人様にDLして頂けるだけでありがたいですが、記事にまでして頂いたっぽいです。
気合でキャラデザまで挑戦したゲームアプリを気に留めて頂けてよかったです。
また色々挑戦してみよう。


空から女の子が! - スマホゲームならアプリゲット

モナーシューティング開発 その5

OPクラス、ゲームオーバーUI、会話ロジックを実装しました。

OPクラスを実装
ひとまずキャッチコピーのフェードイン・アウト
素材さえあれば、そのまま全部再生できます。
f:id:hisashi_vc:20141204012550j:plain

ゲームオーバーUIを実装
モナー石も作らねば。
f:id:hisashi_vc:20141204012629j:plain

会話UIとロジックも実装。
敵と味方の会話と、会話以外の説明に対応。ファイナルファンタジー・レコードキーパーと違って、ちゃんと一文字づつ出ますw
まずステージ冒頭の会話に対応
f:id:hisashi_vc:20141204012821j:plain

次にボス直前のセリフに対応
f:id:hisashi_vc:20141204012840j:plain

最後にクリア後のセリフに対応
f:id:hisashi_vc:20141204012847j:plain

モナーシューティング開発 その4

マップとステージ開始確認UIを作りました。今回はステージが複数あるので、データも複数ステージに対応できるようにしました。

あとぜんぜん関係ないですが仕事で作ってるAIRアプリゲームが、Apple Storeのカテゴリ別で国内1位にランクインしました。個人でもそのうちランクインしたいなあ。

f:id:hisashi_vc:20141203010956j:plain

f:id:hisashi_vc:20141203011002j:plain

ane使わずに、AIR for iOS だけでLINEにつぶやき投稿サンプルソース

ane使わずに、AIR for iOS のAS3だけでLINEに投稿してみました。画像もUIPasteboardに保存&フルパス取得できれば行けそうだけど、そんなことできるのかな~

navigateToURL(new URLRequest("line://msg/text/"+flash.utils.escapeMultiByte("あいうえお")));

「2時間しか寝てないアプリ」iPhone版を申請しました&サムネ全自動化jsx公開

f:id:hisashi_vc:20141128202149j:plain

1週間くらいで公開される予定。。

ついでにitune connect審査用、全自動サムネ生成PhotoShopバッチ(.jsx)作りました(以前公開したのは半自動)。
1.jpg~5.jpgという名前の、適当なサムネ画像の元ファイルがあるフォルダに、jsxファイルをコピペして使う前提。変数のdirNameはコピペしたフォルダパス名で書き換えてください。

自動化できるところはどんどん自動化して、どんどんリリースしよう。

var time=new Date().getTime();

var dirName = "/Users/ひさし/Desktop/flash/2時間しか寝てないアプリ/capture/";
var names = ["1.jpg","2.jpg","3.jpg","4.jpg","5.jpg"];
var dirs = [dirName + "iPad 1024x768/", dirName + "iPhone4S 960x640 3.5インチ/", dirName + "iPhone5 1136x640 4インチ/", dirName + "iPhone6 1334x750 4.7インチ/", dirName + "iPhone6 plus 1242 x 2208 5.5インチ/"];


for(var i0=0; i0<dirs.length; i0++){
	new Folder(dirs[i0]).create();

	for(var i=0; i<names.length; i++){
		fileObj0 = new File(dirName+names[i]);
		open(fileObj0);

		if(i0==0){
			//画像解像度:高さ:1024
			preferences.rulerUnits = Units.PIXELS;
			activeDocument.resizeImage(activeDocument.width*(1024/activeDocument.height),1024);
			//カンバスサイズ:幅:768
			preferences.rulerUnits = Units.PIXELS;
			activeDocument.resizeCanvas(768, 1024);//,activeDocument.width);
		}else if(i0==1){
			//画像解像度:幅640
			preferences.rulerUnits = Units.PIXELS;
			activeDocument.resizeImage(640, activeDocument.height*(640/activeDocument.width));
			//カンバスサイズ:高さ960
			preferences.rulerUnits = Units.PIXELS;
			activeDocument.resizeCanvas(640, 960);//,activeDocument.width);
		}else if(i0==2){
			//画像解像度:幅640
			preferences.rulerUnits = Units.PIXELS;
			activeDocument.resizeImage(640, activeDocument.height*(640/activeDocument.width));
			//カンバスサイズ:高さ1136
			preferences.rulerUnits = Units.PIXELS;
			activeDocument.resizeCanvas(640, 1136);//,activeDocument.width);
		}else if(i0==3){
			//画像解像度:幅750
			preferences.rulerUnits = Units.PIXELS;
			activeDocument.resizeImage(750, activeDocument.height*(750/activeDocument.width));
			//カンバスサイズ:高さ1334
			preferences.rulerUnits = Units.PIXELS;
			activeDocument.resizeCanvas(750, 1334);//,activeDocument.width);
		}else if(i0==4){
			//画像解像度:幅1242
			preferences.rulerUnits = Units.PIXELS;
			activeDocument.resizeImage(1242, activeDocument.height*(1242/activeDocument.width));
			//カンバスサイズ:高さ2208
			preferences.rulerUnits = Units.PIXELS;
			activeDocument.resizeCanvas(1242, 2208);//,activeDocument.width);
		}

		fileObj = new File(dirs[i0]+(i+1)+".png");
		pngOpt = new PNGSaveOptions();
		pngOpt.interlaced = false;
		activeDocument.saveAs(fileObj, pngOpt, true, Extension.LOWERCASE);
		activeDocument.close(SaveOptions.DONOTSAVECHANGES);
		//break;
	}
		//break;
}

app.beep();
alert("Finish! "+((new Date().getTime()) - time));

iPhoneアプリから評価用ストアリンクのエラー例と、修正例

5回くらいのリジェクトを克服し、ついにモナーペットがiPhoneストアに出た!リジェクトキャラ名の「ちんぽっぽ」は、「てぃむぽっぽ」でクリアw・・・と思ったら、バグが判明!、評価ページへのリンクがサーバーエラーになってました。。以前のiOSなら飛べたのに~

ひとまず下記で治ったので、再申請!

//バグる(というかストアに行かない)	
GetURL("http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=" + APPLE_ID + "&mt=8&type=Purple+Software");

//こんな感じで普通にリンク飛ばせばOK
GetURL("https://itunes.apple.com/jp/app/kong-feibushimamurakun/id" + APPLE_ID + "&mt=8");

早押しモナーのiPhone版を申請しました。

申請後に慌てて文章修正したんですが、申請後でもストアや審査用の文章情報はリジェクトなしに修正できるんですね。どんどん審査慣れしていこう。

レビュー審査待ちのバージョンでは、すべての情報を編集できます。新しいビルドを送信するには、このバージョンをレビュー審査から削除する必要があります。

それにしてもレビュー待ちばかりになってきたなあ。もっとレビュー待ちばかりの開発速度を目指そうw

f:id:hisashi_vc:20141125002058j:plain

新ゲームアプリ『早押しモナー』完成&Android版を申請しました。

企画(というか模索)2日、開発3日(1日は共通ライブラリ調整)くらいで完成しました。また1週間以内で次のアプリ作ってリリースしよう。作るものはもう決まってますw
しかし仕事の企画や開発もやらねば。あわわわ

f:id:hisashi_vc:20141124150227p:plain

今日中には公開されるかな。。
https://play.google.com/store/apps/details?id=air.retroweb.touch.the.mona

ゲーム説明用に作ったサムネイルはこちら

f:id:hisashi_vc:20141124150239p:plain
f:id:hisashi_vc:20141124150245p:plain
f:id:hisashi_vc:20141124150259p:plain
f:id:hisashi_vc:20141124150305p:plain
f:id:hisashi_vc:20141124150312p:plain
f:id:hisashi_vc:20141124150319p:plain

ゲームアプリに、自動でライバル表示機能を実装

仮想敵さえいれば、あらゆるゲームが数倍面白くなるので、その人のライバルを自動で検討して表示する機能を考え、開発中の早押しゲームに実装しました。

▼処理方法
1.クリア後、ユーザーの1個上のデイリーランキングの人をライバルと想定し、名前とスコアと順位を取得して表示。ランキング送信のレスポンスとして取得すればワンタッチ。

2.ランキングの1個上が自分だったらその1個上をずっと検索して、違うユーザー名になったら表示

3.自分が1位の場合は、2位以下で直近の自分以外の人をライバルと想定して表示

f:id:hisashi_vc:20141123114939j:plain

AIR for iOSの累乗謎バグと、その対処法

PC上ではバグらないのに、iPhone端末だとエラーもtraceも出ずにフリーズする謎バグが。。謎すぎるw

//これだとiPhone上でフリーズ
var n2:int = (n * n * n * n);

//関数使えば大丈夫。何故だw
var n2:int = Math.pow(n, 4);

次のアプリ 早押しモナーで落ち着きそう

面白いかは微妙かもしれませんが、1プレイ数秒で終わる気軽さと、開発の回転速度を実現すべく、1日で早押しナンバーゲーム自体は完成したので、あとは残りの細かい部分を仕上げれば、完成するかな~。使いまわしてるランキングのバグにも気づいて修正。図鑑の背景も無駄にパワーアップw

f:id:hisashi_vc:20141122005603j:plain
f:id:hisashi_vc:20141122005614j:plain