圧倒的なスピード【Androidアプリ開発日記】 移植ほぼ完了へ

Rom
記事: 25
登録日時: 15年前
住所: 日本

圧倒的なスピード【Androidアプリ開発日記】 移植ほぼ完了へ

投稿記事 by Rom » 13年前

俺がAndroidを使えるようになるのが先か、Androidプログラミングの館ができるのが先か・・・・


つーかすでに負けてね?

・・・いや、そんなことはないそんなことはない





よし今回もDXライブラリでの開発と違うので躓いたところかつぐぐっても余りでてこないことを書くぞ

・乱数を使いたい!!
→ここみろhttp://ee72078.moo.jp/chinsan/pc/Mobile ... F%E6%88%90

・fpsがいろいろ不安
http://kiseichu.parasite.jp/android-tips/archives/20
 使っていいともだめとも書いてないけどソースにぱくってますよ、って書いてれば問題ない、ということにする



そして今回のメインはこれ
・小数点以下の桁数を決めて文字描画したい!!!!

DXライブラリだったらprintf的に「%.1f」とかやってりゃよかったんですが変数を直で指定するためそんなものはない

たとえばアイテムゲット率rateを求めたい アイテムは全部でmax個 そのうちゲットできたのはget個とする
DXライブラリ+Cだと

CODE:

double = rate;
int max,get;

////////////////////いろいろありまして/////////

rate = (double)(get / max);
DrawFormatString(0,0,white,"取得率:%.1f",rate);
うんまぁこんなん

で、Android(JAVA)だと

CODE:

double rate;
int max,get;

//////////紆余曲折を経て/////////
rate = (double)(get / max) * 100;
rate = (int)rate;
rate = rate/100.0;
Canvas.drawText("取得率:"+rate,0,0,paint);

たぶんもっと省略して書けるんだろうがわかりやすいし動くしこれでいいよね☆

ようは無理やり切り捨ててるような感じかな



そして前上げたくそげー(アンチグリー・モバ)のゲームの移植がほぼ完了しました
Android持ってないひとはごめん
https://www.dropbox.com/s/hv8j921l0g0ucgw
【対象】Android 2.2以上
【動作確認】初代銀河(SC-02b)
60fpsでないとバランスがおかしくなるからめっちゃ古いのだと無理かも

あとDropboxで共有するのってまずかったりする?自分でアクセスしてもわからん
わかる人教えてくれ
スマホでダウンロードできるのがどこかわからない SkyDriveとかもいけるのかな

アバター
bitter_fox
記事: 607
登録日時: 14年前

RE: 圧倒的なスピード【Androidアプリ開発日記】 移植ほぼ完了へ

投稿記事 by bitter_fox » 13年前

Rom さんが書きました: そして今回のメインはこれ
・小数点以下の桁数を決めて文字描画したい!!!!

DXライブラリだったらprintf的に「%.1f」とかやってりゃよかったんですが変数を直で指定するためそんなものはない

たとえばアイテムゲット率rateを求めたい アイテムは全部でmax個 そのうちゲットできたのはget個とする
DXライブラリ+Cだと

CODE:

double = rate;
int max,get;

////////////////////いろいろありまして/////////

rate = (double)(get / max);
DrawFormatString(0,0,white,"取得率:%.1f",rate);
うんまぁこんなん

で、Android(JAVA)だと

CODE:

double rate;
int max,get;

//////////紆余曲折を経て/////////
rate = (double)(get / max) * 100;
rate = (int)rate;
rate = rate/100.0;
Canvas.drawText("取得率:"+rate,0,0,paint);

たぶんもっと省略して書けるんだろうがわかりやすいし動くしこれでいいよね☆

ようは無理やり切り捨ててるような感じかな
String#formatやjava.util.Formatterを使えばprintfとほぼ同じことが出来ますよ。(数値変換だけならjava.text.NumberFormatあたりでもできるかな?)

CODE:

Canvas.drawText(String.format("取得率:%.1f", rate), 0, 0, paint);
あと、rateの計算部分は

CODE:

rate = (double)get / max;
じゃないですか?
最後に編集したユーザー bitter_fox on 2012年1月26日(木) 11:55 [ 編集 1 回目 ]

Rom
記事: 25
登録日時: 15年前
住所: 日本

Re: 圧倒的なスピード【Androidアプリ開発日記】 移植ほぼ完了へ

投稿記事 by Rom » 13年前



まじかよ
ありがとうございます
Andoidの開発情報は日が浅いためにあまり出てないってことですよね~


二つ目にご指摘くださったのはその通りだと思います
余り詳しく理解してないのでその場でバッと書いちゃうんですよね

ISLe
記事: 2650
登録日時: 15年前

Re: 圧倒的なスピード【Androidアプリ開発日記】 移植ほぼ完了へ

投稿記事 by ISLe » 13年前

Rom さんが書きました:Andoidの開発情報は日が浅いためにあまり出てないってことですよね~
ふつうにJavaのAWT使った開発情報が流用できると思いますけど。
JavaアプレットのライフサイクルイベントメソッドをActivityの対応するものに、
AWTのGraphicsコンテキストをSurfaceViewのCanvasに(描画メソッドも違うけど)、
置き換えるくらいですかね。

アーキテクチャとしてはガラケーアプリのほうが近いですけど、ガラケーアプリの環境はJavaのバージョン1.3までの機能しか使えないのでソースコードを参考にするときは注意してください。
最後に編集したユーザー ISLe on 2012年1月26日(木) 17:17 [ 編集 1 回目 ]

アバター
bitter_fox
記事: 607
登録日時: 14年前

Re: 圧倒的なスピード【Androidアプリ開発日記】 移植ほぼ完了へ

投稿記事 by bitter_fox » 13年前

Rom さんが書きました: Andoidの開発情報は日が浅いためにあまり出てないってことですよね~
そうなんですかね・・・?
Androidはあんまり触ってないんでどれぐらい開発情報があるかはよく分からないんですよね。

個人的にはRomさんが引っかかってるのはCoreAPIに関する事のように思えます。
Randomもjava.utilパッケージのクラスでCoreAPIですし・・・
もしそうなら、CoreAPIに関することはAndroid関連で調べてもあんまり出てこないですよ。

Rom
記事: 25
登録日時: 15年前
住所: 日本

Re: 圧倒的なスピード【Androidアプリ開発日記】 移植ほぼ完了へ

投稿記事 by Rom » 13年前

なるほど……ありがとうございます