Garbage design Works 技術情報

何か、せっかく技術的な作業するんなら、記録残しといた方がいいかなぁ、なんて。

RoboDefence攻略

2009-09-21 09:20:27 | Android
しばらくAndroidマーケットにあるゲームの「RoboDefence」にはまってました。
一応、LEVEL10もクリアしたし、やり込み系以外のAchievementも取ったので、一旦終了。
いやぁ、有料版やりたいんですけどね、日本での有料アプリ解禁いつになるやら。

他のAndroidアプリのえらい人のサイトでも攻略があるけど、結構人によって攻略に差がありそうなんで、僕の場合の攻略方法も書いておきたいと思います。いや、明らかに技術情報ではありませんが。

初期は、予算が無い中でどうやって取り逃しを少なくするかがキーとなるので、僕の場合の初期配置はこれ。

 +------------------+
A|                  |
B|                  |
C|                  |
D|                  |
E|G                 |
F  G                 
G| G                |
H| G                |
I|  GG GG GG GG GG  |
J|                  |
 +------------------+


とにかく一番安いGun towerで誘導路を作ります。これで、出てくる敵は全て一番最下部のJ列を通るようになります。
続いて、空いたところにSlow towerを設置します。

 +------------------+
A|                  |
B|                  |
C|                  |
D|                  |
E|G                 |
F  G                 
G| G                |
H| G                |
I| SGGSGGSGGSGGSGGS |
J|                  |
 +------------------+


これで初期ではちょっと硬い白ダルマみたいなやつもへっちゃら。
最悪、ここまでで1つや2つは取り逃がすこともあります。
次はMissile towerの設置です。これが対空でも大きな意味を持ちますので、できれば早期で実現したいです。

 +------------------+
A|                  |
B|                  |
C|                  |
D|                  |
E|G                 |
F  G                 
G| G        MMMMMMMM|
H| G                |
I| SGGSGGSGGSGGSGGS |
J|                  |
 +------------------+


G行だとJ行の誘導路も射程範囲なので一挙両得。ただ、これだと対空の打ちもらしも出てくるので、早々に何個かMissile設置したらTeleportを設置します。

 +------------------+
A|                  |
B|                  |
C|                  |
D|                  |
E|G                 |
F  G              T  
G| G        MMMMMMMM|
H| G                |
I| SGGSGGSGGSGGSGGS |
J|                  |
 +------------------+


Teleportは1,000,000ポイントでUnlockしたら使えるようになるアイテムなので、Unlock前はこのことは考えずにひたすらMissileを設置すべし。
残ったG列にもひたすらMissile towerを設置していきます。

 +------------------+
A|                  |
B|                  |
C|                  |
D|                  |
E|G                 |
F  G              T 
G| G MMMMMMMMMMMMMMM|
H| G                |
I| SGGSGGSGGSGGSGGS |
J|                  |
 +------------------+


この形で基本的な誘導路は完成です。
続いて、対空にも効くSlow towerの設置を行うべく、E列に装備を増強します。

 +------------------+
A|                  |
B|                  |
C|                  |
D|                  |
E|G  MMSMMSMMSMM SMM|
F  G            TTT  
G| G MMMMMMMMMMMMMMM|
H| G                |
I| SGGSGGSGGSGGSGGS |
J|                  |
 +------------------+


ついでにTeleportも追加してます。Teleportは3基設置すれば、大抵の編隊にも対応できます(6基編隊はさすがに漏らすことがありますが)。
ここまでくれば現時点ではほぼ怖いものは無くなってきますが、ここらで TowerのUpgradeをしておきます。

 +------------------+
A|                  |
B|                  |
C|                  |
D|                  |
E|G  AMSAMSAMSAM SAM|
F  G            TTT 
G| G MMMMMMMMMMMMMMM|
H| F                |
I| SGFSGFSGFSGFSGFS |
J|                  |
 +------------------+


E列のMissileの一部をAntiairMissile($70)、I列のGunの一部をFrame($70)にUpgradeします。

後は最終形だけ載せておきます。

 +------------------+
A|                  |
B|                  |
C|                  |
D|                  |
E|GM AMSAMSAMSAM SAM|
F  G MMMMMMMMMMMTTT  
G| G MMMMMMMMMMMMMMM|
H| F                |
I| SGFSGFSGFSGFSGFS |
J|                  |
 +------------------+


基本的に装備は全て最上までUpgrade。Missileは$30→$50と結局$80もコストがかかるので、順序良く。
基本的にはG列左側から変更するのが効率がいいです。

また、G列は

G| G MSMMSMMSMMSMMSM|

