2009年3月17日火曜日

Enumerationとforループ

Listの中身を総なめするのに、
JavaSDKだとiteratorを使うのが普通ですが、
dojaだとiteratorはないので、Enumerationとforループのどちらかを選ぶことになります。
どっちが早いのか気になるので、試してみました。


public class ListMain extends IApplication {

public void start() {
Vector vec = new Vector();

for(int i = 0; i < 200000; i++){
vec.addElement(new Integer(i));
}

long startTime = System.currentTimeMillis();
for(Enumeration en = vec.elements(); en.hasMoreElements();){
int hoge = ((Integer)en.nextElement()).intValue();
}
System.out.println("Time to enumerate:"+(System.currentTimeMillis()-startTime));


startTime = System.currentTimeMillis();
for(int i = 0; i < vec.size(); i++){
int hoge = ((Integer)vec.elementAt(i)).intValue();
}
System.out.println("Time to for :"+(System.currentTimeMillis()-startTime));

}

}

実行結果は、

Time to enumerate:250
Time to for :172

となり、forループのほうが早いことが分かりました。
なんと。
Enumerationの使い道がありません。

2009年3月15日日曜日

アプリアイコン設定

Doja-5.0でアプリのアイコンを指定する場合。
/res以下にアイコンとするgifファイルを置く。
このとき、大きさは48x48と96x96を作成可能。
それぞれ、
icon48.gif
icon96.gif
とすると、
ADFのAppIconにアイコンファイル名を
icon48.gif,icon96.gif
と指定する。
ただし、このときGIFファイルをインタレースGIFにしておくと読み込まれないので注意。
通常のGIFファイルで作成しましょう。
これではまった。

2009年2月13日金曜日

便利なページ

アプリを作るのに便利なページを発見.

アプリ置き場

ベンチマークの結果などが載っていて,かなり便利.

2008年11月26日水曜日

MySQLメモ

スコアをネット上で公開するときにMySQLを利用するとしたらこんな感じかな.

CREATE TABLE score_tbl (
id INT UNSIGNED PRIMARY KEY,
name Text NOT NULL,
score BIGINT NOT NULL,
level INT NOT NULL,
info Text,
version DOUBLE NOT NULL,
update DATETIME NOT NULL,
index (score),
index (level),
index (version, update),
);

PRIMARY KEY
PRIMARY KEYを設定したカラムには以下の特徴がある。
* 他のレコードと重複した値は格納できない
* NOT NULL属性を持つ
* 自動的にインデックスが設定される


参考:http://www.dbonline.jp/index.html

Doja-5.0のインストール

どうやらDoja-5.0の利用者が7割以上らしいので,Doja-4.1プロファイルで作る意味がないみたい.
というわけで,Doja-5.0での開発に切り替えてみようと思う.

2008年11月9日日曜日

リソースからイメージ取得

Doja4.1でリソースからイメージを取得する方法



リソース内に存在するイメージ(target)を取得するメソッド。

static public Image getImage(String target){
try{
MediaImage mi = MediaManager.getImage("resource:///"+target);
mi.use();
return mi.getImage();
}catch(ConnectionException e){
GameUtil.showErrorMessage("イメージが読み込めませんでした。\n"+target);
GameUtil.terminate();
return null;
}
}

半透明を利用する方法



TransparentImage tImage = TransparentImage.createTransparentImage(image);
tImage.setTransparentEnabled(true);
tImage.setTransparentColor(Graphics.getColorOfName(Graphics.WHITE));

これで、白が透明色となる。