月別アーカイブ: 2014年6月

Android のアプリを作ってリリースしてみる

いろいろと思い立って、Android のアプリを作ることにしました。
今回の目標は「アプリを作って Google Play で配布すること」です。

まず何を作るかですが、タップした位置に「ガラスが割れたような画像」を配置するだけのアプリにします。

まず BitBucket にプロジェクトを作ります。 プロジェクト名は touch_wareru (タッチ割れる)にしました。 はい、大丈夫です。 センスがないのは自覚しています。

開発プロジェクトは下記アドレスで公開しています。
https://bitbucket.org/satofumi/touch_wareru

開発には Moai SDK を使うことにします。 (Moai SDK は Lua スクリプトでもって Android を含む各種環境で動作するゲームを記述できる SDK です)

で、なんやかんやで実装したのが、以下の Lua スクリプトです。

[lua]
--! \file
--! \brief タッチ割れる

require("strict")
require("input")


math.randomseed(os.time())

local Screen_width = MOAIEnvironment.horizontalResolution or 640
local Screen_height = MOAIEnvironment.verticalResolution or 480
MOAISim.openWindow("touch wareru", Screen_width, Screen_height)

local layer = MOAILayer2D.new()
MOAISim.pushRenderPass(layer)

local viewport = MOAIViewport.new()
viewport:setSize(Screen_width, Screen_height)
viewport:setScale(Screen_width, Screen_height)
layer:setViewport(viewport)

local crack_deck = MOAIGfxQuad2D.new()
crack_deck:setTexture("glass.png")
crack_deck:setRect(-64, -64, 64, 64)


local Max_props = 100
local props = {}
local props_size = 0

local function remove_front_prop(props)
   layer:removeProp(props[1])
   table.remove(props, 1)
   props_size = props_size - 1
end

local function push_back_prop(props, prop)
   layer:insertProp(prop)
   table.insert(props, prop)
   props_size = props_size + 1
end

local function new_prop(x, y, degree)
   local prop = MOAIProp2D.new()
   prop:setDeck(crack_deck)
   prop:setLoc(layer:wndToWorld(x, y))
   prop:setRot(degree, 0)

   return prop
end

local function update()
   while true do
      -- タップ位置を取得する
      local is_clicked, x, y = clicked_input()
      if is_clicked then
         if props_size >= Max_props then
            -- 最も古い画像を削除して、メモリ使用量が増え続けないようにする
            remove_front_prop(props)
         end

         -- タップされた位置に、画像を表示する
         local degree = math.random(0, 360)
         push_back_prop(props, new_prop(x, y, degree))
      end

      coroutine.yield()
   end
end

local thread = MOAIThread.new()
thread:run(update)
[/lua]

とりあえず、タッチした場所に割れたようなガラスの画像が表示されます。

touch_wareru_screenshot

さて、次は Google Play への登録です。
Google Play の開発者になるには 2,500 円ほど要求されます。 支払ってしまえば問題なしです。

で、Google Play Developer Console の Web ページにログインして、うきうきしながら touch_wareru.apk をアップロードしようとすると signed パッケージにしろっていうエラーが出ましたが、下記サイトを参考になんとかしました。

http://sp.vitalify.jp/archives/?p=587

あとは Google Play にパッケージ情報を書き込んで登録ボタンを押すと、「Google Play に反映されるまで数時間かかるかもよ?」 っていうメッセージが表示されます。 私の場合は 12 時間くらい経過してから反映された気がします。

ともあれ、Moai SDK を使ったアプリ作成から Google Play への登録までができました。
やればできるのが、わかった。