という配置にしてもいいと思います。こちらの方が初期で誘導路を完成させるまでのコストが抑えられるし、対空戦略においても時間稼ぎができます。
またお金に余裕があれば、追加でC列にMissile towerを並べてもいいと思う。C列からなら空中部隊にミサイルが届くから。

Free版でできるUpgradeを全て行った後であれば、Level0とか余裕になってると思いますので、全TowerでUpgrade無しでクリアするCheapskateのAchievementとかもこの配置を基本に取れると思います。

また、Missileを設置しないGunnerを取った時は、

 +------------------+
A|G   G   G   G     |
B|S F S F S F S FGS |
C|F S F S F S F S F |
D|G G   G   G   G S |
E|G  GGSGGSGGSGGSGF |
F  G GGGGGGGGGGGTTT 
G| G GSGGSGGSGGSGGSG|
H| F                |
I| SGFSGFSGFSGFSGFS |
J|                  |
 +------------------+


こんな感じだったと思う。今思うとMine使っても良かったかなぁ。

あとは有料版でてからのお楽しみだな。うん。

Android SDK 1.6r1リリース

2009-09-20 11:24:23 | Android
つい先日UbuntuでAndroid開発環境構築のエントリを入れたばかりなのに、いつの間にかSDKのバージョンがあがったみたいだ。

ってことで、早速ダウンロード。例によって、
http://developer.android.com/sdk/
から最新のSDKにジャンプします。現時点では1.6r1。

ダウンロード後は展開。
$ cd ~/dev/android/
$ tar zxvf android-sdk-linux_x86-1.6_r1.tgz

シンボリックリンクを新しいSDKの方に張り替える。
$ rm sdk
$ ln -s android-sdk-linux_x86-1.6_r1 sdk

次にHT-03Aのskinの用意。これは前回と同じでOK
$ cd ~/dev/android/sdk/platforms/android-1.5/skins/
$ unzip HT-03A
これでskinの準備はOK。

今回のSDKでは、.androidディレクトリ関連のバグは落ち着いているようなので、リンクは張りません。

とりあえず、前のSDK1.5の設定ディレクトリを待避。
$ cd ~/
$ mv .android .android_1.5

AVDの作成。
$ android create avd -n HT-03A -s HT-03A -t 3

さて、これでOKのはず。

前回作ったHelloAndroidでコンパイルとエミュレータのテストしてみてもOK。

ってことで、SDK1.6になりました。

EeePC 900A+UbuntuでAndroid開発…環境構築編

2009-09-02 01:54:56 | Android
ってことで、久々の更新。

EeePCの4G-XはすっかりUbuntuマシンだが、900Aの方はWindows7専用機となっていました。 で、携帯をAndroid搭載のHT-03Aにしたので、早速開発環境を、と思い。

まずは書籍等でもよく見かける、Windows環境にEclipseで構築。構築は簡単だったんだけど…。え~っと、この環境では、使えるとはいえませんよね?NetBookでは画面狭すぎます。統合環境での開発は画面が狭くて苦しいなぁ。
ってことで、コマンドラインで開発することにするかなぁ、と考えると、やっぱりWindowsよりはLinuxでした方が良さそうな気がしてくる。

そしてまずはEeePC 4G-Xで、Ubuntu+Emacsでの開発環境構築。これがうまくいった。とりあえず、エミュレータならびに実機でテストプログラム実行OK。 ただ、4G-Xは900Aにも増して画面が狭い。800x480とかあり得ない数字。なもんで、900AでUbuntuでやるのがよいのではないかという結論に至り。

EeePC 900Aは、確か(挿し換えた)SSD側にWindows7、SDHCにUbuntu入れてたはず…って、あれ、なんかいつの間にかUbuntu居なくなってるんですが…。
さて、それではUbuntuの導入から行きますか。せっかくなんで、こうやってblogに情報を残していきます。

まずは、EeePC 900AにUbuntu 9.04のNetbookRemix(UNR)を導入します。 導入のためのイメージのダウンロード
http://www.ubuntu.com/GetUbuntu/download-netbook
ここから.imgファイルをダウンロードします。

インストール用のUSBメモリ作成は、僕はUbuntu上からやっちゃうので、とりあえずImageWriterの導入。コマンドラインから、
$ sudo apt-get install usb-imagewriter
その後、アクセサリからImageWriterを起動し、ダウンロードしたimgファイルをUSBメモリに書き込みます。

なお、WindowsでUBSメモリを作る人は、
https://help.ubuntu.com/community/Installation/FromImgFiles
をよく読んで。

で、できあがったUSBを900Aに差し込み、USBを900Aからboot。
いつもと同じパターンでインストール。僕の場合はSDHCにUbuntuはインストールするので、いつもswapを作らず(メモリ2GB搭載)、ext2で1パーティションで利用しています。
ちなみに色々利用しましたが、東芝の白いSDHCが一番さくさく動く気がします。

さて、Ubuntuインストール後に色々とやることがあります。 特に、/tmp等をtmpfsにする作業などは必須です。 ライブCDの部屋を参考に作業しています。
http://simosnet.com/livecdroom/eeepc_tips.html#tuning

で、僕はATOK X3 for Linuxを使っているので、これもインストール。
本体以外に、この辺もダウンロード。
http://support.justsystems.com/faq/1032/app/servlet/qadoc?QID=042459
http://support.justsystems.com/faq/1032/app/servlet/qadoc?QID=044668
まずは、[システム設定]→[ログイン画面]から、[セキュリティ]タブを開き、自動ログイン等をOFFにします。
その後、ログアウトして、ログイン画面に戻ったところで、Ctrl-Alt-F2を押して、CUIからログイン。 あとは、以下参照。
$ export LANG=C
$ sudo touch /etc/gtk-2.0/gtk.immodules $ mkdir /tmp/atokx3
$ cd /tmp/atokx3
$ tar zxvf ~/atokx3.tar.gz
$ cd /tmp/atokx3/ATOKX3
$ sudo bash ./setupatok_deb.sh
ここまでで本体インストール完了。
$ cd /tmp/atokx3
$ tar xzf ~/atokx3up2.tar.gz
$ cd /tmp/atokx3/atokx3up2
$ sudo bash ./setupatok_up2_deb.sh
$ cd /
$ sudo tar xzf /tmp/atokx3/atokx3gtk216.tar.gz
$ sudo /opt/atokx3/sample/setting_debian4.sh
これでアップデータ導入も完了。

ここまで来たらexitでCUIログインから抜け、再度GUIでloginすればATOKが利用可能になっているはず

 このままだと、Windowの下にATOKのステイタスが表示されて鬱陶しいので、これを消します。手順の書いてあるページからツールをダウンロード。
http://support.justsystems.com/faq/1032/app/servlet/qadoc?QID=037494
ここからiiimf_status_hideを落として、あとはほぼ手順通りなんだけど、実行ファイルをsampleの下に置くってのが耐えられない。
なので僕は/opt/atokx3/binの下に置いてます。
で、自動実行のために/etc/X11/xinit/xinput.d/iiimfの最後の行に/opt/atokx3/bin/iiimf_status_hideを追加しておきます。

次にEmacsのインストールをします。TTFフォントがきれいに出るのでEmacs23をインストールします。
$ sudo apt-get install emacs-snapshot
これでその他関連4パッケージも自動インストールされるはず。

Android開発とは関係ないけどついでにThunderbirdもインストールしとこう。
$ sudo apt-get install thunderbird

あ、そうそう。emacs使うなら、ATOKの日本語モード切替でCtrl-Spaceをとられているのでこれは困ります。なんで、Ctrl-Spaceのキーバインドを解放します。
/etc/iiim/js_triggerkeys.confの中のShift+spaceをnoからyesに変更。

ここらで一度再起動しておきましょう。

あ、いかん、AndroidならJava入れておかなくちゃ。
$ sudo apt-get install sun-java6-jdk

あと、Antも必要になりますので、
$ sudo apt-get install ant
とインストール。

gitもインストールしておきます。
$ sudo apt-get install git-core

そしてここからいよいよAndroid-SDKをインストールします。

まずはSDKのダウンロード。以下のURLから、たぶん最新のSDKに飛ぶはず。
http://developer.android.com/sdk/
現在は1.5-r3になるはずです。で、Linux用のSDKをダウンロードします。

開発用のディレクトリなどの準備をします。僕は~/dev/androidを使います。
$ mkdir -p ~/dev/android
$ cd ~/dev/android
この下に先ほどのSDKのファイルを解凍します。
$ unzip android-sdk-linux_x86-1.5_r3.zip
元ファイルはファイルサイズも大きいし消しちゃってもいいかも。
$ rm android-sdk-linux_x86-1.5_r3.zip

後のこととか色々考えて、sdkというシンボリックリンク作っておきます。
$ ln -s android-sdk-linux_x86-1.5_r3 sdk
で、環境変数を登録します。
vi ~/.bashrc
----------
# Java
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

# Android
export ANDROID_SDK_HOME=~/dev/android/sdk
export PATH=$PATH:$ANDROID_SDK_HOME/tools
----------

設定を読み直します
$ source ~/.bashrc

次にEmulatorのskinで、HT-03Aを準備します。
http://wikiwiki.jp/android/?%A5%A8%A5%DF%A5%E5%A5%EC%A1%BC%A5%BF%A4%CESkin%A4%F2HT-03A%A4%CB%A4%B9%A4%EB
から、zipファイルをダウンロード。
指定のディレクトリに展開。
$ cd dev/android/sdk/platforms/android-1.5/skins/
$ unzip HT-03A
これでskinの準備はOK。

ここでHT-03Aっぽいエミュレータ起動のためのAVDを作成します。
ところがどうも、SDK1.5ではandroidコマンドとemulatorコマンドでAVDファイルを参照するポイントが違っちゃっている(バグか?)ようなので、その対応をします。
まずは保存用ディレクトリ作成
$ mkdir ~/.android/
シンボリックリンク作成
$ ln -s ~/.android ~/dev/android/sdk/.android
いよいよAVD作成です。
$ android create avd -n HT-03A -s HT-03A -t 3
これでAndroidのエミュレータ動くところまでは行ったはず。

早速起動実験です。
$ emulator @HT-03A

ちなみにエミュレータは起動に激しく時間がかかるし、もっさりしてるので、期待しすぎないこと。Android開発は実機でじゃないと厳しいわ。
さらにHT-03Aっぽくするなら、エミュレータ上の「Custom Locale」アプリか、設定のlocaleあたりかでシステムのLocaleをJaにしておきます。

ま、エミュレータはこんなところで。
次にemacs関連の設定いきます。

まずは、JDEE:Java Development Environment for Emacsのインストール。
$ sudo apt-get install jde

次に、android-modeのインストール。
$ mkdir ~/.elisp
$ cd ~/.elisp
$ git clone git://github.com/remvee/android-mode.git
ここまでで、~/.elisp/android-mode/android-mode.elというファイルができているはず。

emacsの設定は.emacsで行います。
~/.emacsに以下を追加
----------
;; android-mode
(add-to-list 'load-path "~/.elisp/android-mode")
(require 'android-mode)
(setq android-mode-sdk-dir "~/dev/android/sdk")
----------

僕は以下のようなものも加えています。
----------
;; 同名のファイルの場合ディレクトリ名を付ける
(require 'uniquify)
(setq uniquify-buffer-name-style 'post-forward-angle-brackets)

;; 対応する括弧の色を変える
(show-paren-mode t)

;; バックアップファイルを作らない
(setq backup-inhibited t)

;; 終了時にオートセーブファイルを消す
(setq delete-auto-save-files t)

;; 最終行に必ず一行挿入する
(setq require-final-newline t)

;; 最終行より下に行く際に自動開業を禁止する
(setq next-line-add-newlines nil)

;; 時間を表示する
(display-time)

;; カーソルの位置表示する
(column-number-mode t)
(line-number-mode t)

;; 現在の関数名を表示
(which-function-mode 1)
----------

さて、次にUbuntuからHT-03Aの実機を認識させる設定です。
udevのrules.dにファイルを作成します。
$ sudo vi /etc/udev/rules.d/51-android.rules
----------
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
----------
$ sudo chmod a+rx /etc/udev/rules.d/51-android.rules

実機側で、設定→アプリケーション→開発の「USBデバッグ」にチェックを入れ、
これでHT-03AをUSB接続すればUbuntuから認識されるはず。

試しにHT-03Aのシェルにアクセスしてみましょう。
$ adb -d shell
(エミュレータに接続する場合は-eで)

さて、これで環境が一通り整いました。
試しに一つプロジェクトを作ってみましょう。
$ mkdir ~/dev/android/projects
$ cd ~/dev/android/projects
$ android create project --target 3 --package com.example.hello --activity HelloAndroid --path hello
これで、画面にHello world, Hello Andoridと表示するだけのコードの準備が整っています。

いざ、コンパイルとテストプログラムの起動テストです。
とりあえず、エミュレータもしくは実機のどちらかだけを接続しておきます。
その後emacsを起動し、~/dev/android/projectshello/src/com/example/hello/HelloAndroid.javaを開きます。

まずはコンパイル。
HelloAndroid.javaのバッファで、
M-x android-ant-compile
で、しばらくするとコンパイルが終了。

引き続き実行環境(実機もしくはエミュレータ)へのインストール作業
M-x android-ant-install
これでインストールが完了しています。

あとは実行環境でアプリ一覧を見ると「HelloAndroid」というアプリがあるはず。
実行してみて、Hello worldが表示されれば成功です。

さて、とりあえず、今回は環境構築まで、ということで。