5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

iモード携帯電話用Java(iアプリ) Part 6

1 :デフォルトの名無しさん:04/08/01 00:01
NTT DoCoMoのiモード携帯電話用Javaに関する話題を扱うスレッドです。
iアプリ制作の始め方、および初歩的な質問は下記スレへ。

【初心者歓迎】iアプリ相談室
http://pc5.2ch.net/test/read.cgi/tech/1089530578/

DoCoMo以外は下記スレへ。

CLDC+MIDP+携帯電話用Javaスレッド part 2
http://pc5.2ch.net/test/read.cgi/tech/1070858996/

過去スレ
Part 1 http://piza2.2ch.net/tech/kako/975/975428633.html
Part 2 http://pc3.2ch.net/tech/kako/1000/10007/1000723476.html
Part 3 http://pc2.2ch.net/test/read.cgi/tech/1040898596/
Part 4 http://pc5.2ch.net/test/read.cgi/tech/1067139509/
Part 5 http://pc5.2ch.net/test/read.cgi/tech/1084246226/

2 :デフォルトの名無しさん:04/08/01 00:01
■ 開発環境

NTT DoCoMo - iアプリコンテンツの作成について
http://www.nttdocomo.co.jp/p_s/imode/java/index.html
Java[tm] 2 Platform, Standard Edition v 1.4
http://java.sun.com/j2se/1.4/ja/
CLDC仕様書 日本語版
http://java.sun.com/products/cldc/docs/CLDC1.0_ja_docs.zip
Eclipse.org
http://www.eclipse.org/

■ 機種依存情報

ん・ぱか工房(iアプリ機種依存情報)
http://www.saturn.dti.ne.jp/~npaka/
NTT DoCoMo - アプリケーション作成上の注意点
http://www.nttdocomo.co.jp/p_s/imode/java/caution.html
Overflow! さかきけいのページ(504iまでの機種依存情報つきAPIリファレンスあり)
http://godwood.allnet.ne.jp/vioret/

■ アプリを省サイズ化するツール(ObfuscatorまたはOptimizer)

Java Blender
http://web.yl.is.s.u-tokyo.ac.jp/amo/JavaBlender/
jarg - Java Archive Grinder
http://jarg.sourceforge.net/

3 :デフォルトの名無しさん:04/08/01 00:02
■ 主なアプリ配布サイト

ギガアプリ
http://g-appli.net/
アプリ★ゲット
http://appget.com/

■ 携帯関連ニュース

ITmedia:モバイル
http://www.itmedia.co.jp/mobile/
ケータイ Watch
http://k-tai.impress.co.jp/
Nekomaru What's New
http://snget.hp.infoseek.co.jp/news/news_index.htm

■ 関連板

携帯アプリ板
http://news6.2ch.net/appli/
携帯・PHS板
http://etc.2ch.net/phs/

4 :デフォルトの名無しさん:04/08/01 00:20
後藤たんの記事とか。

今後1〜2年で携帯電話にプログラマブルシェーダが搭載
http://pc.watch.impress.co.jp/docs/2004/0730/kaigai105.htm

すんなり載ってくれればいいのだが、どうなのよ、政治的に?
つーても、今更演算子オーバーロードのないJavaで本格的に3Dゲー組むのは正直ぞっとしないな。

5 :デフォルトの名無しさん:04/08/01 00:31
新スレ乙

6 :デフォルトの名無しさん:04/08/01 00:53
>>4
確かに3D関係だと演算子オーバーロードあると便利だろうねえ。。

7 :デフォルトの名無しさん:04/08/01 05:31
その前に浮動小数点サポートしろよ

8 :デフォルトの名無しさん:04/08/01 09:28
Math.sqrt 使えないのは痛いな

9 :デフォルトの名無しさん:04/08/01 12:12
CLDC1.1がメジャーになるのを待とう。

10 :デフォルトの名無しさん:04/08/01 22:59
DoJa4からはCLDC1.1だろ?

11 :デフォルトの名無しさん:04/08/02 13:44
本当なら嬉しい。いつも関数電卓作ろうとして寸前で思いとどまる。

12 :デフォルトの名無しさん:04/08/02 23:03
>>8
平方根ぐらい自分で書けよ

13 :デフォルトの名無しさん:04/08/03 00:28
逆平方のテーブル持ってへろへろしろと、君は!

14 :デフォルトの名無しさん:04/08/03 00:30
>>10
DoJa4ってCLDC1.1なんだ!
しかし、いつDoJa4になるんだろ。来年くらい?

15 :デフォルトの名無しさん:04/08/03 00:38
DoJa4って発表あったのか?
でも確かにメジャーバージョンアップならそれくらいしないとな。

16 :デフォルトの名無しさん:04/08/03 04:19
Bluetoothとかタッチパネルとか使いたいなあ
F900it買ったけど使い道が・・・

17 :デフォルトの名無しさん:04/08/03 09:15
>>13
int _sqrt(int n){
int s, t, n;
if(nNum <= 0)return 0;
s = n;
do{
t = s;
s = (t + n / t) >> 1;
}while(s < t);
return t;
}


18 :デフォルトの名無しさん:04/08/03 18:07
>>17
オレが使ってるのと全く同じだ。
もしかしてアルゴリズム事典参考に、
ちょっといらんとこを省略した?

19 :デフォルトの名無しさん:04/08/04 09:03
どっかネットから引っ張ってきたわ。

あと変数名変えそびれてる>>17
nNumが残ってるな。3行目のnNum→nな。

20 :デフォルトの名無しさん:04/08/04 13:30
>>17
ぬるぽ法ですね。

21 :デフォルトの名無しさん:04/08/04 16:33
>>20
ガッ!!

22 :デフォルトの名無しさん:04/08/05 13:07
これどうよ

ttp://www.aplix.co.jp/jp/release/2004/PR040803.shtml

23 :デフォルトの名無しさん:04/08/05 13:27
すいません質問です。

画像を大量に使うアプリを作っていますが、端末によって「Out of Memory」エラーが
出るようになったので、はじめはImageオブジェクトを最初に全て作成していたやり方
を、必要に応じて作成→破棄を繰り返すように修正しました。

一度に扱うImageオブジェクトはかなり少なくなったのですが、長時間動作させている
とまた「Out of Memory」が出てしまいます。Imageオブジェクトを作成する際に使用す
るMediaImageオブジェクトは使い回ししており、Imageオブジェクトを破棄する際には
MediaImageオブジェクトは破棄しておりません。

現在Imageオブジェクトは配列であり、MediaImageはひとつだけです。
対策として、MediaImageもImageに対応した配列とし、Imageの破棄と同時にMediaImage
も破棄するという修正をしようと思っています。

この考え方は正しいでしょうか。ご意見をお聞かせください。

24 :デフォルトの名無しさん:04/08/05 13:37
>>23
正しい。

25 :23:04/08/05 13:53
>>24
ありがとうございます。
早速試してみます。

26 :デフォルトの名無しさん:04/08/05 15:57
MediaImageを開放せずにほかで使用すると、以前のが迷子になったまま
手がだせなくなってしまうのだよ。

27 :デフォルトの名無しさん:04/08/05 19:22
その方法ってMediaImageをImageと同じ分作る必要あるの?

28 :デフォルトの名無しさん:04/08/05 19:54
そりゃそうだろ。
リソースの実体を保持&管理してるのがMediaResourceなんだから
ImageとMediaImageは一対だろ。
MediaImageをdisposeしたとたん、getImageしたImageは使えなくなるじゃん
disposeしないで、そのMediaImageを使いまわしたら、上書きされた
以前のMediaImageを破棄する手段が失われてしまう。

29 :デフォルトの名無しさん:04/08/06 00:59
この辺の実装は機種依存っぽいけど‥

>対策として、MediaImageもImageに対応した配列とし、Imageの破棄と同時にMediaImage
>も破棄するという修正をしようと思っています。

漏れはそうしてる
APIリファレンスにもdispose()汁!って書いてあるし
あと、unuse()してからdispose()するのが正しいやり方みたい

>メディアリソースは、使用する前に use() で使用開始を宣言し、 使用した後に unuse() で使用終了を宣言
>しなければなりません。 また、もはやメディアリソースを使用しない場合は dispose() で破棄しなければなりません。
> dispose() を呼ばない限り、メディアリソースで使用したメモリが解放されない場合があります。
>なお、disposeメソッドを呼び出した後にそのオブジェクトに対してdispose()以外の何らかのメソッドを呼び出した場合
>UIExceptionが投げられます。
> 破棄されていないメディアリソースが GC によって回収されようとしている場合の動作は機種依存です。

30 :デフォルトの名無しさん:04/08/06 03:25
iアプリってKeepAlive使えるの?
FomaからHTTP1.1で使えるぽいんだけど
環境変数、HTTP_CONNECTIONを見ると空っぽい。

知ってる人いたら情報キボン

31 :デフォルトの名無しさん:04/08/06 03:41
あげ

32 :デフォルトの名無しさん:04/08/06 09:03
>>29
機種依存というか、NだけはImageをdisposeするとMediaImageまで消える。
おかげでNだけMediaImageへのunuse, disposeが失敗するのを前提としたプログラムにしないといけない。

N逝ってよし

33 :デフォルトの名無しさん:04/08/06 10:36
>>32
漏れもそれで悩んだような希ガス

N逝ってよし

34 :デフォルトの名無しさん:04/08/06 11:18
>>32
すいません。Nは全機種でしょうか?
あと

MediaImageのunuse
Imageのdispose
MediaImageのdispose

の順で実行すれば、全機種共通でいけませんか?


35 :34:04/08/06 12:03
修正です。
↓こんなかんじです。
MediaImage が null でなければ unuse
Image が null でなければ dispose
MediaImage が null でなければ dispose

36 :デフォルトの名無しさん:04/08/06 12:44
>>34
ImageのdisposeでMediaImageまで消えるのは、
N504iで確認した記憶がある。

MediaImageがnullとか、イマイチ言ってる意味がわからんのだが…

37 :デフォルトの名無しさん:04/08/06 13:21
どうせTryキャッチするのだから、

Imageの開放
MediaImageの開放

とすれば問題はない。
だが最初は

Imageのdispose
MediaImageのunuse dispose
Imageにnullを代入
MediaImageにnullを代入

としていたので、Imageがnullにならなかったのだ。
(画像仕様のさいに、データがロードずみかどうかをnull==で判定していた)


38 :34:04/08/06 13:44
>>37

何度も申し訳ありません。
具体的に書くと、

try {
 img.dispose();
 img = null;
 mi.unuse();
 mi.dispose();
 mi = null;
 System.gc();
}catch (Exception e) {}

これでいいのでしょうか。



39 :デフォルトの名無しさん:04/08/06 16:12
System.gcはcatchのさらに後に書くべき。
それだとNの時にgcが行われない。
それ以外はいいと思われる。

40 :34:04/08/06 17:49
>>39
>System.gcはcatchのさらに後に書くべき。
>それだとNの時にgcが行われない。
そうですね。ありがとうございました。

41 :デフォルトの名無しさん:04/08/06 20:56
勉強になった。

42 :デフォルトの名無しさん:04/08/06 21:43
F900itでやってますが
processIMEEventがimeOnから直接よばれないみたいですが
こういう仕様でしたっけ?
processIMEEventってどのタイミングで呼ばれるのが普通なんでしょうか?

43 :デフォルトの名無しさん:04/08/06 23:51
>>42
APIリファレンスよく読めばわかる。

44 :デフォルトの名無しさん:04/08/06 23:57
>>43
わからなかったので聞いてるんですけど

45 :43:04/08/07 02:45
>>44
APIリファレンス Canvas#processIMEEvent()
>IMEイベントが通知されたときに呼ばれるメソッドです。
>このメソッドはimeOn メソッドにより起動されたIMEへの入力が確定した場合、 またはキャンセルされた場合に呼び出されます。

46 :42:04/08/07 02:59
レスどうもです
>>45
って書かれてますけど、imeOnが呼び出されても
一回目はprocessIMEEventが呼ばれず、
二回目呼び出す前にprocessIMEEventが呼ばれてるんです・・・。
Fのバグですかね・・・

47 :デフォルトの名無しさん:04/08/07 03:47
imeOnはprocessIMEEventを呼ばない
それが全機種共通の仕様

F900iT以外の全機種とF900iTで動作が違うならバグかもね

48 :42:04/08/07 04:23
>>47
そうなんですか?
じゃあprocessIMEEventの呼び出し条件ってなんなんでしょうか?

49 :デフォルトの名無しさん:04/08/07 05:41
Eclipseでデバッグってどうやるんですか?
Part4に↓って書かれてましたけど無いぽいですし


400 名前:デフォルトの名無しさん 投稿日:04/02/03 23:39
続。

5.DoJaのインスコ
 例)
 D:\Dev\iDKDoJa3.0

 プラグインなんかの設定は、
 http://www.nttdocomo.co.jp/p_s/imode/make/java/index.html
 から落とせるPDFのP.154からを参照。

6.デバッグ
 これも5.のP.165〜P.166に書いてる。が、
 (1)『実行』→『実行(デバッグモードにチェックを入れる)』
 (2)『実行』→『デバッグ』→『リモートJavaアプリケーション』→『デバッグ』
 の2段で実行しなあかん。
 これで半日嵌った 。・゚・(ノД`)・゚・。

使って、矢っ張り変数とか確認しながら
実行できることは便利と実感。生産性向上、とリリースノートに書いてあったのも
あながち嘘じゃない ヽ(´ー`)ノ


50 :49:04/08/07 05:45
ちなみに>>48の6の方法でやると


起動中に例外が発生しました
理由:
リモートVMに接続できませんでした。接続は拒否されました


と表示されてしまいます

51 :43:04/08/07 06:20
>>47(=42)
んだから、processIMEEvent()は「imeOn メソッドにより起動されたIMEへの入力が確定した場合、
またはキャンセルされた場合に呼び出されます。」って書いてある。
プログラム側から呼び出しに行くんじゃなくてシステム側によって呼ばれるの。
(processEvent()と同じだってば)

imeOn()を実行するとIMEが起動される。制御はプログラム側からシステム側に移る。
ユーザーが入力文字列を確定させるか、入力操作をキャンセルすると
システム側はprocessIMEEvent()を呼び、制御がプログラム側に戻ってくる。
そのときプログラム側はprocessIMEEvent()内で
・制御が戻ってきた理由の判定(ユーザーが文字列を確定させたのか/入力をキャンセルしたのか)
・入力確定ならその文字列の取得
ができる。

ただ、imeOn()はブロックしないメソッドであるとAPIリファレンスに書かれていて、これはつまり
imeOn()を実行したところでプログラムが一時停止するわけではなく、その次以降の行も実行されて
いくということ。もちろん画面上はIMEが起動してユーザーが入力操作中なので、見た目では
プログラムが続行してる様子は分からない。

52 :デフォルトの名無しさん:04/08/07 11:37
>>51
imeOnがブロッキングな端末ってなかったけ?

53 :デフォルトの名無しさん:04/08/07 12:39
>>48
>>45
これで分からなければ開発ガイドを嫁
サンプルソースも出てる

54 :43:04/08/07 17:45
>>51のカキコを訂正。47さんスマン。
× >>47(=42)
○ >>48(=42)

>>52
いや、私は知りませぬw

55 :デフォルトの名無しさん:04/08/07 22:10
>>52
呼び出しスレッドが止まるのはあるかも。
VMはサスペンドしないのでIMEの裏でBGMとか流せる。

56 :42:04/08/08 00:01
>>51
そういうことか。ありがとう。よくわかったよ

57 :49:04/08/08 06:52
誰かEclipse使ってないですかー

58 :デフォルトの名無しさん:04/08/08 20:15
おれEclipse使ってるけど49の方法でできたなぁ。

>起動中に例外が発生しました
>理由:
>リモートVMに接続できませんでした。接続は拒否されました

きっとconection refusedってやつだよね。
リモートデバッグってTCPポート使ってるんだっけか?
パーソナルファイヤーウォールとかが原因だったりしない?

59 :デフォルトの名無しさん:04/08/09 08:32
http://www.itmedia.co.jp/enterprise/articles/0407/15/news027_6.html
ここにでてくる「プロジェクト」→「DoJa-3.5設定」ってメニューがないんですが
どうしたらいいでしょうか?
Eclipseのバージョンは2.1.3でDoJaは3.5です。
インストール手順は↑のURLの通りにやりました。


60 :49:04/08/09 10:49
>>59
再起動とか?

>>58
それ系は入ってないんですけどねー
ポートの指定がありますけど、何番にすればOKなんでしょう?

61 :デフォルトの名無しさん:04/08/09 10:55
InputStream inputstream = Connector.openInputStream( "resource:///text.txt");
これをやろうとすると
Exception: java/lang/ClassNotFoundException: com.nttdocomo.io.X900i.resource.Protocol
javax/microedition/io/Connector.openPrim (static) +102
javax/microedition/io/Connector.open (static) +15
javax/microedition/io/Connector.open (static) +6
javax/microedition/io/Connector.openDataInputStream (static) +10
javax/microedition/io/Connector.openInputStream (static) +4
K.A (virtual) +53

こんなエラーが出てしまうのですが、どうやったらresフォルダにいれた
text.txtを読みこむことができますか?

62 :デフォルトの名無しさん:04/08/09 11:02
Classが見つかりません。と書いてある。
つまり
import com.nttdocomo.io.*;
を行っていないのではないかな?

63 :61:04/08/09 11:20
すいません、上記のエラーは出ているようですが
inputstream.read()したら問題なく読み込めているようです。
お騒がせしました

64 :デフォルトの名無しさん:04/08/09 11:24
Felicaの開発してるんですが、誰かやったことある人いませんか?
エラーになって困ってます。

try{
  Felica.open();
  FreeArea fa = Felica.getFreeArea();

  byte[] readData = fa.read();
  Felica.close();

} catch (FelicaException fe){
  System.out.println(fe.toString());
} catch (IOException ie){
  System.out.println(ie.toString());
}

上記コードの「fa.read()」でエラーが発生してしまいます。
マニュアルと同じ様にやってるんですけど、
経験者がいたら教えてください。
お願いします。


65 :デフォルトの名無しさん:04/08/09 11:39
>>59
パッケージエクスプローラーで、プロジェクトを選んだ状態にしてない、とか。
あとはプロジェクトがDoJaプロジェクトじゃない、とか。

66 :デフォルトの名無しさん:04/08/09 13:40
>>64
エラーがでてるならその内容を正しくかかんと
答えをもらいにくいよ

67 :デフォルトの名無しさん:04/08/09 14:40
>>64
自己レスです。
色々調べた結果、Felica用のデータをきちんと作成しないといけなかった
ようです。

Doja3.0(Ver3.2)の「仮想フェリカデータファイルビューワ」を使って、
ADFで設定した「FeliCaCPID」と「FeliCaPin」を特定のエリアに書かない
といけないんですね。
Dojaのマニュアルに書いてありました。

エラーは、要約すると「読込みエラー」でした。




68 :デフォルトの名無しさん:04/08/09 15:46
>>59
当方同じ環境だけどうまく動いてます。

メニューそのものが無い場合はきっと手順抜けです。
PDFのマニュアルを良く読みましょう。

メニューがあるけど選択できないなら
>>65さんので解決すると思う。

プロジェクトを選択してメニューを見てみよう。


69 :デフォルトの名無しさん:04/08/09 16:21
>>65
>>68
レスありがとうございます。
いろいろいじってみたところ、
どうやら原因はパースペクティブが「Java」だったからのようです。
「Java ブラウズ」にしたら出てきました。

70 :デフォルトの名無しさん:04/08/10 02:27
http://www.nttdocomo.co.jp/p_s/imode/java/index.html
ここのiアプリコンテンツ開発ガイド for DoJa-3.0 iアプリオプション・iアプリ拡張編※2
ってのがその先の規約に同意するをクリックしても見れないんだけど
俺だけ?

71 :デフォルトの名無しさん:04/08/10 03:16
>>70
普通にみれるけど、adobeReaderが入ってないとか?

72 :デフォルトの名無しさん:04/08/10 07:26
>>70
対応してないフォントが使われてるか何かってエラーが出るね。
どっか文字化けしてるかもしれないけど、とりあえず文書丸ごと読めないわけじゃないようだ。
対策はアクロバットリーダーを最新にしてみることかな?

73 :デフォルトの名無しさん:04/08/10 07:41
・最新版のAdobeReader使ってるけど>>72のエラーが出る
・AdobeReaderで保存が出来ない
・FORMを使ってるので「右クリックで保存」が出来ない

仕方ないのでソースを見てURL直打ちでirvineで落とした
ダウンロードのダイアログを出したいんだけどどうすりゃいいの?

74 :デフォルトの名無しさん:04/08/10 08:19
意味がわからんな。
落としたなら普通にみればいいじゃん。

75 :デフォルトの名無しさん:04/08/11 02:04
DoJa-3.5の各機種オプションAPI・拡張API実装状況ってなんでないんだ?
全部実装されてるとみていいのかな?

76 :デフォルトの名無しさん:04/08/11 02:15
>>75
いや、割と悲惨な状況。

77 :デフォルトの名無しさん:04/08/11 03:59
以下URLを参考にして Eclipse + Doja の導入を行っているのですが
[実行]-[実行] の段階でエラーが出てしまいはまっています。
http://www.itmedia.co.jp/enterprise/articles/0407/15/news027.html

エラー内容は、

  Error: com.nttdocomo.eclipse.DoJaBuildException:
   Fail to create C:\eclipse\workspace\SampleAppli\bin.jar

過去スレのPart4 >>290と同じ状態です。
http://pc2.2ch.net/test/read.cgi/tech/1067139509/290

以下が解決方法とのことです
>J2SE SDKのbinディレクトリにパスを通す
このパスの通し方を教えて頂けないでしょうか。

[マイ コンピュータ]-[プロパティ]-[詳細]-[環境変数]
のPATHは C:\j2sdk1.4.2_05\bin で通っています。

Eclipse用のDoJaプラグイン特有の問題っぽいのですが
よろしくお願いします。

78 :デフォルトの名無しさん:04/08/11 04:31
>>77
パスが通ってないのが問題であれば、Eclipse自体立ち上がらない。

79 :デフォルトの名無しさん:04/08/11 04:35
ところで、OSとEclipseのバージョンとDoJaのバージョンとハードディスクの残り容量は?

80 :デフォルトの名無しさん:04/08/11 10:36
>>77
その話はPart5でも出てた。

http://pc6.2ch.net/test/read.cgi/pcqa/1092097220/l50
ここで「パスの通し方教えてください」とでも聞けば。

81 :デフォルトの名無しさん:04/08/11 12:40
音楽(mld)ファイルをユーザーに選択させるとき
ImageStore.selectEntry() みたいに選択画面を出したいのですが
どうもそれらしき関数が見当たりません。
最初はSoundStoreかと思ったのですがaddEntryしかないし・・・。
ひょっとして自力で作らないとダメですか?

82 :デフォルトの名無しさん:04/08/11 13:02
>>77
cygwinが入ってるとうまくいかないってのが前にあったような。
PATHにcygwinが入ってるか確認してみ。
で、cygwinのパスがあったら削る。

83 :デフォルトの名無しさん:04/08/11 15:03
eclipseでhttp接続が上手くいかない。
Error:java.lang.SecurityException: Illegal PackageURL in ADF
が出ちゃう。
iappli tool kit for doja3.0で実行すると上手くいくんですが、
eclipseだと設定が何か足りないらしい。

ADFのURLは[ウィンドウ]→[設定]のところからtool kitと同じように
http://www.xxxx.ne.jp/xxx/ と書き込んだし、
「プロジェクト名.properties」に「adfUrl = http://www.xxxx.ne.jp/xxx/」と
なっているのも確認しました。

教えてエロイ人。


84 :83:04/08/11 15:05
あ、もちろんjamでは
UseNetwork = http
になってます。
よろしくお願いします。

85 :デフォルトの名無しさん:04/08/11 15:10
>>78 eclipse.exeはJREだけあれば立ち上がるのでSDKに
パスがとおってなくても立ち上がる。普通SDKをインストール
したら、JREもいっしょにインストールされるからね。

86 :デフォルトの名無しさん:04/08/11 19:00
最近PATHとかCLASSPATHとか設定しなくなった軟弱モノ。

87 :デフォルトの名無しさん:04/08/12 00:36
CLASSPATH環境変数は、JDK1.2のころから、設定するのは非推奨だと思うが。
いまは-classpathオプションでしょう。

88 :デフォルトの名無しさん:04/08/12 02:19
いや、コンパイルはantだし、実行はjarかサーブレットだから、オプション使うこともない。

89 :デフォルトの名無しさん:04/08/14 11:11
透過色指定できるのは.gifだけ?
プログラム内で作ったImageに透過色を設定する事は出来ないのかな?

90 :81:04/08/14 12:27
だれかわかりませんか〜?

91 :デフォルトの名無しさん:04/08/14 14:05
ttp://www.seckey.net/iappli/KVMMark.html
ここ、繋がらないんだけど、閉鎖したの?

92 :デフォルトの名無しさん:04/08/14 14:34
>>90
ネイティブの着メロ領域から選択したいのか?
それは不可能
自力で作るのも不可能だ。そもそもアプリから読めないんだから

ただしjpg画像とかに偽装すればImageStoreで読めると思われ
(偽装の仕方はググってくれ)

93 :デフォルトの名無しさん:04/08/14 16:05
>>89
だけ。
出来ない。

こっち向けの質問だな。
【初心者歓迎】iアプリ相談室
http://pc5.2ch.net/test/read.cgi/tech/1089530578/

94 :デフォルトの名無しさん:04/08/14 17:12
>>93
> こっち向けの質問だな。

そうか?

95 :93:04/08/14 18:09
>>94
開発ガイド詳細編にそっくりそのまま答えが書いてあることだから。
(pdfファイルを「透明」で検索してみて)

96 :デフォルトの名無しさん:04/08/15 00:57
>>89
Doja3.5ならできるよ>TransparentImage


97 :96:04/08/15 00:59
追伸
拡張APIなのでできる端末とできないのがある。
N900iはできない
SH900iはできる

98 :デフォルトの名無しさん:04/08/15 01:15
>>95
ということは、質問するときは、開発ガイドを調べた上で、載ってたら初心者スレにいけと。
開発ガイドに載ってないものはこっちで、と。

99 :デフォルトの名無しさん:04/08/15 01:41
開発ガイドを調べて載ってて解決したら質問しなくていいだろw
それより載ってないときはどっちのスレに質問すればいいんだろね。
質問内容が初心者的かどうかなんて主観の問題じゃん。

100 :デフォルトの名無しさん:04/08/15 04:54
>>99
そう。
だから、開発ガイドに載ってるのだから初心者向けへ、という>>93への皮肉ということで。
基本的には初心者スレをわけるのは反対というか、ただ分散するだけで、あまり機能しない/してないと思ってる。

101 :デフォルトの名無しさん:04/08/16 22:19
開発ガイドを見ても意味が分からない、開発ガイドの見方・調べ方が分からない。
そんな人だからこそ「初心者」と呼ぶべきなのかも知れない。

皮肉なのかも知れないが、基本的には>>95の心構えで良いと思う。
「載っているようですが、○○の意味が分かりません」という質問なら初心者スレも
後人のための良スレとなるかも知れん。

102 :デフォルトの名無しさん:04/08/17 06:54
過去レス見てから質問するような立派な初心者ばかりではないのです

103 :デフォルトの名無しさん:04/08/17 13:48
通信するアプリで自分が送受信したパケットをカウントする方法ってあります?
送った文字数とかリクエストしたアドレスからとかである程度はカウントできそうですけど、
なるべく正確にカウントしたいのですが

104 :デフォルトの名無しさん:04/08/17 14:21
1パケット128バイトだ。計算しる。

105 :デフォルトの名無しさん:04/08/17 14:37
>>104
どこのデータとって数えたら一番効率がいいかなぁ
ヘッダとかもあるし。

106 :デフォルトの名無しさん:04/08/17 17:06
ヘッダとか除いた価格だと思ってたんだが。


107 :デフォルトの名無しさん:04/08/17 17:08
>>106
ヘッダも入ってるだろ?しらないけど

108 :デフォルトの名無しさん:04/08/18 00:10
>>106
ドコモはヘッダを含めた価格です。
auは確か含めなかったカナ?

109 :デフォルトの名無しさん:04/08/18 02:14
LastModified をアプリから知る方法ってありますか?
できたら DL 用の html や jam の AppParam に埋め込んだ物を取得するのではなくて jam の LastModified をそのままアプリから知りたいのですが。

110 :デフォルトの名無しさん:04/08/18 07:12
>>108
そうなのか。auはその辺もアピールできないと損だなぁ

111 :デフォルトの名無しさん:04/08/18 22:08
eclipseでビルドするとDoJaでビルドするより1割位クラスファイルがでかくなるな…
ソースの記述だけにしといた方が無難っぽい。

112 :デフォルトの名無しさん:04/08/18 22:16
スクラッチパッドから壊れてしまっているgifを↓のような感じで
読み込もうとすると
MediaImage mi = MediaManager.getImage("scratchpad:///0;pos=" + (??));
例外もなくそのまま止まってしまうようなんですが
何か回避策などありませんでしょうか?
どうもN505だとちゃんと例外がでるようなんですが
D505だとほとんどの場合フリーズしてしまう感じなんですが・・・

113 :デフォルトの名無しさん:04/08/18 22:23
>>111 eclipseはデフォルト設定だとデバッグ情報全部付加するからね。

114 :デフォルトの名無しさん:04/08/18 23:23
>>112
なぜ壊れているのかを調べる方が先だと思うぞ。
自鯖経由でどこかから拾ったとかの理由で壊れているかどうか分からないなら
APIリファレンスによるとIllegalArgumentExceptionを吐くらしいのでそれを調べよう。
それでもダメならgetImageする前にbyte[]に書き出して解析しなさい。
gifの仕様書はググれば直ぐに出てくる。
その気になれば展開ルーチンも自作できるはず。
もし鯖経由で拾ってるなら鯖側でgifのチェックをした方がいいかもしれない。

115 :デフォルトの名無しさん:04/08/19 01:44
GIFが壊れてるかどうかなんて、適当な画像ビューワで表示させれば済む話じゃないの?
あるいはImageMagickのdisplay -vとか?

116 :デフォルトの名無しさん:04/08/19 02:54
>>113
デバッグ情報全部切っても、ほんのちょっぴりとはいえ、コードが大きくなるみたいだね、JDTは。
その分実行速度とかに恩恵が回ってるのかもしらんが、よくわからん。

どうもJDTが吐き出したJARだと、JavaBlenderとか使う時に変な最適化というか、
ぶっちゃけて、たまに動かないバイナリが作られることがあるみたいなのが気になる。
JDTのせいじゃなくって、この種の最適化ツールが局所的なバイトコードの
並びに依存してる場所があるせいなんだろうけど。

もちろん、漏れの言いがかりの可能性も高い。
誰か詳しいレポきぼん。

117 :デフォルトの名無しさん:04/08/19 06:59
何でGIFが壊れるのかね?
そっちの方が問題だろ

それはそれとして、D505iは糞だから何が起こっても不思議じゃないよ

118 :デフォルトの名無しさん:04/08/19 08:13
>112
スクラッチパッドにgifがあるってことは、ネットワークからの受信かな?
だったらCRC付加してチェックしたほうがいいんじゃない?

119 :デフォルトの名無しさん:04/08/19 10:59
>>111
公式ドキュメントにもリリース時はDojaでビルドしなさいって書かれてるね

120 :デフォルトの名無しさん:04/08/19 12:04
>>118
データが通信中に化ける事は無いが、「ただ今込み合ってます」みたいなHTMLになる事はある
だから、データにヘッダか何かを付けてそれをチェックするように作るべし
CRCでもいいけど、そこまでしなくても問題ない

GIFファイルなら、データの頭が"GIF"かどうかを調べれば十分

121 :112:04/08/19 13:18
レスありがとうございます。

>118
はい、ネットからgifをダウンした際にデータに欠落やゴミが
入った場合などを想定してテストしてました。

なので予め壊れたgifをサーバに置いて、それをアプリで
DLしてチェックしてました。
さすがに1バイト目から壊れている(不正な)場合は
D505でもちゃんと例外をスローするようなんですが
データの途中がおかしい場合はフリーズするときがある感じです。

>120
>データが通信中に化ける事は無いが

これってホントなんでしょうか?


やっぱり独自にCRCとか入れてチェックするのが
正攻法なんでしょうかね・・。

122 :デフォルトの名無しさん:04/08/19 13:45
ほんとです

123 :デフォルトの名無しさん:04/08/19 13:59
>>121
チェックサムぐらいでいいと思うよ。
lengthチェックして問題なくても実際には
データがぶっ壊れてることがあるみたいだしなぁ。

124 :デフォルトの名無しさん:04/08/19 14:32
504iで十分でしょ。

125 :118:04/08/19 15:27
>121
スクラッチに保存した時点でデータが壊れているのは絶対さけないといけないと思う。(壊れているデータを保存しちゃだめ)
受信データが大きい場合、504なら10KB単位で、505なら20KB単位でCRCをチェックして、
正常ならスクラッチに保存、ダメならリトライ。
ちなみにリトライはユーザーにするかどうか確認したほうが親切かな。
ユーザーがいる場所が悪いかもしれないから。
ちなみに商用アプリはCRCとっている場合が多いよ。(石橋たたいて渡る)
個人的な経験ではデータ化けはまだ経験していないけど、データが欠落したことはあったので、
受信データの受信総容量は最低でもチェックすべきかと。


126 :デフォルトの名無しさん:04/08/19 20:02
ALERT: Bad method signature
ってのが出て来るんだが、なんだこれ?
catch出来ないし、呼び出してるメソッドはただのコンストラクタだし
原因がわからん。

127 :デフォルトの名無しさん:04/08/19 20:33
こんどはIApplication#start()にくるまえに
ALERT: Invalid constant pool entry
が出てくる・・・
今までこんなことなかったのに

128 :デフォルトの名無しさん:04/08/19 21:00
TCP/IPつかっててデータが化けることはないだろ。。
でも無線部分で何やってるかはわからんか。

129 :デフォルトの名無しさん:04/08/19 22:33
>>126
ALERTはExceptionだからcatchなんかできるわけないだろ

130 :デフォルトの名無しさん:04/08/19 22:39
>>126 エラーメッセージに書かれてるように、シグネチャーがcallerとcalleeで一致してない。
>>127 こっちは、実行しようとしてるクラスファイルが壊れてるって意味。
間違ったライブラリbootclasspathなりclasspathに通してるか、
バグった圧縮ツールとか使ってクラスファイルの構造が壊れてるのか。。
まず、ふつうにDoJaの公式エミュレータでコンパイルして動くかどうかやってみるのが良いと思う。

131 :デフォルトの名無しさん:04/08/19 23:08
>>125
>>128
確か過去スレで答えが出てる。
iアプリの通信はエラーフリーで、データ化けは考慮しなくていいはず。

132 :デフォルトの名無しさん:04/08/20 00:18
おサイフケータイ(Mobile FeliCa)のフリー領域に PaSoRi を使ってアクセス
するための、支援ライブラリ(DLL)を作ってみました。

フリーソフト作者のみなさんに利用してもらおうと考えているのですが、
一般に公開する前に、試しに使ってもらえる香具師いませんか ?


133 :デフォルトの名無しさん:04/08/20 00:41
>>67
そうなんですよね。
実機だと ADF で指定した CPID と PIN を、自動的に FeliCa チップに書き込んで
くれるんだけど、 Doja だと自分で仮想 FeliCa に書き込まないと認証エラーに
なっちゃうんですよね。私もはまりました。

あと、外部 R/W からアクセスする時、どういった手順で PIN 認証を行うのかが
記載されてないのでちょっと不親切。
write_block_without_encryption じゃなくて、rw_write_block_without_encryption
を使わないとエラー・ステータス返すし。

134 :デフォルトの名無しさん:04/08/20 00:42
>>129>>130
レスども

色々思考錯誤して原因判明
自分でPaletteってクラス作ってたんだが
どうやらこれをcom.nttdocomo.ui.Paletteと勘違いしている模様
Paletteを使うクラス(A)では何もインポートしてないんだけど
Aを使うクラスでcom.nttdocomo.ui.*でインポートしてたのがいけなかったようだ

135 :デフォルトの名無しさん:04/08/20 01:20
と思ったら違った。
うっかりPaletteクラスのあるメソッドにfloat使ってた。
アホだな、俺

136 :デフォルトの名無しさん:04/08/20 01:56
>>131
エラーフリーかもしれんが、
「サイトが混雑してます」というのを返してくれることがあるから、
エラーと区別できないんじゃなかったか?

137 :デフォルトの名無しさん:04/08/20 20:31
>>136
それは中身を見れば解決できる。
今回の場合は、120さんの言うように先頭が"GIF"かどうか調べれば十二分だ。

138 :デフォルトの名無しさん:04/08/21 01:28
自分でチョン切ったデータなら、先頭数バイトにお好みでFOURCCでもなんでも書いといて
それだけチェックすればOK、でFAだったかな。

139 :132:04/08/21 11:04
>>132

おサイフケータイ(Mobile FeliCa)のフリー領域に PaSoRi を使ってアクセス
するための、支援ライブラリ(Windows 用DLL)をダウンロードできるようにしま
した。

http://www014.upp.so-net.ne.jp/SFCardFan/


140 :デフォルトの名無しさん:04/08/21 16:04
実行速度速くしたきゃbyteで足りるところでも
intで計算したほうがはやいかな?

141 :デフォルトの名無しさん:04/08/21 16:42
ご自分でお計りなさい。

142 :デフォルトの名無しさん:04/08/22 01:32
>>140
javaでもCでもbyteで計算なんてできないんだが。
byte a, b;
として
a + b
とかやろうとしたら、内部で勝手に、aもbもintにされてから計算される。
ttp://www.y-adagio.com/public/standards/tr_javalang/5.doc.htm
の5.6.2見てみ。

143 :デフォルトの名無しさん:04/08/22 12:46
>>139
おっつー
俺も研究してみよ

まだFeliCa端末も浸透してないのでキツイかも知れませんが
またーりと長い目でがんばってくらはい

144 :デフォルトの名無しさん:04/08/23 10:01
突然失礼します。
携帯用iアプリを制作していますが、障害物判定が希に抜けてしまい、全然ダメダメで....

5万程度で、誰かバグフィクスお願い出来ないかと思い書き込みしたのですが。

どなたか、お願い出来ませんでしょうか?

145 :デフォルトの名無しさん:04/08/23 10:28
こんなところで募集するとは、ある意味すごいな

146 :デフォルトの名無しさん:04/08/23 10:32
>>144
その程度の処理で問題が出る程度のコードは他の部分も目も当てられない
状態に違いない。

147 :デフォルトの名無しさん:04/08/23 12:56
そもそも、障害物判定なんて、
iモードやjavaなんかと関係なくアルゴリズムの部分だから
ややスレ違い風味かと。

148 :デフォルトの名無しさん:04/08/23 13:23
カネ出してバグフィックス頼むってことは、カネもらってやってるんだろうなぁ。

149 :デフォルトの名無しさん:04/08/23 14:30
フレームレートが低すぎて
障害物突き抜けちゃってるんだろうなぁ…

150 :デフォルトの名無しさん:04/08/23 15:35
>>144
募集する気があるなら捨てアドぐらいはっとけ

151 :144:04/08/23 16:17
趣味で制作中なんだけど、調べても意味不明過ぎます。
プログラム苦手なんですよねぇ....(;´Д`)

捨てアド貼っておきます。

uzeeeeeee@hotmail.com

152 :デフォルトの名無しさん:04/08/23 16:26
一番安直な方法

ゲームの速度を1/Nにして、Nフレーム分の演算→描画→(繰り返し)
恐らく描画が一番重い処理なので数フレームくらいなら平気


153 :144:04/08/23 17:44
気軽にメールお願いします〜

154 :デフォルトの名無しさん:04/08/23 18:33
>>144
「シューティングゲームアルゴリズム マニアックス」でも買っておけ。

ttp://www.amazon.co.jp/exec/obidos/ASIN/4797327316/250-1058187-0084216
弾幕がメインだが、当たり判定の話もある。でたばかりだから書泉にまだ
平積みしてると思われ。

155 :デフォルトの名無しさん:04/08/23 18:33
浮動小数点使えないところは、自前でなんとかしろよ。

156 :デフォルトの名無しさん:04/08/23 19:15
>>144
ソース貼りゃ、誰か暇なやつが勝手に修正するだろうよ。

157 :デフォルトの名無しさん:04/08/23 21:07
>>154
読んだ?感想キボン
ちょっと欲しい

158 :144:04/08/23 22:17
自前で何とかするしかないのでしょうか...うーむ。

159 :144:04/08/23 22:18
貼るのは少し抵抗が有りますので、誰かメール送って頂けませんか?
@hotmailでも何でも良いので、見てくれるだけでも....

正直、俺には限界です(;´Д`)

160 :デフォルトの名無しさん:04/08/23 23:30
>>144
甘ったれたこと言ってるなよ、勘違いも甚だしい。
あんたが言ってることは「お金あげるからプログラム作って」と同じ。
それならよそのスレ行って募集しろ。
アドバイスもらって自力で解決する気があるならこのスレでとことん聞け。
ソースはどこかアップローダを利用すればいいじゃないか。とりあえず頑張ってみろよ。

161 :160:04/08/23 23:36
と、叱咤するだけじゃなんなので簡単なパターンを書くからちょっと待ってて。

162 :デフォルトの名無しさん:04/08/24 00:14
すっぽ抜けのパターンは大抵この2つ。
1.当たり判定で座標計算そのものを間違えている
2.キャラの移動と当たり判定の処理順がおかしい

1.のパターン
キャラAがキャラBの手前から向こうへ移動しようとするとき、
移動量がキャラBの大きさより大きくて、キャラAがキャラBと
重なることなく向こう側へ行ってしまった場合。
このように移動量が対象物体より大きくなる可能性がある場合は、
単純に移動後のキャラAとキャラBの座標を比較するのではなく、
キャラAの移動前後の座標とキャラBの座標をそれぞれ比較して
当たったかどうか(追い抜いたかどうか)を判定する。

2.のパターン
キャラAの移動→キャラBの移動→当たり判定の順だとすっぽ抜ける。
キャラAの移動→当たり判定→キャラBの移動、の順にして、
キャラAを移動させてキャラB(移動前)と当たっていればキャラBの
移動処理を行わないようにする。
キャラA、キャラBがそれぞれ複数ある場合(シューティングの自弾と敵機)、
ともに当たり判定のフラグを持っているとその後の処理がやりやすくなる。
自弾(キャラA)を移動して、当たり判定をして、当たった自弾と敵機(キャラB)
双方の当たりフラグを立てる。
キャラの生死や描画/消去はこのフラグを見ればいい。

実際にはソースを見ないと何とも言えないけど(ぶっちゃけ見る気はないけど)。
まさか2つの領域(四角形領域)の重なりを判定する式自体を間違えているとかは勘弁な。

163 :デフォルトの名無しさん:04/08/24 02:22
>>162
もう一つ可能性を挙げてみる。

3. 1フレームあたりの移動量が当たり判定サイズと比べて大きすぎる

この場合、領域同士の重なりで判定するんじゃなくて、線分同士の交差
判定などで取る必要が出てくる。

164 :162=160:04/08/24 03:05
>>163
あ、そうです。
>>162の1.のパターンは>>163ってことが言いたかったのです。
分かりづらくてすみません。座標じゃなくて領域って言葉使えばよかったんだな。

165 :144:04/08/24 03:23
大変、参考になります。
募集するだけだと自分の進歩有りませんよね。

少し頑張ってみます。
よーし、ガンガン質問するぞーw

166 :デフォルトの名無しさん:04/08/24 08:56
あー、盛り上がってるところ悪いんだけど、ここはiモードスレなんで、
あたり判定とかはアルゴリズムスレに行ってくれないか。

167 :デフォルトの名無しさん:04/08/24 10:56
金で解決ぶぁいやいやい〜♪

168 :デフォルトの名無しさん:04/08/24 11:25
VBとDelphiとC++Builderしか使ったことのないあっしでも携帯javaアプリは作れますか?

169 :デフォルトの名無しさん:04/08/24 11:48
C++がわかってればjavaは容易いが、
携帯のお約束は思った以上に多いので、
頑張り次第といったところか?

まあ、その辺は本がいっぱい出てるから参考にするのもいいかと

170 :デフォルトの名無しさん:04/08/24 12:10
>>168
(´-`).。oO(あつしの使ったってレバルが気になるな…)

171 :デフォルトの名無しさん:04/08/24 14:17
(´-`)つ[どこから突っ込んで良いものやら]

172 :デフォルトの名無しさん:04/08/25 00:32
(´-`).。oO(漏れとかgccしか使ったことなかったが…)

173 :デフォルトの名無しさん:04/08/25 01:02
>>141>>142
レスどうも
色々調べてみたら
http://www.asahi-net.or.jp/~dp8t-asm/java/tips/OptUseInt.html
intでやったほうがいいみたいです

174 :デフォルトの名無しさん:04/08/25 01:41
ついでにbyteで配列持つのとintで配列もつのも比べてみよう。

175 :デフォルトの名無しさん:04/08/29 13:04
携帯はメモリが少ないから出来るだけ配列は考えて作ったほうがよろしいですな。
byte[]で済むなら素直にbyte[]にするべき。
速度が気になるならアルゴリズムを見直した方が速かったりするし。
どうでもいいけどなんでjavaってunsingedがないんだろう。

176 :デフォルトの名無しさん:04/08/29 13:05
unsignedだったよゴメン
2chブラウザだから予約語扱いされなかった

177 :デフォルトの名無しさん:04/08/29 15:26
>>175
ところがぎっちょん、初期化済み配列については、
byteの方が遥かにかさばったりする。

javacが定数の展開をしてくれず、初期化済み配列も、実際には
さっきキャストが発生すると書かれていたbyteへのキャスト命令を
大量に織り込んだ形で展開されてしまう。
ついでにzipの圧縮効率も落ちるため、時としてJARのサイズに
致命的なまでの違いを生む事がある。

この種のデータが重荷になるなら、生バイナリとして外部に出してしまい、
別途スクラッチパッドに読み込んだものを展開して使うのが常道


…だったんだけど、この辺の事情はどうなったんだろうね、最近。
相変わらずでつか?

178 :デフォルトの名無しさん:04/08/29 19:52
色んな機種のキーの同時押しの可否について知りたいんだけど…
とりあえず知りたいのは十字キーの斜めとテンキー(#*含む)のどれか1つとの同時押しが可能かどうか。
ん・ぱか工房の機種依存情報にもある程度載ってますが、
そこに載ってるの以外でも、例えばN505iはできないらしいです。
N900iも無理ですが、ニューロポインターとの組み合わせならできるみたい…。
他、情報がありましたらよろしく。

179 :デフォルトの名無しさん:04/08/29 21:59
>>178
ドキュモのサイトで機種別情報をPDFで落としてきて、細かくチェックしる。

180 :デフォルトの名無しさん:04/08/30 00:28
>>177
classファイルには、バイト列のデータをそのまま貯蔵しておくような場所が無いからねえ。
解決はできないと思われ。
唯一の例外は文字列なわけなので、どうしてもそういうことしたいなら、がんばって
2バイトずつくっつけたUnicodeの文字列としてコードに埋め込むのかなあ。
で、getChars()で処理すると。

181 :デフォルトの名無しさん:04/08/30 00:29
>>175
漏れもunsigned欲しい。
せめてbyteはunsigned使えるようにして欲しかったなり。

182 :178:04/08/30 06:50
>>179
機種別情報ってこれのことでしょうか?
http://www.nttdocomo.co.jp/p_s/imode/java/caution.html
ここだとキー同時押しのことはD504にしか書かれてないです。
それに、斜め押しと他のキーとの同時押し判定が可能かどうかもあやしいし…(´・ω・`)

183 :デフォルトの名無しさん:04/08/30 08:23
>>178
キーの同時押しはCanvas#getKeypadState()使て自力で判定しる。
機種依存がどうこう考えるまでもないだろ。

184 :デフォルトの名無しさん:04/08/30 08:50
getKeyPadState()での同時押しに問題が出るのはDシリーズの
123キー、456キー、789キーが同時に2つ以上検出できないのだけじゃなかったか。
Nのは聞いたこと無いなあ。

すまんが情報の持ち合わせが無い。漏れがN504と505でアプリ書いたときには、
特に問題が出た記憶はないが、テンキーと十字キーの同時使用は考えなかった。
(つか、内部でテンキーと十字キーを同じ扱いにしてた)

あまり機種依存ではまるのが不安な様なら、UIの設計変えるのも検討した方が
いいかもしれないと思えるいけど…。

185 :デフォルトの名無しさん:04/08/30 11:09
そもそも斜めキーがない端末多いし

186 :デフォルトの名無しさん:04/08/30 12:49
>>184
その問題はD504iのみだね。504iの「iアプリ作成に関する注意事項」に書いてある。
123、456、789、*0#、それぞれの組内で同時押しが判定できない。

187 :デフォルトの名無しさん:04/08/30 19:45
FeliCaで質問です。
お店とかでリーダーにかざすだけで会員証登録できたりしたら便利だなー なんて思うのですが、
メールアドレスとか電話番号とかを吸い出すことってできるんですかね?

iアプリを使えば可能??


188 :デフォルトの名無しさん:04/08/30 23:50
タイーホ

189 :デフォルトの名無しさん:04/08/31 10:09
先にこっちだな

       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       | 通報しますた
       \
          ̄∨ ̄ ̄ ̄ ̄ ̄ ̄
                   ∧_∧      / ̄ ̄ ̄ ̄ ̄ ̄ ̄
         ∧_∧     ( ´Д` )    < 通報しますた
         ( ´Д` )   /⌒    ⌒ヽ    \_______
        /,  /   /_/|     へ \
       (ぃ9  |  (ぃ9 ./    /   \ \.∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
        /    /、    /    ./     ヽ ( ´Д` )< 通報しますた
       /   ∧_二つ (    /      ∪ ,  /   \_______
       /   /      \ .\\     (ぃ9  |
      /    \       \ .\\    /    /  ,、    ((( )))  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
     /  /~\ \        >  ) )  ./   ∧_二∃    ( ´Д` ) < 通報しますた
     /  /   >  )      / //   ./     ̄ ̄ ヽ    (ぃ9  )  \_______
   / ノ    / /      / / /  ._/  /~ ̄ ̄/ /   /    ∧つ
  / /   .  / ./.      / / / )⌒ _ ノ     / ./    /    \   (゚д゚) ツーホーシマスタ
  / ./     ( ヽ、     ( ヽ ヽ | /       ( ヽ、   / /⌒>  )  ゚(  )−
(  _)      \__つ    \__つ).し          \__つ (_)  \_つ   / >


190 :デフォルトの名無しさん:04/08/31 10:28
>>188-189
なぜタイーホ??
誤爆?

191 :デフォルトの名無しさん:04/08/31 11:01
個人情報を無断で取り出そうとしてるからだろ。

192 :デフォルトの名無しさん:04/08/31 11:10
情報提供。
仕様書に書いてあるかもしれんけど、携帯のHTTP通信のタイムアウト時間は1分ジャストっぽい。
HTTPをサーバー側で保留して行う擬似リアルタイム通信の際注意すべし。

193 :デフォルトの名無しさん:04/08/31 11:32
>>191
会員証登録って書いてあるんだから無断じゃないじゃん

今までわざわざ紙に書いて貰ってたステップを省きたいってことだろ??

194 :デフォルトの名無しさん:04/08/31 12:00
>>193
他人のふりして擁護しなくていいから。
会員証登録ってなんだよ。Felica利用のついでに勝手に電話番号とかとられたら嫌だろ?
あほか


195 :デフォルトの名無しさん:04/08/31 12:10
イヤとかそういうこと以前に、技術的に可能なのかどうなのかを聞いてると思うのだが。


196 :デフォルトの名無しさん:04/08/31 13:30
ヨドバシとかビックのカードもFelicaだろ?
個人情報とか抜かれてるのかな?

197 :デフォルトの名無しさん:04/08/31 14:25
>>195
だから他人のふり擁護はしなくていいから。
利用者が嫌と思うようなことが、簡単に出来る仕組みなわけねーだろ。

198 :デフォルトの名無しさん:04/08/31 18:50
>>187
まず、Mobole FeliCa の領域を確保するためには、そのエリアを管理するための iアプリが必須。
Mobile FeliCa は、R/W から見れば、普通の FeliCa としか見えない(単なるメモリにしか見えない)
から、IrDA みたいに IrOBEX を使ってアドレス帳とかが読み取れるわけではない。

R/W 側から特定のiアプリの起動要求をかける手順が規定されているから、その FeliCa 領域を
管理する iアプリを立ち上げて、マルチ CPU システムが 2 Port RAM 経由で通信を行うような
手法を使えば、アドレス帳の内容を転送できるかもしれないけど、トラステッド iアプリじゃ
なきゃアドレス帳にアクセスできない。

そもそも、聞く前に
「iアプリコンテンツ開発ガイド for DoJa-3.0 iアプリオプション・iアプリ拡張編」ぐらい
読めや。DoCoMo のサイトから誰でもダウンロードできるし。
これの「第16章 FeliCa チップ」の項目な。

199 :デフォルトの名無しさん:04/08/31 21:47
ってかFeliCaにXString食わせるのってできない希ガス

200 :デフォルトの名無しさん:04/08/31 23:35
結論
iモードFeliCaでも電話番号やメアドを抜く事はできない

201 :デフォルトの名無しさん:04/09/01 00:01
転送できないようにXStringになってるのに、抜けるわけないじゃん。

202 :デフォルトの名無しさん:04/09/01 00:42
XStringって、うまく考えられた仕組みだよね。

203 :デフォルトの名無しさん:04/09/01 00:44
>>196
抜かれる前に、普通に登録して教えてるだろ。

204 :デフォルトの名無しさん:04/09/01 00:53
>>202
CLDCにSerializableが無いからこそ出来た技だもんな。

205 :デフォルトの名無しさん:04/09/02 13:20
業務でやってる人、
http://mysta.flexfirm.co.jp/product/test/index.html
この辺とか使ってる?
それとも自社で実機かき集めてテストですか?

206 :デフォルトの名無しさん:04/09/02 13:31
>>204
あってもできるんじゃない?

207 :デフォルトの名無しさん:04/09/02 14:30
>205
M3。
でも高いね。
自社で揃えることもある。

208 :デフォルトの名無しさん:04/09/02 15:13
>>207
200台維持すること考えれば、安いかも。
着メロでも作ってなきゃ元とれんよ。

209 :デフォルトの名無しさん:04/09/02 15:15
そんなに念入りにチェックしないなぁ。
素直な機種と、そうでない機種があるから、素直じゃない機種はそろえてるけど。

Vodafoneはチェックシートに「発売されている全ての端末で正常に動くことを確認した。○or×」なんてあるのが
すげーむかつくんだよな…。
調べられるかボケ。

210 :デフォルトの名無しさん:04/09/02 15:50
>>208
iアプリだと、30機種ぐらいか?
それでも自社で持ってたら、すげぇことになるな。

業者のところに出向いて自分らでテストしてる。
テストは一日で終わるよう綿密な計画を立てて。
でも、結構楽しいんだよな、これ。いろんな携帯さわれるし。

211 :デフォルトの名無しさん:04/09/02 18:41
まあ、発売された端末のテストは、楽でいいだろうね。
発売されてない端末のテストは、端末かアプリかどっちが悪いかわからんから楽しくない。

212 :デフォルトの名無しさん:04/09/02 18:47
http://pc5.2ch.net/test/read.cgi/prog/1087437071/
こっちのスレの人ですか?

213 :デフォルトの名無しさん:04/09/02 21:46
CanvasでGIFアニメを動かすことは可能でしょうか。
できない場合は、GIFアニメを1フレームずつGIFで持たせて
1枚1枚表示させる方法にすればよいですか。

214 :デフォルトの名無しさん:04/09/02 23:17
>>206
そういやimplements Serializableしなきゃだめなんだった。

215 :デフォルトの名無しさん:04/09/02 23:18
初心者用スレと同一人物か?全く同じこと出てるぞ。

216 :デフォルトの名無しさん:04/09/02 23:37
>215
ども。

217 :大阪人:04/09/03 16:56
>>205
この手のサービスって東京でしかやってないのかなあ。

218 :デフォルトの名無しさん:04/09/07 01:54
3.0以降ってjpg読み込み全機種対応してんだっけ?

219 :デフォルトの名無しさん:04/09/07 09:05
もうちょっと聞く態度というものを磨け。
2.0から全対応。

220 :デフォルトの名無しさん:04/09/07 11:41
>>219
へーそう。ありがとさん

221 :デフォルトの名無しさん:04/09/07 11:45
流石に同一人物ではないだろうが、煽りをわざわざ召喚しないように>>219

222 :デフォルトの名無しさん:04/09/07 19:50
端末の処理速度もっと速くならないかなあ。
RPG作ってるんだけど、マップのレイヤー処理は諦めざるを得ない感じ。
20fps(50ms)を維持しようと思ってるんだけど、これだと背景一枚とNPC描画が限界だよ。


223 :デフォルトの名無しさん:04/09/08 03:11
10FPSに落とせば?RPGだし。
絵がそれで倍描けるなら、トレードオフを検討してもいいと思うけど。

224 :デフォルトの名無しさん:04/09/08 10:57
今度メッセージiアプリをFOMA専用アプリで使うことになったのですが、
送れるメッセージの量が不明瞭で困っています。

MessageDraftのsetDataの例外発生条件には
・メッセージiアプリのメッセージの仕様に準拠していない場合に 発生します。
任意のバイナリデータが設定可能のため、
実際にはサイズ超過の違反のみが該当します

とあるのですが「メッセージiアプリのメッセージの仕様」自体が見つかりません。

企画段階で容量限界のあたりをつけなければいけないのですが、
ご存知の方いらっしゃいませんでしょうか?

225 :デフォルトの名無しさん:04/09/08 15:54
>>22
差分描画にしないとキツいと思うよ

226 :225:04/09/08 15:55
↑スマソ、 >>222 です

227 :222:04/09/08 17:30
誤魔化してなんとかレイヤー処理出来るようになりました。
for二重ループも使い方次第だね。
重いところは16fps位まで落ちる事もあるけど…

>>223
それも考えたんだけど、出来るだけ滑らかに動かしたかったので…

>>225
既にやっていますた。

ちなみに端末はSH505iで、16*16チップを15*15*2layer並べてます。
(下層と上層に分けて、人が建物の影とかに隠れるようにしてる。)

228 :デフォルトの名無しさん:04/09/08 17:41
('-`).o0(今更Dシリーズのことなんて言えないよな…)

229 :デフォルトの名無しさん:04/09/08 22:30
> ちなみに端末はSH505iで

機種間の差が凄いぞ
他の機種でもやってミソ

230 :デフォルトの名無しさん:04/09/08 22:46
マップチップ16*16って、そんなに小さく分ける必要あるのか?
16*16チップを4つ組み合わせた32*32チップを用意して、それで描いた方が良くない?

231 :デフォルトの名無しさん:04/09/09 01:33
>>224
うーん?
DXの契約すれば教えてもらえるんだろうと勝手に想像してたのだが、そうではないのか。

232 :デフォルトの名無しさん:04/09/09 14:32
今900i用のピンボール作ってるんだけど、
FPSてどれくらい出てればそれなりに見える?
JAVAでずっと画像が動くアプリとか作ったことないからよくわかんなくて。
ちなみに今10〜18(ちょっと画面ごとにばらつきがある)


233 :デフォルトの名無しさん:04/09/09 14:56
D900非対応が、いまの流行。

234 :デフォルトの名無しさん:04/09/09 15:46
まーFPS10出ればゲームになるね。
15だせばがんばってる。20だせばすげえ。ってくらいか。

235 :232:04/09/10 22:12:06
会社から書き込めなかった・・・。
>>234
あーやっぱそんなもんか。
描画だけで60ミリ秒超えるもんなぁ。
どうしよ・・・。

236 :デフォルトの名無しさん:04/09/10 23:34:49
DoJa3.0っていつの間にverUpした??
DoJa3.5と見た目変わってるし…
どうせなら3.5も統一してよ。。

237 :デフォルトの名無しさん:04/09/11 00:03:14
>>232
機種は?

Dはともかく、それ以外の機種で10fpsそこそこってのは、さすがに描画周りの
組み方を見直したほうがいいと思う。

238 :デフォルトの名無しさん:04/09/11 00:06:48
>>77
亀レスですが・・・
自分も今日、同じ状況におちいってしまいました。
いろいろいじくった結果解決しましたので自分の場合の解決策を書き込んでおきます。

■com.nttdocomo.eclipse.DoJaBuildException何たら
 というエラーが出て実行できない。
→環境変数でj2sdkのbinにpathを通す。
■エミュレータ動いたっぽいが「AppName の値がありません」
 というメッセージがコンソールに出力されてエミュレータ実行終了。
→jamにAppNameの情報を追加、ついでにAppClassの情報も追加する。
■エミュ動くもスクラッチパッドの保存できず。
→jamにSPsizeの情報書くの忘れてたので追加する。
■そういやADF設定してなかったなと気づく。
http://www.okisoft.co.jp/esc/i-appli.htmlを参考にADF設定できるよう
 エクリプスの設定を変更する。


239 :デフォルトの名無しさん:04/09/11 04:22:20
つーかみんな思ってたよりFPSあげる努力してるね。流石だ。
漏れなんかいままで書いたアプリ、全部10FPS固定だわ。
N504に合わせて…。

240 :デフォルトの名無しさん:04/09/11 11:47:34
>>236
詳しく。

241 :232:04/09/11 12:11:21
>>237
機種はFかな。
高さ480ドットのフィールドでボールが真ん中に来たときに画面を上下切り替えしてる。
FPSは上は10〜15くらい。
下が15〜20になってる。
条件の判定と描画の処理しかしてないんだけど速度でないんだよね。
Fは結構優秀らしいからこれしか出てないのはちょっとショックだったり。

242 :237:04/09/11 16:22:38
>>241
F900iでそれだとずいぶん遅いなぁ。
おかしなことしてなけりゃもっと出るはず。

とりあえず、以下の実験をしてみるといいんじゃないかな。

1)Graphics#drawImageで1枚どーんと描く
2)Graphics#drawImageでチップを並べて描く
3)Graphics#drawSpriteSetで1枚どーんと描く
4)Graphics#drawSpriteSetでチップを並べて描く

チップを並べる場合は、チップのサイズと数を何種類か試してみるといい。



243 :デフォルトの名無しさん:04/09/11 17:59:23
16*16でマップチップ埋め尽くしてみたけど、ガクガクだな。
10fps出てるかどうかすら怪しいわ…。

ドラクエとFFってチップサイズいくつ?

244 :232:04/09/11 23:38:18
>>242
まあ盤面だけじゃなくて、アニメーションさせたり、点滅させたり、
レイヤーみたいなものもあるからなぁ。
とりあえず一番でかい盤面はdrawImageでチップを並べるように書いたらどの数、サイズでも1回で書くより遅かったんだよねぇ。
レイヤーとかがやっぱ遅いかな。
まあとりあえず今度drawSpriteSetを試してみるわ。
ありがとー。

245 :デフォルトの名無しさん:04/09/12 00:39:51
drawImageは実行する回数が増えると劇的に遅くなるぞ。
一度に描画するサイズによる速度差は意外と小さかったりする。

246 :デフォルトの名無しさん:04/09/12 01:44:03
505iと900iでのdrawImageは
どのくらいの速度差があるものなの?


247 :デフォルトの名無しさん:04/09/12 03:52:14
>>243
チップサイズは知らんがDQ,FFはImageMap使ってると思われ

248 :デフォルトの名無しさん:04/09/12 14:33:44
そこで擬似BG面ですよ。

249 :デフォルトの名無しさん:04/09/12 18:27:06
>>245
そうだねー。
ただ、N/P系とF/SH系でこの辺の癖が違うんだよなー。

250 :デフォルトの名無しさん:04/09/12 20:00:14
DoJa3.0/3.5の全機種についてタイマー解像度や
描画更新可能な最小時間を調べた資料が欲しいよ。

後者はこういう意味。
>>239が言うようにN504ではpaint()を仮に10msごとに呼び出しても
毎回描画内容が反映されるわけではなく、100msごとにしか反映されない。
P504だと50msごとに反映できる。そういった時間のこと。
(確か必ずしもタイマー解像度と一致しないと思った)

251 :デフォルトの名無しさん:04/09/12 23:58:43
別にFPS計算しながら描画処理すればいんじゃないの
N504の100msは描画についてのことじゃないし

252 :デフォルトの名無しさん:04/09/13 16:36:14
アプリックスと提携結んだから、901iからは全機種統一されるのでは?

ドコモは動作性能がメーカー依存なところがかなり痛い。
基本と拡張の実装状況も不明瞭で分かりにくい。

253 :デフォルトの名無しさん:04/09/13 17:38:28
ImageMapが速いと聞いたんで使ってみようかと思ったら
setImageMap(int mapWidth, int mapHeight, byte[] data, Image[] images)
Image[] imagesかよ…
チップ毎にイメージ作ってる余裕なんてないよ。
ツカエネ

254 :デフォルトの名無しさん:04/09/13 19:48:50
>>253
しかも言われてるほど速くもないしな。
N900iで試してみたら大惨事。SHとかFだと速いのかなぁ。

255 :デフォルトの名無しさん:04/09/14 00:28:51
eclipse3.1にDoja3.5なんて突っ込んでるから自業自得なんだけど、
The project was not built since its build path is incomplete. Cannot find the class file for java.io.Serializable. Fix the build path then try building this project

とかいってビルドできなくなっちまったよ。
eclipse3.0の時にはできてた気がするんだけどなあ。
誰か詳しい人、おられませんか?
普通のJavaプロジェクトは問題なく動作するし、なんなんだろ。

256 :デフォルトの名無しさん:04/09/14 09:36:13
>254
やはり機種毎に描画方法変えないといけないのかねぇ…。
SHだとImageMap使わないと半分ぐらいにフレーム落ちするけど、
N/PだとdrawImageの方が良いのかな?

257 :254:04/09/14 09:46:52
>>256
ループぐるぐるでdrawImageするよりはImageMapの方が速い。
ただ、何にせよN/Pは描画アクセラレータの関係か、描画する
Imageの数が多いとやたら遅くなる。

その代わり描くImageの面積が広くてもあまり負荷が増えない。

drawSpriteSetを使うと速いんだが、それだと画像の転送量がある程度
以上増えると描画が乱れてしまうorz

258 :デフォルトの名無しさん:04/09/14 10:53:29
だからそこで擬似BG面(略

キャッシュ用のオフスクリーンイメージを持つ自前ImageMapを構築するのですよ。
描画時には4回のdrawImageで循環スクロールも可能。
DirectDrawなんかでよく使われてた手です。

こっちのほうが速くて取り扱いが素直なんで、はっきり言ってImageMapクラスは無用。

259 :258:04/09/14 11:10:04
こんなクラスを作る。

import com.nttdocomo.ui.Graphics;
import com.nttdocomo.ui.Image;

/*
 * ゲームの背景に使用する、16×16ドットのパターンを組み合わせたイメージを保持するクラスです。
 * 家庭用ゲーム機においてBG面と呼ばれているものにほぼ相当します。
 * マップは20×20パターンで水平・垂直方向に循環していて、
 * ドット単位で任意の座標から表示できます。
 * パターンには256×128ドットのパターンセットイメージを使用し、
 * 左上から順番に、パターン0〜127に割り当てられます。
 */
public class Bg {
    private Image cacheImage;
    private Graphics cacheGraphics;
    
    int[][] map = new int[20][20];
    
    private Image patternSetImage;
    
    public Bg(Image patternSetImage) {
        this.patternSetImage = patternSetImage;
        
        cacheImage = Image.createImage(320, 320);
        cacheGraphics = cacheImage.getGraphics();
    }
    

260 :258:04/09/14 11:11:39
    public void put(int x, int y, int pattern) {
        x %= 20;
        y %= 20;
        
        // 既にキャッシュイメージに同パターンが書き込まれているなら更新しない。
        if (map[y][x] != pattern) {
            map[y][x] = pattern;
            
            int sx = (pattern & 0xf) << 4;
            int sy = (pattern >> 4) << 4;
            
            cacheGraphics.drawImage(patternSetImage, x << 4, y << 4, sx, sy, 16, 16);
        }
    }
    

261 :258:04/09/14 11:12:02
    public void draw(Graphics g, int x, int y) {
        x %= 320;
        y %= 320;
        
        int dx = 320 - x;
        int dy = 320 - y;
        
        g.drawImage(cacheImage, 0, 0, x, y, dx, dy);
        g.drawImage(cacheImage, dx, 0, 0, y, x, dy);
        g.drawImage(cacheImage, 0, dy, x, 0, dx, y);
        g.drawImage(cacheImage, dx, dy, 0, 0, x, y);
    }
}

これでRPGのマップなどをスムーズスクロールさせた場合、
1フレームあたりのdrawImageの平均呼び出し回数は、ほぼスクロールするドット数+4回。

262 :258:04/09/14 11:17:43
あ、ちなみに

> ImageクラスのcreateImage()メソッドで作れるイメージの最大サイズは画面サイズ。

とかいうふざけた機種(DとかDとかDとか)ではそのままでは動きません。
ていうか、こんなもん容赦なく切り捨ててやるのがメーカーへの親心だと思います。

まあ、対応してもクラスサイズが約300バイト増えるだけですけどね。

263 :デフォルトの名無しさん:04/09/14 15:41:54
>>258
これってさ、320*320のイメージ作ってるけど16ドット*20チップの意味だよね?
100*100のマップとかはどうするの?
patternSetImageてのはマップチップの事?

264 :デフォルトの名無しさん:04/09/14 15:42:46
ファミコンみたいだな

265 :258:04/09/14 15:49:14
>>263
> 100*100のマップとかはどうするの?

もちろんスクロールにあわせてputで描いていくのですよ。

> patternSetImageてのはマップチップの事?

イエース。これってなかなか共通の言葉がないんだよなあ。

266 :258:04/09/14 15:59:32
あまりコード書くと正体バレそうだけど、まあいいや。例えばこのようにして使います。

// マップデータ
byte[][] map = new byte[MAP_WIDTH * MAP_HEIGHT];
final int PATTERN_WIDTH = 16;
final int PATTERN_HEIGHT = 16;

...

// メインループ内の背景描画

// BG面の描画範囲を決める。mapX、mapYはマップ表示座標(ドット単位)
int x0 = mapX / PATTERN_WIDTH;
int y0 = mapY / PATTERN_HEIGHT;
int x1 = (mapX + WIDTH - 1) / PATTERN_WIDTH; 
int y1 = (mapY + HEIGHT - 1) / PATTERN_HEIGHT;

for (int iy = y0; iy <= y1; iy++) {
    for (int ix = x0; ix <= x1; ix++) {
        // 表示される領域を描画
        // Bgクラスのキャッシュ機構で、drawImageの呼び出しは最小限に抑えられる。
        bg.put(ix, iy, map[iy * MAP_WIDTH + ix]);
    }
}
bg.draw(g, mapX, mapY);


267 :デフォルトの名無しさん:04/09/14 16:44:46
>>258
チップの置き換えが起きるフレームと起きないフレームで処理速度が変わっちゃう
のはもう仕方ないよなw
ウェイト入れるしかないね。

268 :デフォルトの名無しさん:04/09/14 23:20:38
>>258
さっそく実装してみたら40msぐらい速くなった。
いやーチップに切り分けた背景表示は重くなるから困ってたんで
たすかった。アリガトン!

問題はボーダフォン50kにどうやって対応するかだな・・。

269 :258:04/09/15 00:03:08
>>267
一応描き換えを分散させる手もあるけど、ちょっと面倒くさいね。

270 :デフォルトの名無しさん:04/09/15 00:27:54
>>266
ばれるとしても、身内にしかばれません。

271 :255:04/09/15 02:37:25
誰も答えてくれないから自己レスしちゃうもん。
エラーのとおりjava.io.Serializableを解決するべく
本来JRE_LIBとして予約されてるはずの
C:\j2sdk1.4.2_05\jre\lib\rt.jarを改めてExternalJarとして追加するだけ。

ついでにJDK Compilance のコンパイラ互換レベルを例によって1.3に落としてやらないと
JAR作るときにおそらくPreverifyに怒られて、サイズ0のJarができてデバッガ使えないよ、と。

チラシの裏に書きますよえーこれからはそうしますよーだ。

272 :デフォルトの名無しさん:04/09/15 02:43:46
マップ読み込み時に全部描くと速度一定に保てるね。
20*20ぐらいのマップだったら1秒ぐらいか。フェードと一緒に処理すればごまかせるかも。

ところで、これってフィールドマップでやろうとしたら滅茶苦茶メモリ食わない?
32*32チップで64*64だと4000000ピクセル以上のImageが…(´д`;)
小さいオフスクリーンイメージでやりくりすると、全部書き直すときに結局遅くなるし…

273 :デフォルトの名無しさん:04/09/15 02:49:26
>>271
乙。参考になった

274 :デフォルトの名無しさん:04/09/15 03:48:28
>>272
全マップを1枚のImageに載せるのは無茶だし無理でしょ。
そんなにでかいImageがそもそも作れなかったりするし。
(Dは240x240,N/Pは320x320が限度)

というか、>>258のは、そもそもそういう無茶をせずに済むように
するためのテクニックだと思うんだがw

275 :デフォルトの名無しさん:04/09/16 00:56:12
ていうか>>258一択だよな。

276 :デフォルトの名無しさん:04/09/16 10:37:04
> 32*32チップで64*64だと4000000ピクセル以上のImageが…(´д`;)

あの例で言うなら、オフスクリーンイメージのサイズは320x320のまま
巨大なフィールドマップが320x320毎に分割されてて、320x320の額縁がスクロールにあわせて動く、
って考えると解り易いかも?


277 :デフォルトの名無しさん:04/09/16 10:50:05
流れ無視で質問だけど、SH900iて何が遅い?
なんかしらんけどSH900で処理が異様に遅いんだが。
I/Oが遅いらしいてのは聞いたけどたぶん関係ないだろうし。

278 :デフォルトの名無しさん:04/09/16 12:29:14
>>277
ラスターオペレーションとか遅かったはず。
フェードインとかフェードアウトとか、SHはもたつく。

279 :デフォルトの名無しさん:04/09/16 12:37:07
>>277
スレッド関連に癖がある、という話をどっかで読んだ気がする。

複数のスレッドを回してる場合、明示的にThread#yield()を呼ばないと
他のスレッドやCanvas#processEvent()に処理が回っていかないとか
何とか。

Canvas#run()の中だけでぐるぐる回せば、たぶん起こらない。

280 :デフォルトの名無しさん:04/09/16 15:54:54
>>278
>>279
ありがと。
原因わかった。
setSoftLabelを毎フレームやってるとかいうつまんないミスだった・・・orz
てかそれだけでフレーム数が半分とかすげーな・・・。
なにはともあれお騒がせしました。

281 :デフォルトの名無しさん:04/09/16 21:27:15
DoJa 3.5でswingのjavax.swing.JLayeredPaneみたいに階層を指定する方法ってある?
例えばアプリで、ソフトキーでメニュー表示させた後にメニュー閉じるとメニュー開く前に戻る感じ。
メニュー開く前のユーザの入力を一々記憶して、メニュー閉じたらそれを復元する方法しか俺には思いつかん。

282 :222:04/09/17 08:29:26
クラス2つはもう限界です…
バトルでの変数の管理がきつくなってきました。
HPMPLV力素早さ精神魔力防御力経験値…
多次元配列+static finalフィールドで管理できない事もないけど、
絶対バグの温床になるに決まってる。
バトルクラス作ります。
まだ10KB位だし。

どうでもいいけどインナークラスの方がサイズ大きくなるんだね。
ちょっと意外だった。

283 :デフォルトの名無しさん:04/09/17 09:00:19
>>282
m_anPlyData[DATA_HP] = 0;
m_anPlyData[DATA_MP] = 0;
m_anPlyData[DATA_STR] = 0;
m_anPlyData[DATA_SPD] = 0;
m_anPlyData[DATA_MG] = 0;
m_anPlyData[DATA_DEF] = 0;

284 :デフォルトの名無しさん:04/09/17 11:54:46
>>283
Javaらしくない名前ですね

285 :デフォルトの名無しさん:04/09/17 13:23:45
>>281
DoJaのフレームワークというか、クラスライブラリでは用意されていないはず。
ゲーム関係の機能は強化されているんだけど、それ以外はDoJa1の頃から
変わってないね。

286 :デフォルトの名無しさん:04/09/17 13:40:00
>>281
「ユーザーの入力を記憶して」という考え方だと、バグでまくるけどね。
たぶん。

287 :デフォルトの名無しさん:04/09/17 14:28:09
意味ワカンネ

288 :デフォルトの名無しさん:04/09/18 00:37:44
>>282
どんなレベルで作ってるのかわからないが、504以降なら、クラス2個縛りはある種の神話だと思われ。
内容によっては確かにそうしないと実現できないレベルのアプリは存在するし、
その種の追い込みから得られる成果は、元が小さい分無視できないものがあるけど、
たとえそうであっても、最初はそれなりにクラス切ってちゃっちゃと動作するもの作ってから、
稼いだ作業時間で最適化作業はじめた方がいいと思うよ。

あと、ちゃんとオビュファスケータ使ってる?
プリプロセッサの導入は?

289 :デフォルトの名無しさん:04/09/18 12:06:14
ちょいと質問なんだけど、
メソッド内で一時的に作成したInputStreamは
スコープを抜けたら勝手にクローズされてgc()の時に回収されるのかな?
出来るだけ異常終了しないようにしようと思ったんだけど、
in.close()がIOException吐くから確実に閉じる方法がないんだよね。
どうすりゃいいんだろ?

290 :デフォルトの名無しさん:04/09/18 12:12:41
>>289 実装依存。たとえばIBMのCLDC/CDC実装だとgcのときでも
クローズはなし。
でもin.close()がIOException吐くのは放置OK.

291 :290:04/09/18 12:15:28
すまん、MIDPスレと勘違いした。

292 :デフォルトの名無しさん:04/09/18 12:34:45
ネイティブリソースだからクローズしないと駄目でしょ。
IOExceptionって、そりゃコードに問題があるのでは?

293 :289:04/09/18 12:52:04
>>292
いや、実際に吐いたと言う意味ではなくて、
ドキュメントにそう書いてあったという意味。
今までにin.close()がIOExceptionを出した事はないです。

例えば、
try {
InputStream in = hoge(hoge);
in.read(hoge);
in.close();
} catch (IOException e) {}
これでin.read(hoge)で例外が出た場合に、このinはどうすりゃいいのかってこと。
tryの前に InputStream in = hoge(hoge);を持ってきて確実に閉じるようにさせたいけど、
結局
try {
in.close();
} catch (IOException e) {}
になってしまうから閉じる方法が見当たらないんです。

ま、要するにin.close()で例外が出た場合は
そのinはいったいどうなってしまうのか?って事です。


294 :デフォルトの名無しさん:04/09/18 12:58:25
InputStream in = null;
try {
 in = hoge(hoge);
 in.read(hoge);
} catch (IOException e) {
 if(in != null){
  try {
   in.close();
  } catch (IOException e) {//}
 }
}
はイディオムかな。

295 :289:04/09/18 12:59:50
>>290
iアプリでも放置OK?
てことはin.close()で例外がでたらダイアログでも出して
null返してしらんぷりしていいのかな?

いや、いままで例外放置してたんで、
ちょっとまじめに隙の無い実装にしてみようかと思ったら、
in.close()でループに嵌りそうになってしまったもんで…

296 :デフォルトの名無しさん:04/09/18 13:00:02
間違えた。
InputStream in = null;
try {
 in = hoge(hoge);
 in.read(hoge);
} catch (IOException e) {
 //いろいろ
}finally{
 if(in != null){
  try {
   in.close();
  } catch (IOException e) {}
 }
}


297 :289:04/09/18 13:01:52
>>294
をを!
なるほど。
ちょいとやってみます。

298 :デフォルトの名無しさん:04/09/18 13:05:23
>>295 CLDCリファレンスより
public void close()
     throws IOExceptionこの入力ストリームを閉じて、そのストリームに関連するすべてのシステムリソースを解放します。
InputStream の close メソッドは何も行いません。


299 :デフォルトの名無しさん:04/09/18 14:45:27
iモード FeliCa で、「外部 R/W からの i アプリ起動」を試そうとして
います。
テスト用のiアプリを書いて、ADF で AllowPushBy = icc:hogehoge と
指定して F900iC でダウンロードしようとすると、「ソフトに誤りがありま
す」と拒否されます。AllowPushBy を指定しなければ、ダウンロードで
きて、i アプリ自身は正常に動作しています。

F900iC は、「外部 R/W からの i アプリ起動」に対応していないんで
しょうか ?
外部 R/W (PaSoRi) からの Push コマンドは、ちゃんと受け取る(エ
ラーステータスは返らない)みたいです。


300 :デフォルトの名無しさん:04/09/19 01:18:36
現在、Doja3.0の勉強をしているのですが、
iアプリオプションAPIのMathクラスの使い方が良く分かりません。
com.nttdocomo.opt.ui.j3d.Mathをインポートし、単純に
System.out.println(Math.cos(0));
としただけでもjava.lang.RuntimeExceptionが出てしまいます。
そもそも、Math.cos()の引数として
「角度を4096 分円単位(2πラジアンで 4096)で指定します」
とあるのですが、これは10度を現すときは
(int)4096/360*10を引数として渡すと解釈しているんですが、
あっているのでしょうか?

301 :デフォルトの名無しさん:04/09/19 01:36:14
>>300
http://www.mascotcapsule.com/toolkit/docomo/download/tools.html
micro3d_v3_32.dll
(Mascot Capsule Engine Micro3D Edition ver3, Doja3.0用)
iαppli Development Kitのインストールされているフォルダのbinフォルダ内にコピーして下さい。

これがないとcom.nttdocomo.opt.ui.j3dは使えないよ

302 :300:04/09/19 11:43:34
>>301
どうもありがとうございます
無事に動かすことが出来ました

303 :デフォルトの名無しさん:04/09/20 11:36:30
すいません、質問よろしいでしょうか

今までpaintメソッド内で描画をしていたんですが
使いづらいのでpaintメソッド外でlock/unlockで細かく描画をしようと思ったのですが、
どうも上手くいきません。
ちゃんとCanvas#getGraphicsでグラフィックオブジェクトは取得しているはずなんですが・・・



304 :デフォルトの名無しさん:04/09/20 11:44:32
paintで描くのがどう使いづらかったんだ?
うまくいかないってのは、どういう結果になる?

普通にGraphicsに描画すれば何も迷う必要無いはずなんだが。
paintの使い方、根本的に勘違いしてないか?

305 :222:04/09/20 13:09:09
>>303
まずCanvas継承クラスのメンバとしてGraphics gを宣言する。
(staticにすると良いと思う。)
コンストラクタでg = getGraphics();をする。
paint(Graphics g) {} として、中身を空にしておく。
これでどこからでも使い放題です。

306 :222:04/09/20 13:26:53
追記
オブジェクト指向にしたい場合はstaticは止めてprivateだけにすると良いと思う。
Canvasは完全に描画のみに絞ってメインループ専用クラスにオブジェクト渡して
MyCanvas m = new MyCavnas();
for (;;) {
  m.method1();
  m.method2();
  m.method3();
}
みたいなのがスマートかな…

307 :デフォルトの名無しさん:04/09/20 13:41:48
>>304
具体的にいうと、何も描画されないのです。
Frame#setBackground()で背景色はでているのですが。

>>305
そのようにしてるのですが、やはり背景色以外なにも描画されていません。
getGraphics()をすればunlockした時点でキャンバスに描かれると色々なページを見て
思っていたのですが、間違っていますか?
とりあえず何か描画させようとした時はこんな感じです。
g.lock();
//lockとunlockの間に描画命令(g.drawImageなど)を行う。
g.unlock(true);

308 :222:04/09/20 13:49:11
>>307
とりあえず、
public void paint(Graphics g) {}
void draw() {
g.lock();
g.drawString("test", 100, 100);
g.unlock(true);
}
これやってみそ。

あ、もしかしてコンストラクタ内でg = getGraphics();の直後にdraw()を呼び出していて、
しかもDisplay.setCurrent(new canvas());
とかやってないよね?
ディスプレイにセットされてないのに呼び出しても画面に反映されないよ。

309 :デフォルトの名無しさん:04/09/20 13:57:15
とりあえず、これを試してみてくれい。
import com.nttdocomo.ui.*;

public class a extends IApplication {
public void start() {
exCanvas e = new exCanvas();
Display.setCurrent(e);
e.draw();
}
}
class exCanvas extends Canvas {
Graphics g;

public exCanvas() {
g = getGraphics();
}
public void paint(Graphics g) {
}
void draw() {
g.lock();
g.drawString("Hello World!!", 100, 100);
g.unlock(true);
}
public void processEvent(int type, int param) {}
}

310 :デフォルトの名無しさん:04/09/20 14:04:02
ありがとうございます。
>>308さんの指摘どおり、
setCurrentする前に描画テストやってました。
こんな間違いに気づかなかった自分が恥ずかしい・・・
スレ汚し申し訳ありませんでした。

311 :デフォルトの名無しさん:04/09/20 17:39:26
問題はそういう細かい部分ではなくて、もっと根本的な部分にある。

一般人でも、

iアプリを売れますか?
vアプリを売れますか?
ezアプリを売れますか?

312 :デフォルトの名無しさん:04/09/20 19:35:28
>>311
売ることは可能。

313 :デフォルトの名無しさん:04/09/20 20:58:06
たぶん、>>311は質問じゃなくて誤爆

314 :デフォルトの名無しさん:04/09/20 21:35:03
506アプリを作りたいときは、DoJa3.5でいいの?

315 :デフォルトの名無しさん:04/09/20 23:20:06
>>314
3.0

316 :デフォルトの名無しさん:04/09/21 01:08:28
>299
R/Wからiアプリ起動できるのはP506とSo506だけじゃなかったっけ?

317 :デフォルトの名無しさん:04/09/21 17:15:21
>>316
そうみたいだな
SH506iC,F900iCは非対応
(つーか早く公開しろよ>ドコモ)

318 :299:04/09/22 01:44:20
>>316-317
情報ありがとう。

やはり F900iC は非対応だったんですね。
せっかく PaSoRi で Push コマンド送出するコード書いたのに…。


319 :デフォルトの名無しさん:04/09/22 22:06:02
http://localhost/cgi-bin/iServ.cgiに接続するチャットソフトの動作をしてるんだけど(http://216.239.39.104/search?q=cache:P4ou2hYvw-wJ:puchi.ac/~tanaka/ijava/intro.html+%22i%E3%82%A2%E3%83%97%E3%83%AA%22+cgi&hl=ja&lr=lang_ja)
connect()すると
com.nttdocomo.io.ConnectionException: Illegal header
となってしまう。このエラー出た人対処法教えてくれないか、なんのヘッダーなんだかわからんのよ
ADFとエミュレータの設定しなおしてもさっぱりだ
PackageURL = chatAppl、 UseNetwork = http
も書いて
ADFのURLとプロキシにhttp://localhost/、プロキシポートは80
トラステッド動作設定の通信を許可するURLは*
としたんだがあとは何が足りないだろう。
CGIの動作はブラウザから確認したところ問題無かった

320 :デフォルトの名無しさん:04/09/22 22:20:15
>>319
サーバーがわでどんなヘッダー返してるのさ

321 :319:04/09/22 22:45:09
>>>>319
>>サーバーがわでどんなヘッダー返してるのさ

サイトにあったソースほとんどそのまま使ってるんだけど。
print "Content-type: text/html\n\n";
サーバーから送ってるヘッダーってこれだよね?ほかにprint文はprint "$data"; ってのしかないし。

322 :デフォルトの名無しさん:04/09/23 00:33:53
サパーリわからんね
ブラウザも串経由で確認してるか?
串がアヤシイと思うんだが

323 :319:04/09/23 01:18:17
ごめん、串はかんちがいぽorzでも串設定取り除いても変わらなかったよ
ADF設定というかJamファイルはこんなかんじになってるんだけど。。
UseNetwork = http
LastModified = Thu, 23 Sep 2004 00:51:33
AppClass = chatAppl
AppName = chatAppl
PackageURL = http://localhost/cgi-bin/chatAppl.jar
AppSize = 5345

実際はエミュでやってるんだけれどもPackageURLはこんな記述でいいの?
cgiは
http://localhost/cgi-bin/iServ.cgi
に置いてあるんだけど。
javaのソースはこれです
ttp://haiiro.info/up/img/2088.zip

324 :デフォルトの名無しさん:04/09/23 02:05:15
Illegal headerは、レスポンスヘッダじゃなくて、リクエストヘッダがおかしいときに出た記憶がある。
POSTしてるのにContent-Typeがないとか、へんなことやってない?

325 :デフォルトの名無しさん:04/09/23 13:56:36
すいません質問です。

「SDK for FeliCa Lite」と「PaSoRi」を使って PC から iアプリで
確保した Mobile Felica の領域に対して読み書きを行うアプリケーション
を作成する事は可能なのでしょうか?

またはそれ以外の方法で「PaSoRi」を通して Mobile Felica の領域に
対して読み書きを行う方法は有るのでしょうか?

必須であるのならば購入を考えているのですが、そうほいほいと手をだそう
と思える値段をしていませんので…

326 :デフォルトの名無しさん:04/09/23 16:01:15
>>325

フリー領域であれば Lite で全く問題ない。
共通領域で、暗号鍵を利用する場合は、そもそも PaSoRi を使うこと自体が
難しい(SDKだけじゃできない)。


327 :319:04/09/23 16:45:04
>>324
接続するアドレスは
http://localhost/cgi-bin/iServ.cgi?message=%83%6A%83%62%83%4E%83%6C%81%5B%83%80%81%46%83%65%83%4C%83%58%83%67%82%CD%82%B1%82%B1

こんなかんじになってる。GETメソッドでやってるさ。
cgi側も
if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'}); }
else { $buffer = $ENV{'QUERY_STRING'}; }
print "Content-type: text/html\n\n";
ってやってる。

どうにもならんから
ttp://www.geocities.co.jp/SiliconValley-Bay/2972/java94.htm
のサンプルコードを試したけど、こっちもconnect()でこけてるよ
エミュの設定なのだろうか…みんなネットワークの設定ってどうしてるの?

328 :デフォルトの名無しさん:04/09/23 21:24:58
>>326
回答ありがとうございます。

使えるとのことですので早速(研究費で)購入して
いじってみたいと思います。

329 :デフォルトの名無しさん:04/09/23 21:49:43
>>327
conn.setRequestMethod(HttpConnection.GET);
conn.setRequestProperty("Content-Type", "text/plain");
conn.connect();

これ、GETの時にContent-Typeの設定つけたら動作しないんじゃなかったっけ?

330 :デフォルトの名無しさん:04/09/24 01:02:56
>>327,329
そう。GETでContent-Typeなんてつけちゃだめ。
Content-Typeがどういう意味か知ってるならこんなことしないだろうに…。
そもそもリクエストヘッダの問題って言ってるのにCGIのコードを出す時点でかなり理解度に難ありなのだがw

331 :デフォルトの名無しさん:04/09/25 22:04:13
教えて下さい。
DoJaのDialogってメモリ食いますか?
自作アプリで何回かDialogでメッセージ表示すると、N505では動作不安定になります。
アプリ自体はImage等で画像はかなり使用している状況です。
また同じN505アプリでDialogを開かないようにアプリを動かすと安定して動作します。


332 :デフォルトの名無しさん:04/09/25 22:21:01
>>331
Dialogは使った事無いからよく分からんけど、
高レベルAPIだから内部でいろいろやってそうな感じだね。
ひょっとしたらDialogの影になってしまう部分を
ヒープにコピーしたりしてるかもしれないし。
どういう風に不安定なのか分からんけど、
Imageは可能であればまとめてメモリに展開しておくといいよ。
さらに可能なら一枚にまとめてしまうといい。
あとは出来るだけ細かくSystem.gc()を呼び出すこと。


333 :デフォルトの名無しさん:04/09/26 02:54:16
>>332
N505やD505などのヒープが少ないのは
イメージをまとめてメモリに展開するとOutOfMemoryExceptionがでやすくなると思う。
その逆に細かく使う分だけ展開するのが良いと思うが。
あとSystem.gc()は細かく呼び出してもすぐ実行される訳でないから
それほど細かく呼ぶ必要ないよ。

334 :デフォルトの名無しさん:04/09/26 04:51:37
>>333
細かく展開してgc()しなかったらメモリがすぐ断片化してしまうよ。
見かけ上メモリがあるように見えてもOutOfMemoryになりやすくなる。
やればわかるけど出来るだけローカルで宣言して、
いらなくなったらすぐにgc()するようにすれば、
ある程度のメモリは常に確保できる。
メモリが足りなくなって初めてgc()を呼んでるようだとgc()に時間が掛かる。
しかも参照がバラバラになっていて断片化しやすくなる。
オブジェクトは使うたびに作成しないで使いまわすのが基本。
VMまかせにしないで自分で考えてプログラミングするべきだよ。

335 :デフォルトの名無しさん:04/09/26 18:23:38
便乗スマソ

「gcでメモリコンパクションを行わない」って機種があるんだが、それって細かく断片化たら
大きなメモリは取れなくなる可能性があるって事?
長時間動かすとOutOfMemoryになり易くなったりするのかな?

336 :デフォルトの名無しさん:04/09/26 23:44:11
>>335
そう>断片化。
まあ、Cのmalloc()/free()だってそうだけどね。
でも、実際には殆どのサーバはCで書かれてるわけで。

337 :デフォルトの名無しさん:04/09/27 09:19:52
一部のへたれた機種では、Dialogにnullを入れてgc()しても解放されない。
同様にPannelが解放されない機種もある。

PennelはN503とかそうだったな。
N504もDialog解放されなかったはず。
N505はわからんが、前科持ちなので信用するな。
一度作ったら、使いまわすようにしたほうが(・∀・)イイ

338 :デフォルトの名無しさん:04/09/27 11:11:05
ストレステストとかやってないんかねえ。軟弱というかなんというか。
大人しく全機種JBlendになるのを待つか。

339 :デフォルトの名無しさん:04/09/27 11:51:35
>>338
あまり作るのが簡単になると、商売にならなくなっちゃうの(゚∀゚)

340 :デフォルトの名無しさん:04/09/27 13:20:50
>>338
テストはされているんだけど、
「稀なケースなので」「インスタンス使いまわせば動くので」
「完璧を目指すと開発費が高くなるので」「そのモジュール他社から買い入れたものなので」
なんて理由で修正を間逃れてまつ。

341 :331:04/09/27 13:56:10
>>332
>>337
ありがとうございます。
まだちゃんと調べてないですが、挙動から言ってN505はDialogはメモリ開放されてないっぽいです。
使いまわしてやってみます。



342 :デフォルトの名無しさん:04/09/28 02:34:16
メモリコンパクションしない機種なんてあったのか…おっかねぇ。

343 :デフォルトの名無しさん:04/09/28 02:45:40
DialogやPanelはシングルトンで使えということですか?

344 :デフォルトの名無しさん:04/09/28 03:54:32
使えというか、勝手にそうなるというか。

345 :デフォルトの名無しさん:04/09/28 04:16:49
>>344
んなわきゃーない。

346 :デフォルトの名無しさん:04/09/28 09:10:37
>>345
自動的にそうせざるを得なくなる という意味合いだと思われ。

347 :デフォルトの名無しさん:04/09/28 09:17:36
なにも考えなければ、Dialogの場合は、いちいちインスタンス生成するコード書くことが多いと思うけど。

348 :デフォルトの名無しさん:04/09/28 12:33:33
漏れ最初に作ったdialog dで全部まかなってた
どーせモーダルなんだしYNとかYNCとか使わないし

349 :デフォルトの名無しさん:04/09/28 13:02:57
そもそもN504だとダイアログ出してるときに強制終了キー押して、再開するとバグるしな。
N504じゃなかったっけ?
P504はDialog後に再描画を要求するし、ぶっちゃけ商業だと「Dialog禁止」って言われる

350 :デフォルトの名無しさん:04/09/28 13:35:57
ぶっちゃけ商業(笑)

351 :デフォルトの名無しさん:04/09/28 14:40:44
ダイアログなんて終了確認と接続エラー時にしか使ってない…。

352 :デフォルトの名無しさん:04/09/28 15:33:14
iアプリで特定のアドレスからメールを受信したら、
到着確認のメールを返信するというものを考えています。

デフォルトで入ってるDimo絵文字メールは同じアプリから送ってきたメールしか
そのアプリの受信ボックスに入らないみたいだけど、
メールを受信するときにヘッダか何かを見て割り振ってるのかな?
普通のメーラーから送ってきたときもアプリの受信ボックスに格納したいんだけど、
できますか?

353 :デフォルトの名無しさん:04/09/28 16:08:46
>>352
デラックスが使えないと無理

354 :デフォルトの名無しさん:04/09/28 18:35:25
>>352
SDカードか何かにアプリのメール吐き出してPCから見れば
どういう仕掛けでアプリの受信フォルダに入るか判るぞ。

355 :デフォルトの名無しさん:04/09/28 22:51:20
>>349
ダイアログ閉じたときに再描画を要求するのは
別にいいんじゃないカナ?

356 :デフォルトの名無しさん:04/09/29 02:21:31
仕方ないのでダイアログを自前で作ってコードを圧迫して死亡。
典型的な俺の死に様。

357 :デフォルトの名無しさん:04/09/29 10:47:51
>>355
P504だけ ってのがね。
仕様的には「それでもいい」んだが、例外は嫌!

358 :デフォルトの名無しさん:04/09/29 23:29:18
>>357
N504なんかは、わけわからんタイミングで再描画要求しまくってた気がするがw

359 :デフォルトの名無しさん:04/09/30 03:53:44
Graphics#copy()ってどんな使い道があるの???

360 :デフォルトの名無しさん:04/09/30 09:05:50
>>359
ある特別な場面に入る前にコピーしておいて、
その場面でフォント変更とか座標基本位置とか変えまくっていろいろして、
抜けたら元に戻す。

とかの時に使えなくはない。かな。


361 :デフォルトの名無しさん:04/09/30 16:38:16
スクラッチパッドにメモのような大きさの変化するデータをいくつか書き込んで、メモを編集したりすると
ほかのデータを上書きしてしまいますよね?
色々なiアプリがありますけれど、データ管理はどうやるのがメジャーなんですか?

362 :デフォルトの名無しさん:04/09/30 17:41:32
>>361
スクラッチパッドの先頭にデータの個数、
それに続けてそれぞれのサイズと実データを記録して起動時に全部メモリに読み込む。
セーブの時も一度にメモリの内容を全部書き込んでしまう。
オートセーブしたいなら予めサイズを決め打ちしてしまう。

363 :デフォルトの名無しさん:04/09/30 18:24:12
質問です。
Thread.sleepメソッドに関してなのですが、実行するとNullPointerExceptionが出ます。
別の場所で実行した場合は問題なく実行されるのに、
なぜかstart()からrun()メソッド内で実行するとNULLが出てしまいます。
どうすれば直せるでしょうか?何が原因か分かる方はいらっしゃいませんか?

364 :デフォルトの名無しさん:04/09/30 19:10:17
>>363
オブジェクトがNullになってます。
まずNullPointerExceptionがでるところを確定させること。

365 :デフォルトの名無しさん:04/09/30 19:54:39
どういうわけか本能的にガッってしたくなる。

366 :363:04/09/30 19:54:41
ありがとうございます。何とかなりそうです。

367 :デフォルトの名無しさん:04/09/30 21:49:52
>>359
なるほどねー。
画面をcopyするんじゃなくて、属性とかをcopyするのか。
てっきり前者だと思ってなんのためにあるんだろって思ってたよ。
サンキュ。

368 :359:04/10/01 01:39:39
間違えたorz
>>360 サンクス!

369 :デフォルトの名無しさん:04/10/01 12:59:35
               ゚・ 。  ・。
               。・゚・⌒)
  −=≡    _ _ o━ヽニニフ ))
 −=≡   ( ゚∀゚)彡。・゚。・⌒)
−=≡   ⊂   o━ヽニニフ ))
 −=≡   ( ⌒)  チャーハン!チャーハン! 
  −=≡  c し'   

370 :363:04/10/01 15:15:28
すみません、やっぱりうまくいきません。
NullPointerExceptionが出るのはThread.sleepだけでしか起こりません。
ほかは一通りスレッドは使わずに実行してみましたが、全て問題なく実行されます。
Thread.sleepだけが実行されません。Thread.sleepだけが。

371 :363:04/10/01 15:26:14
あああ、と思ったら原因をやっとハケーン!!
お騒がせしました。

372 :デフォルトの名無しさん:04/10/01 15:37:47
ちゃんと報告しる!

373 :デフォルトの名無しさん:04/10/01 15:46:10
イライラする質問者の見本のようなやつだな。

374 :デフォルトの名無しさん:04/10/01 16:02:29
原因がまったく別にあったとしても、きちんと詳細報告してくれ。
Thread.sleepに何か問題があるのかとみんなガクブルしちゃうでしょ。

375 :デフォルトの名無しさん:04/10/01 16:41:24
どーせThread.sleep(5000); とかやるところを
Thread.sleep(); とかやったんだろう。

376 :363:04/10/01 16:43:54
プッ

377 :デフォルトの名無しさん:04/10/01 18:12:15
どうせスリープして別スレッドで開放した参照にアクセスしたんだろ。

378 :デフォルトの名無しさん:04/10/02 02:44:29
リソースを一本のバイナリにする時、皆どうしてる?
やっぱDOSコピーでヘコヘコしてんのか?
次世代開発環境を聞かせてくれ

379 :デフォルトの名無しさん:04/10/02 03:06:54
スクリプトでも書きなさい。

380 :デフォルトの名無しさん:04/10/02 07:10:27
そういう時はperlとかで簡単なツールを作るべし
漏れはそうしてる

381 :デフォルトの名無しさん:04/10/02 08:03:04
待ちうけアプリの休眠状態のときって、アプリ側で処理を行うことはできない
ということなのでしょうか。たとえば、休眠状態を継続しつつタイマイベント
を1時間おきに発生させるような処理は可能ですか。

382 :378:04/10/02 10:36:21
う〜ん。
バッチの方が早そうだ。
コノ作業は10年前から変わらんね。


383 :378:04/10/02 11:32:47
>>379
すまん。
前言撤回。
ruby最高!

384 :デフォルトの名無しさん:04/10/02 11:46:40
>>381
setWakeupTimer()
使うと、休眠状態でも定期的に動作させられるぞ。

385 :363:04/10/03 01:24:17
メンバ変数で宣言してた変数をメソッド内で再宣言してたせいでローカルになって例外になってますた。
片っ端からメソッドを試してたんだけど、下の方の忘れてたようなメソッドにあったので発見にてまどりますた。

386 :デフォルトの名無しさん:04/10/03 01:50:20
>>385
ああ、それってコンパイラが警告してくれてもいいのにねえ。
漏れも初心者のことハマった記憶がある。

387 :デフォルトの名無しさん:04/10/03 02:10:19
>>386 Eclipseに入ってるコンパイラはフィールドとローカルで名前が
被ったとき、エラーにするか警告にするか無視するか指定できるよ。

388 :デフォルトの名無しさん:04/10/03 02:40:33
スタックトレースを表示する方法ってないのかねぇ

389 :デフォルトの名無しさん:04/10/03 03:17:13
>>388
うちでは表示されるから表示する方法はあるんだろうな
喪前と何が違うのかは知らん

390 :デフォルトの名無しさん:04/10/03 22:25:19
servletスレで聞くべきか迷ったけどとりあえずこっちで。

iアプリで文字列をエンコードした時と
servletで文字列をエンコードした時で
結果が変わるのだけど、serlvet上で
iアプリと同じようにエンコードできないでしょうか?

例えばテレビをエンコードすると
iアプリ→%83e%83%8C%83r
servlet→%83%65%83%8C%83%72
となってしまう。eがservletだと文字コードの65になるのは
なんとなくわかるんだけど、自分で変換しなくても
encodeTypeでなんかないのかな?
今はshiftjisでエンコードしてて、他のもいろいろ試したけど
iアプリと同じようなエンコードになるのがなかった…。

いい方法があれば教えてください。

391 :デフォルトの名無しさん:04/10/03 22:48:07
>>390
eが0x65でrが0x72なんだよね?ちゃんと調べてないけど。
だったらどっちも等価なので問題ない。
まともなデコーダなら、どっちもデコードしたら同じ結果になるはず。

392 :デフォルトの名無しさん:04/10/04 00:19:11
>>391
等価なのはわかるんだけど、比較したときに等価だと判断されないので
なんかいい方法は無いかとおもって
そこだけdecodeして比較とかなんかカコワルイ感じもするし

393 :デフォルトの名無しさん:04/10/04 00:44:49
デコードせずに比較する方がカコワルイと漏れは思うんだが

394 :デフォルトの名無しさん:04/10/04 01:09:52
>>392
何でも比較するときには正規化は必須でしょう。
今回のケースでは、正規化はデコードすること。

395 :デフォルトの名無しさん:04/10/04 01:37:43
f505iなんですが、
PhoneSystem.setAttribute(PhoneSystem2.DEV_I_LIGHT, PhoneSystem2.ATTR_I_LIGHT_WHITE );
のライト点灯時、明るさが足りないのですが、
カメラでの撮影時のライトくらい明るくすること
はできないのでしょうか?

396 :デフォルトの名無しさん:04/10/04 10:48:15
あー…たしかF505はアプリでいじっても、携帯での設定が優先されるという

  仕様

があるはず…。
それとは違うかな?
常に暗い状態で、ボタンとか押しても明るくならないのなら、それ。
「アプリ時のライトの設定」みたいな項目があって、それが絶対優先されてしまう。
バグ扱いされてコマタ

397 :デフォルトの名無しさん:04/10/04 23:48:33
プログラムの経験全く無い人がいきなりJavaから始めても大丈夫でしょうか?
本人のやる気次第でなんとでもなりますか?

398 :デフォルトの名無しさん:04/10/05 00:02:52
現実にはそういう人いっぱいいるよ。
結果として、使えない人もいるし、驚くほど成長する人もいるし。
結局やる気じゃない?

399 :デフォルトの名無しさん:04/10/05 00:04:00
いきなりJavaからっていうか、初心者にはJavaから始めるのはそう悪くない。

400 :デフォルトの名無しさん:04/10/05 01:10:36
ていうか、むしろ推奨されるくらいだろうな。
初心者ほど、世代の新しい言語がいい。
Javaは開発環境も整ってるし、iモード携帯Javaは癖があるように見えて、
端末の個体差を意識するレベルまで踏み込むまでは、きっちりとした
Java端末でしかない。

アップロードも自由にやっていいし、自分の持ってるケータイで
自分の書いたアプリが動くのは、結構感動する(w
調子に乗ると、パケ代が馬鹿にならないけどね。

そんなわけで、まずははじめてみれ。
少々の事なら、このスレの住人優しいし、皆いろいろと教えてくれるさ。

401 :デフォルトの名無しさん:04/10/05 01:25:44
そうそう、cとかは演算子とか文法に分かりにくい部分が沢山あるから
初心者にはjavaの方がいい。
*a+i と a[i]は同じなんだぜとか言われても混乱するだけ。

402 :デフォルトの名無しさん:04/10/05 02:08:08
釣り氏キタキタ━(゚∀゚)━ !!

403 :デフォルトの名無しさん:04/10/05 10:40:05
同じじゃねぇだろ

404 :デフォルトの名無しさん:04/10/05 11:13:17
*(a+i)なら同じになりそうなんだが、*a+iだと違うんじゃねーか?

405 :デフォルトの名無しさん:04/10/05 11:40:36
>>404
察してヤレ

406 :デフォルトの名無しさん:04/10/05 13:11:24
やさしい住人達ですね(´ω`)

407 :デフォルトの名無しさん:04/10/05 23:28:58
Cだと、それどころかa[i]とi[a]も同じなんだよなw

408 :デフォルトの名無しさん:04/10/05 23:54:02
意外に知られてないけどね

409 :デフォルトの名無しさん:04/10/06 00:15:30
だからって仕事で 5[a] とか書いたら殴られるぞ。

410 :407:04/10/06 00:46:47
>>409
うん。漏れもそれやられたら殴るかも知れんw

411 :395:04/10/06 02:42:39
>>396
サンクス。常に暗い状態なのです・・・。
PictureLightも非対応のようなので、
あきらめます(´・ω・`)ガッカリ・・・
ありがとうございました。

412 :デフォルトの名無しさん:04/10/06 06:13:03
javaスレでも聞いてしまったのですが、こちらで聞かせてください。

Calendarクラスのaddメソッドを使うとコンパイルエラーになります。

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -5);

「シンボルを解決できません。」となります。
Dojaではこのメソッドは使えない?のでしょうか
リファレンスにもこのように書いてあるのですが・・・



413 :デフォルトの名無しさん:04/10/06 08:27:27
>>412
CLDC1.0では使えないんじゃないの?
CLDCのAPIリファレンスを見るベシ>>2

414 :デフォルトの名無しさん:04/10/06 15:08:08
>>412
初心者スレの4様を参照
http://pc5.2ch.net/test/read.cgi/tech/1089530578/4


415 :デフォルトの名無しさん:04/10/07 01:09:03
>>412
CLDCは1.0も1.1もCalendar#addなんてメソッドはない。

416 :デフォルトの名無しさん:04/10/07 23:54:01
あどれす家だって登録してます?
ttp://www.adyada.com/

417 :デフォルトの名無しさん:04/10/14 18:10:16
すいません質問があります。

現在
携帯のフォント文字が飛び交うようなアクションゲームのアプリを作っているのですが、

paint内で
キャンバスにdrawStringで一文字ずつ描画してまして(スプライトのような感じで)、
それを1秒間に10フレームくらい更新してアクションゲームとして進行させているのですが、

実機上で(D505iなど)
20〜30文字くらい表示するともう処理が追いつかず、処理落ちしてしまいます。
文字以外は何も表示していません。

基本的に
drawstring はけっこう処理を食うものなのでしょうか?

418 :デフォルトの名無しさん:04/10/14 18:32:22
食います。以上。
文字数より実行回数に比例するけど。

D505もってないんだけど、6x12でdrawImageするのとdrawStingで1文字はどっちが早いんかね?

419 :デフォルトの名無しさん:04/10/14 18:41:37
それは機種によりけりだと思うが、平均するとdrawImageよりもdrawStringの方が
ずいぶん重たい感触がある。

420 :デフォルトの名無しさん:04/10/14 20:15:04
まあ、普通に考えてもフォント描画するほうが処理量多いだろう。

421 :デフォルトの名無しさん:04/10/14 20:26:08
>>418-419
レスありがとうございます。

なるほど、やはり重たいのですね。
逆に安心しました

そうすると、一画面に30文字以上とか表示する場合に、
毎フレーム全文字描画していては
あまり速度が期待できないわけですね。

iModeのサウンドノベルとかはけっこうな文字数表示していますが、
どうやっているんでしょうか

まぁあれはアクションではないですし、
毎フレーム全部drawStringしている、というわけではないのかな。。

422 :デフォルトの名無しさん:04/10/14 20:28:41
>>420
drawImageでしたらけっこう描画いけるのですが、
今回drawStringを試したとたん処理落ちしたので、今回の質問をさせていただきました。

やはりフォントの描画は
かなり重い感じなんですね

423 :デフォルトの名無しさん:04/10/14 20:44:43
フォントをイメージに描画しておいて、それを使い回しするように
すれば速いのかな?

424 :デフォルトの名無しさん:04/10/15 00:41:52
>>421
ぶっちゃけ、1フレ1文字とかで書いて、絵を保存してるだけではないかと。
つまり>>423か、単に前に書いた絵を消してないという例のアレ。

使い方間違えなければ、そんなベラボウに重たいわけでもないけどね。
漏れに限らず、4回+1回描画で縁取りフォント書いてる例なんてのも
よく見かける。

試したわけじゃないが、フォントサイズ等でも結構変わったりするもんなのかな。
12x12か24x24の標準フォントってやつしか使ったこと無いから、よくわかんないや。

425 :デフォルトの名無しさん:04/10/15 00:58:38
>>423-424
なるほど、とても勉強になります

イメージにフォントを保存しておいて、drawImageで毎フレーム描画するか・・
それとも描画を消さずに書き足していく例のソレにするか・・・

なかなかの悩みどころですね

ちなみに
>>424さんは、1文字につき5回描画していらっしゃるようですが、
その場合毎フレーム描画しているのでしょうか?

426 :424:04/10/15 01:11:10
>>425
字数にもよるけど、毎フレーム書く場合もあるます。
例えば

//RGB
void setRGB(Graphics g, int rgb)
{
 g.setColor(Graphics.getColorOfRGB(rgb>>16, (rgb>>8)&0xff, rgb&0xff));
}

//文字描画縁取り有りアンカ指定無し
void drawString(Graphics g, int baseRGB, int edgeRGB, String str, int x, int y)
{
setRGB(g, edgeRGB);
g.drawString(str, x, y-1);
g.drawString(str, x+1, y);
g.drawString(str, x, y+1);
g.drawString(str, x-1, y);

setRGB(g, baseRGB);
g.drawString(str, x, y);
}

こんなゾンザイなコードだけど、1画面10文字ちょいくらいなら、気にせず書いちゃうかな…。
確かに負担は少なくないので、使いどころは気をつけます。
アクションゲームとかなら、フォントは原則drawStringよりdrawImageかも。
特に数字とかだけなら、GIF刻んで表示した方が断然速いですし。

427 :デフォルトの名無しさん:04/10/15 01:25:19
>>424=426さん、
コードまで拝見させて頂きましてありがとうございます。
縁取りのやり方、なるほどと思いました。とても為になります。

そうですね、今回作りたいものがアクションゲームよりですので
表示文字が動く場合にはやはりdrawImageの方がよさそうですよね。

ちょっとその方向で頑張ってみようと思います。

夜分遅くどうもありがとうございました。
とても勉強になりました。

428 :デフォルトの名無しさん:04/10/15 15:52:00
質問よかですか?

プログラム容量減らしたいんですが、
scratchpadにプログラムを置く事って出来るんでしょうか?
また、シェープアップの裏技とかってあるんでしょうか?

ターゲットは505と900です。


429 :デフォルトの名無しさん:04/10/15 16:13:11
リソースならscratchpadに置いたり、サイトからダウンロードしたりして
本体側をスリムに出来なくはない。

430 :デフォルトの名無しさん:04/10/15 17:07:49
出来るだけ、後から読んでOKなリソースは外に出しておくのがいいかと。
ソフトを、オーバーレイみたいな感じで外に出すのは無理なんじゃないかな。

431 :デフォルトの名無しさん:04/10/15 17:08:57
> プログラム容量減らしたいんですが、
>>2
■ アプリを省サイズ化するツール(ObfuscatorまたはOptimizer)
jargはバグってるので-nobcoを付けないとダメ

> scratchpadにプログラムを置く事って出来るんでしょうか?
クラスローダーが無いから無理

> また、シェープアップの裏技とかってあるんでしょうか?
jar.exeのかわりに7zipを使う
クラスを作り過ぎない
アプリからアプリを起動できるから、アプリを2つに分けるって手もある

432 :デフォルトの名無しさん:04/10/15 18:08:59
おおお。
素晴らしい。
聞いてみるもんだね。

>>429
>>430
プログラム以外の部分は、既に外に置いとるのですよ。
その事、書くの忘れてますた。

>>431
お陰さまで31kが19kに生まれ変わりました。
ありがちょ。


433 :デフォルトの名無しさん:04/10/15 20:29:29
アプリをネットワーク経由じゃない方法で動作させる方法はありますか?
作ったものをテストするのにパケット代がかかるのは嫌なんです。

434 :デフォルトの名無しさん:04/10/15 20:31:05
>>433
dojaでやるしかないと思う・・・

435 :デフォルトの名無しさん:04/10/15 23:09:18
パケホーダイ


436 :デフォルトの名無しさん:04/10/16 09:39:03
質問よろしいでしょうか?

505i用に作ったアプリを900で動かしているのですが、N900iだけ

初回起動時は普通に動いて、2回目以降はタイトルからゲーム中に行く時の

画像読み込みでアプリエラーが発生してしまいます。

メッセージはこれなんです。
/***********
message = Uncaught exceptin happened
throwable = java.lang.OutOfMemoryError
throwableMessage =
curClass = com/nttdocomo/ui/MediaDatalmpl
curMethod = use
***********/

これはADF設定でSpSizeを変更(DLLする容量+10KBに)することで解決したいのですが、

ヒープエラーだとしても原因が分かったわけでは無いのでスッキリしません・・・。

よろしければどなたかご教授下さい。m(__)m

437 :デフォルトの名無しさん:04/10/16 09:45:48
メモリリークじゃないのか。

438 :デフォルトの名無しさん:04/10/16 10:02:34
>437
あ・・System.gc()は画像を読み込む毎にかけていますが…。

強制終了時に画像解放していないから、とかでしょうか?(汗

質問ばかりですいません。


それと訂正です。

× 初回起動時は普通に動いて、2回目以降はタイトルからゲーム中に行く時の

○ 初回起動時は普通に動いて、2回目の起動以降はタイトルからゲーム中に行く時の


439 :デフォルトの名無しさん:04/10/16 11:06:53
まさかとは思うが、読み込もうとしてるのJPEGじゃないよな?
過去ログ嫁

といおうとしたら、過去ログまだHTML化されてないのか…。
N900とP900にはJPEG読み込みにバグがあって、一定以上メモリーを使ってから
JPEGを読もうとするとメモリーエラーで落ちる。

解決方法としては先にJPEGを読むか、(なぜか)SPサイズを409600にする

440 :デフォルトの名無しさん:04/10/16 11:09:39
P900iなら動くのか?
NとPはスクラッチパッドから絵を読むときlengthを付けないとOutOfMemoryになるぞ

441 :436:04/10/16 11:58:47
>439
画像は全てgifを読み込んでいます。説明不足ですいません(汗

>440
P900iは普通に動作しています。


じつは、画像が30枚あるのですが、スクラッチパットからの読み込み順を

0〜29から29〜0に変更したら、アプリエラーが発生しなくなりました(汗

ナゾだ・・・。

442 :デフォルトの名無しさん:04/10/16 12:12:14
また別のところにしわ寄せがいくだろうな・・・

443 :デフォルトの名無しさん:04/10/16 12:12:14
SPサイズの変更でも起きなくなったのと、
読み込み順番を変えたら起こらなくなったのを考えるに

やっぱりJPG読み込み系と似た症状だな。
でも全てGIFなのか…。
拡張子はGIFだけど、実は中身がJPEGとかそういうオチはないかな?

444 :436:04/10/16 13:50:29
>443
バイナリを確認したところ最初はGIFでしたので大丈夫かと思います…。

色々やってみますんでまた何かわかったら報告させていただきます。

皆さんご助言ありがとうございました〜。

445 :デフォルトの名無しさん:04/10/16 14:02:27
>>444
きちんとバイナリチェックまでするとは、見上げた向上心。
いつでも歓迎するから、何かわかったら是非報告しに来ておくれ。助かる。

446 :デフォルトの名無しさん:04/10/16 17:32:40
すいません質問があります。

パネルに
大きさが1文字分のテキストボックスを縦に並べたいのですが、
デフォルトでLayoutManegerに任せるとテキストボックスはどんどん右に並んでいって、
画面端に到達すると一段下に行く、という感じになってしまいます。

これをひとつずつ縦に並べたい場合、
一般的にはLayoutManegerをnullにして
コンポーネントのXY指定で並べていくしかないのでしょうか?

447 :デフォルトの名無しさん:04/10/16 18:52:21
レイアウトマネージャーに
<br>効果のメソッドがあったはずだが。

448 :デフォルトの名無しさん:04/10/16 18:58:30
2回目以降って、iアプリを終わらせてからってこと?

449 :436:04/10/16 19:55:31
>448
はい、そうなんです…。
1回目の起動で画像をDLして、スクラッチパットに保存。
その後スクラッチパットから読み込んで使用。

ここで一度終了します。

2回目以降の起動ではスクラッチパットから読み込んでいますが、途中で落ちます。
この時、SpSizeの値によって落ちるタイミングが違います。

(画像 30枚 : 合計 38KB)
 SpSize = 200KB の場合、17枚めの読み込みでアプリエラー

 SpSize = 100K  の場合、28枚めの読み込みでアプリエラー

 SpSize = 50KB  の場合、30枚全て読み込み可能でエラー出ません。


それと見当違いかも知れませんが、try catch で UIException を取れずに落ちました…。

450 :デフォルトの名無しさん:04/10/16 20:51:35
単にでかい画像を何枚も読み込んでメモリ不足ってことはない?
使用メモリを各所で表示するようにして実験したらどこがまずいのか分かるかも。
初回起動時とそれ以降で、スクラッチパッドからの読み込み部分の頭で違うかもしれない。

451 :デフォルトの名無しさん:04/10/16 20:56:50
役に立たないかも知れないですが

Nだけ初回起動と2回目の起動でなんか動作違うことあったなぁ・・
なんだったっけかな

452 :デフォルトの名無しさん:04/10/16 21:07:41
読み込み順でOutOfMemoryエラーがでたりでなくなるのはこういうことじゃないのか?

例えば、画像サイズが1番から1,2,3,4,5のとき、
スクラッチパッドから画像を読み込むときに画像サイズと同じメモリを使用するとすると、
1番から読み込む場合、最後の画像を読み込んだ瞬間の使用メモリは1+2+3+4+5+5=20
逆だと5+4+3+2+1+1=16

内部的にどうなってるか知らんので当て推量だが。

453 :デフォルトの名無しさん:04/10/16 21:15:57
>>451
今回は、初回と2回目以降で処理内容が違うから関係ないのでは?

454 :デフォルトの名無しさん:04/10/16 23:07:48
> それと見当違いかも知れませんが、try catch で UIException を取れずに落ちました…。

java.lang.OutOfMemoryErrorがスローされるんだろ?
Throwableをcatchしてるか?
ExceptionじゃなくてErrorだから、両方の親のThrowableをcatchすると楽

455 :デフォルトの名無しさん:04/10/17 01:12:10
ああ、やっぱりこの件か。
NとPは通信と画像読み込みにバグがある。
解決方法としてはSPサイズを409600にするか、起動直後に(無駄だとしても)JPG画像を
最低1枚読み込み(すぐ解放してもよい)、通信を行う(openする。すぐcloseしてもよい)ことだ。
これで大筋正常になる。


はっきり言って    ビチ糞にも劣るハード    だが、ソフト屋はハードのバグにも対応するのが慣例らしいな。
さっさとパッチあてろといいたくなる。

456 :デフォルトの名無しさん:04/10/17 15:05:07
panelクラスで表示するテキストのフォントってどう指定すればいいんでしょうか

457 :デフォルトの名無しさん:04/10/17 23:11:33
>>456
Font#setDefaultFont() ぐらいは試したんだろうな?

458 :デフォルトの名無しさん:04/10/18 09:33:01
ギガアプリの逆アクセスランキングのお知らせが来たけど
SEO対策にしても、ちとやり方が露骨すぎねーか。
相互発展も何も力関係が不平等すぎるし。

少なくとも俺はウチのサイトに来た人間を逃がすつもりなどさらさらない(w

459 :デフォルトの名無しさん:04/10/18 09:48:57
つーかギガアプリ、メルアド漏洩させやがったわけだが('A`)
糞重いメール届いたと思ったらヘッダに大量のアドレスが…

460 :デフォルトの名無しさん:04/10/18 18:59:22
>>459
あの会社はいまどき1000人以上にメール送るときでもメーラーつかってんのかな。
MLにでもしたらいいのに・・・

461 :デフォルトの名無しさん:04/10/19 03:02:03
901iのVMどーなんの? JBlendまだ〜?
誰かこっそり教えて。

462 :デフォルトの名無しさん:04/10/19 14:09:23
教えて君で申し訳ないけど・・・

3D表示(視点移動などする)でワイヤーフレームを表示したいんだが、
参考になるサイトはあるかな?

マスコットの3D表示は出来るんだが、
ワイヤーフレームを表示となるとよく分からなくなってくるもので・・・。

463 :デフォルトの名無しさん:04/10/19 15:09:25
iアプリにこだわらず、3Dのサイト探すべし。
ワイヤーフレームといっても色々あるからな…。
単純なスクリーン投影タイプでよければすぐできるんじゃない?

464 :デフォルトの名無しさん:04/10/19 15:32:21
>463
単純なワイヤーフレームなら計算で線引きするけど、
やりたい事というのが、ワイヤーフレーム内部にポリゴンオブジェクトを表示して
動的にカメラ視点の移動をさせるという事で、
さらに俺には、3D系の知識は皆無なんですよ(物理や数学が苦手という、最大の問題もあるけど)。

まあ、あわよくば3D表示データを数値設定しているようなサンプルソースが手に入れば・・・
とも思っていたんだけどね。
ん・ぱか工房のサンプルソースだと、ちょっと心許なかったもので、聞いてみました。
他に参考になりそうなサイトがあれば、(iアプリじゃなくても)教えてくれませんか?

465 :デフォルトの名無しさん:04/10/19 15:35:58
>物理や数学が苦手という
まあ、苦手でも必要な部分は理解しておかないと
サンプル見て作っても後々苦労することになる。
今のうちに勉強しとけ

466 :デフォルトの名無しさん:04/10/19 15:54:08
>465
うむ、現状おかれている難問で勉強する気にはなった。
しかし・・・、プロトタイプ版の作成が期限間近なんで勉強する暇はないんですな(泣)。
まあ、実開発でも始まれば、教材を買いに行く時間ありそうだけどねぇ。

とりあえず出来るか分からんが、プリミティブ配列に線のプリミティブ12個(ワイヤー数)を
設定して立方体の描画テストしてみるわ。
・・・つうか頂点座標の計算どうしようかなぁ・・・。


467 :デフォルトの名無しさん:04/10/19 16:15:57
勉強ガンガレ。

頂点計算はたいていライブラリが持ってたりするので、
利用するのが良いと思う。
あと、ん・ぱか工房の説明は見ておいたほうがいい。<アフィン変換と視点座標

あとは、点の座標を保持して、透視変換したあと線を描いたほうが良くないか?

468 :デフォルトの名無しさん:04/10/19 16:56:32
すいません質問があります。

テキストボックスで入力モードをカナ漢字モードに設定すると、
実機ではちゃんとカナ漢字モードになっているんですが、

Doja3.5のエミュレータ上だと数字入力モードになっていて、カナ漢字に変更する事ができません。
エミュレータでカナ漢字にするには何か別の設定が必要なのでしょうか?

469 :デフォルトの名無しさん:04/10/19 17:11:49
>>467
PrimitiveArrayを使って、座標は変換前のものを保持するようにして、描画時に
ワールド座標からの変換をすればよろし。

470 :デフォルトの名無しさん:04/10/19 17:12:50
既出?
ま、コード示してないからよくわからんけど。

471 :デフォルトの名無しさん:04/10/19 18:49:06
>>466
ゲームプログラミングのための3Dグラフィックス数学
http://www.gogo3d.com/products/mathema/

ゲームプログラマの事実上の教科書になってる本。高いけど1冊持っておくとよろしいかと。
いきなり全部読みこなす必要なし。たぶん携帯でも役に立つ日がすぐ来る。
こいつ片手にDirectX系の解説サイトでも漁るべし。

実は最近3Dプログラミング界隈あまり進展がないので、追いつくなら今だ。

472 :デフォルトの名無しさん:04/10/20 00:28:46
携帯のレベルにその本いきなり役に立つかなあ…って、追いつくのはあっという間か。
確かに勉強にはいい時期かもしれん。

あと、古典的だけど、ゲーム数学の勉強には、普通に計算幾何とか計算機数理の教科書がいいよ。
とりあえずガンガレ。

473 :デフォルトの名無しさん:04/10/20 01:05:26
>>471
もう、レンダリング手法とか、テクスチャの手法は十分な感じで、動きの表現もたいがい出揃った感があるね。

474 :デフォルトの名無しさん:04/10/20 02:06:20
>>468
エミュレータ上では、カナ漢字は普通にキーボードから入力することに。
エミュレータのキーを押してもカナ漢字変換されないよ。

475 :デフォルトの名無しさん:04/10/20 02:22:57
>>473
煮込めばまだまだいくらでも煮詰められるんだろうけど、
努力の量と得られる利益の分岐点は超えた気がするよね。
でもケータイにシェーダ載るとなったら、もう一ネタあるかな?

…如何に消費電力を抑えるか、なんて、シェーダからアプローチできたら面白いんだが。

476 : ◆lcP.ltB.PU :04/10/20 04:26:18
>>462
ちょっとしたサンプルを作ってみた。
ttp://narunia.ddo.jp/~puni/wf/

ソースは
ttp://narunia.ddo.jp/~puni/wf/src.zip

ローカル座標系からワールド座標系への変換はやっていないんで、
もし必要だったらいろいろ実験してみてくれ。

477 :デフォルトの名無しさん:04/10/20 04:29:13
面白そうだけど、難しいだろうね。

478 :デフォルトの名無しさん:04/10/20 15:41:12
>>474
レスどうもありがとうございます。

キーボードを押すという事にまったく気づかず
必死にエミュレータのボタンだけを押してましたw

勉強になりました。
どうもありがとうございました。

479 :462=464=466:04/10/21 14:51:49
ワイヤーフレームに関するレス、ありがとうございました
(特にサンプルを作ってくれた >462 さんに多謝)。

フレームの描画と回転に関しては、とりあえず出来るようになりました。
理論の部分に関しては、>471 さんの紹介してくれた本を勉強する事にします。


で、たびたび教えて君な質問で恐縮だけど・・・。
一つのモデル(Figure?)を複数、別々の座標に描画させたいんだけど、iアプリ(Javaの命令)
で出来るかな?
マニュアルを読むと、「Micro3D においては,モデル座標はFigure の中に隠蔽されています」
と書かれていて出来なさそうな感じ。

今はプロトタイプ作成なんで、無理矢理「setScreenCenter」で座標をずらして描画してるけど、
なんか別の方法があるような気がして・・・。


480 :462=464=466:04/10/21 14:53:20
うわ、番号間違えた!
サンプル作ってくれたのは >476 さんです。申し訳ないです。

481 :476 ◆lcP.ltB.PU :04/10/21 15:52:35
>>479
結論から言うと出来る。

各モデルごとにローカル座標→ワールド座標変換用のAffineTransを持たせておいて、
描画時にワールド座標→視点座標変換用のAffineTransとの積をとって、それを
Graphics3D#setViewTrans()で設定してから描画すればいい。

482 :デフォルトの名無しさん:04/10/21 15:55:28
Figureを平行移動したり回転させるには、そのつど視点を動かすしか無いっぽい

483 :デフォルトの名無しさん:04/10/26 01:30:53
保守

484 :isis:04/10/28 12:49:56
static byte[] loadData(int sp, int point, int len){ // sp = 0, point = 0, len = 18
if(point<0 || len<=0) return null;
byte[] ldByte = new byte[len];
InputStream in = null;
try{
in = Connector.openInputStream("scratchpad:///" + Integer.toString(sp) + ";pos="+Integer.toString(point));in.read(ldByte);
in.close();
in = null;
}
catch(Exception e){
if(in!=null){
try{
in.close();
}catch (Exception err) {}
}
in=null;
return null;
}
if (ldByte == null) {
String not = "There is nothing.";
     return ldByte = not.getBytes();
}
else
{ return ldByte; }
}
テキストボックスの保存内容が無いときに、メモ欄に ldByte == null を表示したいのですが
ldByte がどうしてもnullにならなくて、空白になってしまいま・・・
スクラッチパッドを初期化してもだめで、
ldByte をint にすると17とでたので、参照があるぽいので
String に直したら変な文字化けぽいのがでます・・
文字が " " でない保存、読み込みは普通にできますが・・

485 :デフォルトの名無しさん:04/10/28 15:49:45
>byte[] ldByte = new byte[len];
としてるわけだからldByteがnullになることはないっしょ

486 :デフォルトの名無しさん:04/10/28 23:18:20
F900iTにbluetoothが搭載してますが
iアプリからbluetoothを利用することはできますか?


487 :デフォルトの名無しさん:04/10/28 23:50:50
>>486
むり

488 :デフォルトの名無しさん:04/10/29 00:00:43
>>484
485も言ってるが、
>byte[] ldByte = new byte[len];
この行を百回声に出して嫁!

489 :デフォルトの名無しさん:04/10/30 07:34:11
>>486
できます

490 :デフォルトの名無しさん:04/10/30 11:48:11
>>489
APIが無いのに利用なんてできないだろ


491 :デフォルトの名無しさん:04/10/30 11:56:17
JNIで。

492 :デフォルトの名無しさん:04/10/30 12:07:20
ガセネタ

493 :デフォルトの名無しさん:04/10/30 16:31:53
Image#createImage(int width,int height)で書き込まれるイメージを
透明色で塗りつぶすことってできないんでしょうか?

494 :デフォルトの名無しさん:04/10/30 17:09:25
できない。
透過が表現できるのは透過gifを画面に描画するときだけ。

495 :デフォルトの名無しさん:04/10/30 18:23:04
>>494
サンクス。

透明色無いとマップレイヤー付けられん。
何使おうかな…。

496 :デフォルトの名無しさん:04/10/30 18:48:26
iアプリでBGMと効果音を同時に鳴らすことについて質問です。

MIDIファイルをPsmPlayerでMLDに変換したファイルと
wavファイルをPsmPlayerでMLDに変換したファイルを2つ用意してます。
この2つをiアプリで同時に再生しようとしたらBGMのドラムパートが鳴りませんでした。
そこでネットで調べてみると
N505i/N900i/SO505iは「1ch〜8chを使ってBGMを作らないとマズイ」らしいので
MIDIのドラムチャンネルをデフォルトの10chから7chにエクスクルーシヴ使って変更してみました。
が、PsmPlayerでMLDに変換するとドラムパートが10chにもどってしまいます。
うーん。

もしかしたら大きな勘違いをしているのかもしれません。
プログラム上では
AudioPresenter.getAudioPresenter( 0 ) ... BGM用
AudioPresenter.getAudioPresenter( 1 ) ... SE用
としており、問題はないと思っているのですが。。。

ダラダラ長文質問ですみませんが、どなたかご存知の方いらっしゃいますか。


497 :デフォルトの名無しさん:04/10/30 20:44:19
>>496
N系の音源にエクスクルーシブでドラムCHを変える昨日はないし、その意味とは違うよ。
素直にノートデータをch8以下のところに変更してバンクセレクトを適切に入れてください。
もしかしたらpsmplayerでは出来ないかもしれないけどね。

498 :496:04/10/30 21:57:57
>>497
レスありがとうございます!
バンクセレクトを入れるというのは、コントロールチェンジ0,32を使って
ドラムの音色があるバンクに切り替えるってことでしょうか??
MIDI素人なので「基本」だったら申し訳ないです。
何番のバンクを指定すればいいのだろう。。。
バンクの番号って携帯機種依存なのでしょうかね?
そういった情報をネットで探してるのですが、なかなか見つからない。。。(汗

またしても見当違いでしたらすいません

499 :デフォルトの名無しさん:04/10/30 23:11:02
>>496
バンクセレクトはその認識でOK。
バンクなど音色番号周りの仕様はATS-MA3ツールのドキュメントに全部書いてあるよ。
ttp://smaf-yamaha.com/jp/tools/nec/tools.html
とりあえずMSB 0、LSB 32を指定すれば、そのチャンネルは
ノーマルチャンネルからドラムチャンネルに変わります。

これはNの仕様なので、他の機種はまた別の仕様になると思う。
ただ他の機種は1〜8制限とか無いから、10chドラムにして普通に変換しておいてOKだけど。

500 :496:04/10/30 23:25:46
>>499
レスありがとうございます!
ほんと助かりました
こんなツールがあったとは。。。

>これはNの仕様なので、他の機種はまた別の仕様になると思う。
>ただ他の機種は1〜8制限とか無いから、10chドラムにして普通に変換しておいてOKだけど。

すると、N用(SO505iも?)とそれ以外の機種でダウンロードを分ける必要があるのか。。。

とにかく助かりました。

501 :デフォルトの名無しさん:04/10/31 00:17:58
>>495
イメージを透明色でfillすることはできないが
透過gifでイメージを塗りつぶすことはできる

まぁ、面倒くさいけど一応
レイヤーとして持ってるオフスクリーンイメージを透明扱いにさせることはできる

502 :デフォルトの名無しさん:04/10/31 01:40:21
>>501
オフスクリーンで作成したイメージの背景色を
透過扱いにすることができるってことですか?

もし良かったら詳細教えて頂きたいです。

503 :デフォルトの名無しさん:04/10/31 04:36:21
DoJa3.0で開発してます。
バッチファイルからjavacを起動してiアプリをコンパイルしてます。
コンパイルは正常で起動も出来るのですが、絵文字が文字化けします。
バッチファイルはこんな感じ。

@echo off
set classpath= C:\iDKDoJa3.0\lib\classes.zip;C:\iDKDoJa3.0\lib\doja_classes.zip
set preverify= "c:\iDKDoJa3.0\bin\preverify"

javac -encoding SJIS -g:none -d classes -bootclasspath %classpath% -source 1.3 -target 1.1 src/*.java
%preverify% -classpath %classpath% classes
JAR cMvf pcw.jar -C output .
JAR uMvf pcw.jar -C res .

で、色々調べたり試したりしたところ、

・SJIS_iなるドコモの作った文字コード体系があるらしい。
・「-encoding SJIS_i」でそれを指定できるらしい。
・しかし自分の環境(j2sdk1.4.2_05)ではうまくいかず。
・インターネットで「-J-Xbootclasspath/a:[hogehoge]dojaconv.jarなるオプションを指定するという記述を発見!
(dojaconv.jarのパスは実際のパスを指定しました)
・それでもうまくいかず…(javacのバージョン違い?)
・「C:\iDKDoJa3.0\bin\dojaconv.jar」にそれらしきクラス発見。しかし使い方が分からず…。

あたりまで試して挫折してしまいました。

解決方法ご存知の方いらっしゃいませんでしょうか。

504 :デフォルトの名無しさん:04/10/31 07:13:01
実機でも化けるのか?
Win2kだと文字化けしないけど、WinXPだと文字化けしたことがあった
同じjar,jamを使ったんで少なくともコンパイラのせいじゃないと思う

-encoding SJIS_i は無くても動いたような希ガス

505 :デフォルトの名無しさん:04/11/01 03:18:53
>503
コンパイラ設定の解決方ではありませんが、
テキストをだけをバイナリリソースファイルとして作成し、
それを起動時にnew Stringすれば”〜”や”−”の文字化けを回避できると思います。
参考まで。


506 :デフォルトの名無しさん:04/11/01 11:05:28
win2000で開発しているものです。どなたか、画面内で文字列を動かす方法を教えてくださいませんか?

今は、
drawtextで表示→画面ロック→背景を書き直して→1ドット(とか2ドットとか)動かしてdrawtextで表示
→ロック解除(ここで描き直し)→
…を繰り返して動かしてはみてますが、激しくチラチラしてしまい、困っています。

やりたいことは、F900iの方ならわかると思うのですが、標準搭載の「ルーインエクスプローラー」というiアプリの文字枠のように、
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃モナーに12のダメージ                 ┃
┃モナーは毒に置かされた                 ┃
┃モナーに20のダメージ                 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃モナーは毒に置かされた                 ┃
┃モナーに20のダメージ                 ┃
┃モナーは氏んでしまった!                ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃モナーに20のダメージ                 ┃
┃モナーは氏んでしまった!                ┃
┃モナーを手に入れた!                  ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

※わかりにくかったらスミマセン、4行目以降が表示されるとき、ウィンドウの下辺からスクロールするようにスルリと現れ、それと同時に一番古い行(一行目)は、ウィンドウの上辺へスルリとスクロールしながら消えて行く。

…というように、新しい文字列(行)を下から表示させるたびに、ウィンドウ内を上へ上へとスクロールさせたいのです。

何か良い方法がありましたら、教えていただけませんでしょうか?

507 :デフォルトの名無しさん:04/11/01 12:09:20
>>506
> 激しくチラチラしてしまい、困っています。

Graphics#lockしろってこと?

508 :デフォルトの名無しさん:04/11/01 12:11:40
CopyRect

509 :デフォルトの名無しさん:04/11/01 14:07:10
>>506
キャンバスでつくってるのかなぁ。
もしキャンバスなら描画関係を記述してるであろうpaint()をなにで呼び出してる?
repaint()ならちらつきが多いと思う。(理由はわからないが・・)
paint(getGraphics())で呼び出すと緩和された気がする。

この辺りは詳しくはわからね〜。俺も知りたいw


510 :デフォルトの名無しさん:04/11/01 18:52:12
drawtextやらCopyRectやら自作のメソッド書かれても困る

511 :デフォルトの名無しさん:04/11/01 19:28:03
>>506
文字列をスクロールさせることとチラチラすることは別問題として切り分けよう。

>>508が言いたかったのは、文字列のスクロールはGraphics#copyAreaを使っては
どうかってことだろう。
メッセージウィンドウを空白で塗りつぶす目的で背景を描き直しているのなら
その処理と、何度もdrawString()する処理が省ける。
(drawtextはdrawStringって言いたかったんだよな?)

もしチラチラが背景上書きに起因するのであればそちらも解決するかも。
解決しなければ描画の仕方自体が原因だろうからそれは別に考えるってことで。

512 :デフォルトの名無しさん:04/11/02 00:50:55
>>503
絵文字が文字化けって意味がわからん。
ソースファイル中に絵文字を直接埋め込んでると文字化けするってこと?
だったらUnicode escapeしろ。
絵文字とUnicodeの対応表はドコモのページにあるから。

513 :デフォルトの名無しさん:04/11/02 00:54:22
なんか最近iアプリのゲームが飽和状態で
どのアイディアも他のパクリくさくて辛いっぽ(´・ω・`)
容量増えて公式にも値段は高いが魅力的なコンテンツも増えてきたし…
もう、自分がやりたいゲームを作ってみるぐらいしかできない…

514 :デフォルトの名無しさん:04/11/02 01:47:56
○絵文字を外字登録&辞書登録。ベクターに一式揃ってる
○ソース中に絵文字を直書き
○ソースの外に出す場合もSJISで直書き

これで絵文字が化けたことは無いぞ

515 :デフォルトの名無しさん:04/11/02 01:59:41
>>513
>もう、自分がやりたいゲームを作ってみるぐらいしかできない…

貴様!最高の財産隠し持ってながら何言ってやがる!
謝れ!女房子供食わせるために劣化再生産の歯車として働き
疲れて傷つき錆び折れてしまったプログラマンたちに謝れ!!

ていうか、自分が好きなゲームが作れて普通に食えるならいいじゃねーか。
ほかに何を求めると、君は!

516 :デフォルトの名無しさん:04/11/02 02:44:10
textboxって、半角500、全角250の文字数制限ありますよね?
SH505isで確認すると、そこで切れてるorz

517 :デフォルトの名無しさん:04/11/02 09:50:27
FOMA900だともっと入るよー。10000バイトだっけ?

518 :デフォルトの名無しさん:04/11/02 11:25:12
結局、iアプリってゲームでしょ?

519 :デフォルトの名無しさん:04/11/02 11:36:45
iアプリのゲームは、結局、ゲームだね。

520 :デフォルトの名無しさん:04/11/02 14:16:02
>>518の言いたいことはきっと
「ゲーム以外のiアプリってあるのかな?」
ってことに違いない

521 :デフォルトの名無しさん:04/11/02 16:39:52
>>503
ttp://www.nttdocomo.co.jp/p_s/imode/tag/emoji/
これを使えば文字化けなんてしない。
MSゴシックとかの自分使っているフォントに絵文字を外字登録すると、
エミュレータでもちゃんと表示される。


522 :デフォルトの名無しさん:04/11/02 18:54:53
CameraクラスのtakeMovieを実行した際に
com.nttdocomo.system.InterruptedOperationExceptionが発生する事があります。

JavaDOC等を調べると
「競合条件などにより、 ユーザインタフェース操作がユーザの意図によらず終了させられた
場合に発生する例外です。」
と書かれているのですが、具体的にどのような時に発生するのかピンとこず
対処に困っております。

どのような状況で発生するか御存知の方いらっしゃいますか?

523 :デフォルトの名無しさん:04/11/03 01:33:58
CameraクラスはObsolete

524 :デフォルトの名無しさん:04/11/03 01:37:17
Cameraクラスと言っても色々あります
com.nttdocomo.opt.ui.Camera
com.nttdocomo.device.Camera
com.nttdocomo.opt.device.Camera2


525 :503:04/11/03 01:42:09
亀レスすみません。

>>504
実機でもPCでも両方で化けます。しかもご指摘どおり、WinXPのみ化けました。
それで、ご指摘頂いて思い出したのですが、Office2003をインストールしたときに
勝手にインストールされるハングル外字のおかげでi-mode絵文字がうまく表示されないことがありました。
この辺ぽいです。
(ですのでウチのマシン、テキストエディタなどでは絵文字表示できるのにOffice系アプリだとハングルになります)

>>512
確かに基本ですよね…。しばらくの間はサボらずそれで頑張ります。ありがとうございます!

>>521
外字は登録してました。どうにも皆さんのご意見によるとレアケースぽいですね。


スレ違いの気もしてきたので、自力でもう少し頑張ります。有難う御座いました。

526 :512:04/11/03 20:11:00
>>525
おまいは俺の言ったことが少しは分かったのか?
分かったんなら何がどう「確かに基本」なんだか説明してみろ。

‥といいつつ具体的に教えてやる。
以下のようにすれば、どんな環境でもうまくいくからやってみ。

1. ドコモのページから技術資料をダウンロードする。
2. それを開いて、「iアプリ対応携帯電話の絵文字」に載ってる表を引いて、Unicodeを得る。
例えば「晴れ」マークならばE63Eだ。
3. それをソースコード上では\uE63Eと書く。
String hare = "\uE63E";

527 :デフォルトの名無しさん:04/11/03 23:48:46
Win95でもiアプリ作成環境整いますか…?

528 :デフォルトの名無しさん:04/11/03 23:58:59
整います。

529 :デフォルトの名無しさん:04/11/04 11:46:56
ん?そうだっけ?
確かに初期のエミュは95や98でも動いたと思うが
いまリリースされてるのって2000やXPでないと動かなかったような?
バージョンいくつからだっけかなぁDoJa3.0からだっけか??

作ろうと思えば一応95でも出来るだろうけどさw

530 :デフォルトの名無しさん:04/11/04 12:11:14
>>529
もう今は使ってないけど、
Win98SE2でDoja3.5動かして開発してた。

531 :デフォルトの名無しさん:04/11/04 12:45:35
>>529
必ずしもDoJaを使う必要はないから。
結局コンパイルしてpreverifyしてjarにまとめればいいだけだから。

532 :デフォルトの名無しさん:04/11/04 13:58:33
>>527
なんでそんな無駄なことするんだろうと小一時間


533 :デフォルトの名無しさん:04/11/04 19:30:05
>>531

LinuxでもOKだよね。

534 :デフォルトの名無しさん:04/11/04 20:42:01
>>501
そんな方法ある?
ImageやGetImageのメソッドじゃ無理っぽいけど。

535 :デフォルトの名無しさん:04/11/05 01:29:56
エミュレータさえLinuxで動けばなあ。
コンパイルできても動作確認ができないんだよな。

536 :デフォルトの名無しさん:04/11/05 10:05:33
>>534
ガセネタ
透過GIFをImageに描いたらImageの地の色が出るだけだ

オプションAPIのTransparentImageを使えば出来るが、機種依存だから使い物にならない

537 :デフォルトの名無しさん:04/11/05 12:04:29
全くのド素人なんですが・・

外部コントローラーをつけて、アプリを操作させる事って可能ですか?

538 :デフォルトの名無しさん:04/11/05 12:26:04
単純に何かのキーに対応した入力するコントローラーがあれば可能だろうけど、アプリの知ったことじゃない。

539 :デフォルトの名無しさん:04/11/05 12:37:05
>>538
なるほど、サンクス!

540 :デフォルトの名無しさん:04/11/05 17:16:55
auでゲームパッドが出てたな
ttp://www.au.kddi.com/ezfactory/tec/spec/ezplus.html

パッドを押すと携帯のキーが押されたことになる模様

541 :デフォルトの名無しさん:04/11/06 11:05:08
Vodafoneに至っては、端末つなげられるゲーセン筐体まで存在する訳だが。
TAITOが出してた奴。

多分、その種のアイテムは探せば結構あるもんだと思うよ?

542 :デフォルトの名無しさん:04/11/06 14:38:52
>>431
今更なんですが、「アプリからアプリの呼び出し」ってどうやるんですか?

543 :デフォルトの名無しさん:04/11/06 14:53:35
>>542
IApplication.launch

544 :542:04/11/06 15:08:19
>543 アリガトン!

545 :542:04/11/06 16:12:07
>543
移動できません…

ボタンを押したらDicというアプリを起動したいので、
launch(LAUNCH_AS_LAUNCHER,new String[]{"Dic.jar"});
としたんですが、ボタンを押すと
java.lang.NumberFormatException: the entryId is not an integer value
というエラーが出ます。

おそらくIDの書き方が間違っているんだと思いますが、
なにか勘違いしてそうなので助言よろしくお願いします。




546 :デフォルトの名無しさん:04/11/06 17:07:26
com.nttdocomo.system.ApplicationStore
を調べるべし

詳しいことは開発ガイドを見てチョ

547 :名無しさん:04/11/06 22:10:50
>>535
たしかに。
当方、しかたがないからwmwareでwindows 2000を動かしています。

なぜwindowsをつかなわいか?
サーバ側の開発もあるからです。
普段全然UNIX系のOSを使わないのに(使えないのに)、「UNIXでの開発が
できます」という恐ろしい会社(人)がいますねぇ。



548 :デフォルトの名無しさん:04/11/06 22:41:47
併用しなさいよ、そのくらい。
ていうか下の二行関係ねえし。

549 :デフォルトの名無しさん:04/11/06 23:42:42
前スレに既出かもしれませんが、探しても見つからなかったので質問させて下さい

携帯電話にシリアルポートで接続するおもちゃを作ろうと思っています。
外部装置から、携帯電話の内部に電話番号を追加したり、Webにアクセスする
アダプターの類は作れるのですが、せっかくなのでiアプリを利用して画面で
いろいろ操作出来るようにしたいのです。
しかしiアプリの開発ガイドを読んでもシリアルポートの制御に関する説明が見つ
かりません。
Vodaではそれらしい資料が有るようですが、i-modeではAPIは無いのでしょうか?


550 :デフォルトの名無しさん:04/11/07 01:58:08
>>549
ない。

551 :デフォルトの名無しさん:04/11/07 02:45:26
>>546
「を調べるべし」か。
おそるべし、となぜか読み違えて、わくわくした。orz

552 :デフォルトの名無しさん:04/11/07 13:34:23
>>547
普段全然Windows系のOSを使わないのに(使えないのに)、
「Windowsでの開発ができます」という恐ろしい会社(人)はおまえか?

553 :デフォルトの名無しさん:04/11/07 13:36:54
>>549
IrOBEX で検索しる

554 :デフォルトの名無しさん:04/11/07 15:00:21
PerlとかPHPでのプログラム組むのに、普段からUNIX系のOSを使わないとできない会社も痛いね。
PerlとかPHPでのプログラム組むだけなのに「UNIXでの開発ができます」という会社は恐ろしいですね。

555 :デフォルトの名無しさん:04/11/07 15:10:04
Perlは知らんけど、PHPはWindowsではかなり速度が落ちてしまうんだよ。
だからUNIX系のOSじゃないと、パフォーマンスが悪いということもある。

556 :デフォルトの名無しさん:04/11/07 15:27:43
開発時に使うなら、パフォーマンスはそんなに問題にならないんじゃない?
あと、Linux使ってて「UNIXでの開発」っていう痛いところもたまにあるね。

557 :デフォルトの名無しさん:04/11/07 16:03:33
WindowsにはVisualStudioがあるから、CなりでCGIを組むなら効果あるだろうけど、
PHPなら二度手間になるから最初からLinux上でした方がいいんじゃない?
だからといって、アプリの開発までWinで出来ないというのはヘボイが。

558 :549:04/11/07 17:02:30
>>550
そんな、血も涙も無い。
>>553
うーん、IrOBEXは赤外線ポートの制御だと思うんですが、何かシリアルポートを
制御出来る技が有るんですか?


559 :デフォルトの名無しさん:04/11/07 18:17:03
IrOBEXは赤外線ポートだけじゃないよ

560 :デフォルトの名無しさん:04/11/07 18:29:13
Ir=赤外線だろ?
意味ワカンネ

561 :550:04/11/07 19:12:20
>>558
だって無いんだから仕方無いじゃん。
IrOBEXとか言ってる香具師は釣りでしょう。
IrOBEXは赤外線でデータをやりとりするためのもの。
OBEX自体はアプリケーションレイヤのプロトコルなので、下のレイヤは選ばないけど、
とにかくiアプリからOBEXを扱えるのはIrOBEXだけだ。

562 :デフォルトの名無しさん:04/11/08 00:22:21
iアプリの製作を依頼されてDOJAでやりはじめたが実機テストは
端末でダウンロードさせるとか方法はないのでしょうか
ケーブル繋いで転送できると楽&金がかからなくて済むのですが

563 :デフォルトの名無しさん:04/11/08 01:26:12
>>562
こういうの買うしか無いんでないの?きっとパケ代よりかかると思うけど。
ttp://www.anritsu.co.jp/Products/List.asp?SID=20

564 :デフォルトの名無しさん:04/11/08 06:04:50
素直にパケホに入りましょう。
あるいは費用として一定額まではクライアントに請求することも考えましょう。
それなりのアプリの細かなテストしてると、最終的にはン万円コースに踏み込むことも
考えられないじゃないし、個人請けとかだったりすると馬鹿にならない。

565 :デフォルトの名無しさん:04/11/08 06:51:00
端末メーカーと仲良くなれば、ケーブル貸してもらえるよ。きっと。
パケ代気にならないくらいの会社じゃないと無理だろうけど。
ケーブルで接続しても、転送時間長くて楽じゃないかもしれないけど。

566 :デフォルトの名無しさん:04/11/08 07:37:05
やはりサーバからのダウンロードしか凡人には無理ということですか
実はi-mode端末を持っていないのですよ
ケーブル接続でできれば買ってみようかと思ったのですが
パケット定額の友人に協力してもらいます

567 :デフォルトの名無しさん:04/11/08 11:22:12
凡人 -> 貧乏人

568 :デフォルトの名無しさん:04/11/08 14:06:26
プログラムを外に出すってどーゆーこと?
JAMに書き込んどいて、呼び出すってことでOK?


569 :デフォルトの名無しさん:04/11/08 14:21:09
>>568
No

570 :568:04/11/08 14:30:50
エー

571 :デフォルトの名無しさん:04/11/08 14:33:05
スクリプト化の一歩手前みたいな

572 :デフォルトの名無しさん:04/11/08 23:11:10
CLOCK_TICK_EVENTイベントが発生せず困っています。

Doja3.5使用しています。

待ち受け起動時にsetClockTick(true)を行い、processSystemEvent内で
パラメータのCLOCK_TICK_EVENTを見ているのですが
23時59分までは1分おきにイベント発生するのですが0時0分以降イベントが
発生しなくなるのです。

どうすればよいのでしょう。

573 :デフォルトの名無しさん:04/11/09 19:56:58
doja3.5で開発をしています。
外部クラスを含めてビルドするように指定するにはどのようにすればいいのでしょうか?

やりたいことは、ksoap-midp.zipを含めてコンパイルしたいのです。

よろしくお願いいたします。

574 :デフォルトの名無しさん:04/11/09 19:59:19
>>573
解凍してほりこむ。

575 :デフォルトの名無しさん:04/11/09 20:06:04
>>574
解凍するとたくさん.classファイルがあります。
これをどこに入れればいいのでしょうか?

いろいろ勘で試してみましたが・・・orz

576 :デフォルトの名無しさん:04/11/10 00:49:01
手動でjarかけるしかないと思われ
つーかクラスファイルがあるならコンパイルする必要ないよな

577 :デフォルトの名無しさん:04/11/11 00:40:12
一部Java全般の話題かもしれませんが。

DataInputStream,DataOutputStream配下の
readByte(),readBoolean()や
writeByte(),writeBoolean()は
プラットフォーム間の互換性はあるのでしょうか?

何をしたいかというと、簡単なロープレ作ってるのですが、
予想よりデータが膨大になってしまったので、
フラグ列とかイメージマップ用の数値列を
バイナリデータとして外部リソース化しようと思ってます。

ところがこれらデータ、既にもうDoJaのソース内に埋め込まれた状態で
それら変換するだけで膨大な時間が必要になりそうです。
なので出来れば、配列定義の部分をコピペ・ソース流用して
JREのライブラリから吐き出させたいと思ってます。

データ内容はbooleanやらintやらlongやら混在してますが、
書き出す順序と読み出す順序は当然揃えます。
この場合に、例えば、各型のbit長の違いなどで、意図しないデータが
読み出されてしまったり、こういったことはあるのでしょうか?

今回は、Windows上のJREで書いてDoJaで読むことを想定してますが、
うまくいきそうであれば、ServletからのリプライをDoJaで読んだり
色々と試せそうなのですが。

578 :デフォルトの名無しさん:04/11/11 01:03:26
>>577
通信相手もJavaなら、J2SE、J2ME問わず互換性あるよ。
readIntなども、ちゃんとネットワークバイトオーダーにしてから送ってくれるし。
便利な世の中になったものだ。

579 :デフォルトの名無しさん:04/11/11 01:07:03
>>578

ありがとうございます!!!

DOSでCやってましたが、10年以上ブランク空いて
この度Javaで社会復帰しました。

しばらく見ないうちに、便利になっていたのですね。

580 :デフォルトの名無しさん:04/11/11 13:09:43
>>575

resに入れれば一応jarには入る。
コンパイルエラーについては
コマンドラインオプションを変更するしかない。
従ってEMUだけで解決させるのは困難。


581 :デフォルトの名無しさん:04/11/11 16:57:29
>>580
ありがとうございます

エミュレーターでの操作は無理ですね。
コマンド打ってソースの場所を指定してあげないといけないようで、、、

試していませんがこんなのもありました
ttp://www.skyarts.com/japan/products/programing/dojabuilder/ver1.x/faq.html
・外部Classファイルを使用したビルド
などできるようです。

とりあえず、コマンド打ってがんばります。
ありがとうございました。

582 :デフォルトの名無しさん:04/11/11 22:31:55
doja3.5でアプリを作ってます。
実機でテストするためにFOMAを購入しようと考えているんですが、
どの機種(900シリーズ)がいいでしょうか?



583 :デフォルトの名無しさん:04/11/11 22:50:21
Nが一番評判悪そうだから、Nがいいんじゃない?

584 :582:04/11/11 22:53:08
>583
なぜ?

585 :デフォルトの名無しさん:04/11/11 23:06:11
>>584
一番評判が悪いからだよ。

586 :デフォルトの名無しさん:04/11/11 23:52:55
評判の悪いNで動けば他でも動くと期待できるから。
現実はそうでもない気がするが。

587 :デフォルトの名無しさん:04/11/11 23:52:58
Nはアプリ自体はそこそこだろ?
オススメはDだな。最凶。

588 :デフォルトの名無しさん:04/11/12 00:08:36
D900iなんて実在しません。
あれは都市伝説ですよ。

589 :デフォルトの名無しさん:04/11/12 01:39:03
D非対応が最近の流行ですよ
D505みたいには売れてないから問題なし

>>582
FかNだな。NのかわりにPでもいいが
Dは忘れろ
SHは性能がいいから止めとけ

590 :名無し:04/11/12 03:03:46
901でDoJaのVerUPするの?

591 :デフォルトの名無しさん:04/11/12 04:44:16
Dは放置プレイだな。

N900iとP900iは中身大体一緒で、この2系統だけで5割くらいアクセスあるから
このどっちかにしときゃ間違いなかろ。

携帯電話としては、Nは液晶とかレスポンスとかクソなのでPがお勧めだ。

592 :デフォルトの名無しさん:04/11/12 05:38:16
ということはテスト機はNでってことだな。

593 :デフォルトの名無しさん:04/11/12 06:48:49
executeCommandListのマニュアルは
JavaDocのjguidefordoja3_5_apiref_opt_031218.zipしかないのでしょうか?

なんとか、思い通りにポリゴン描画を出来るようになったのですが、
JavaDocだけではかなり説明不足で苦労しました。



594 :582:04/11/12 10:36:26
みんなサンクス!
DかNで検討します!

595 :582:04/11/12 12:06:37
PかNでした・・・

596 :デフォルトの名無しさん:04/11/12 12:07:59
>593
javadoc はクラス説明一式というだけで、サンプルがあるわけではないよ。
だけど「Micro3D プログラミングfor i アプリ」のPDFファイルは参考になるかも。
ttp://www.mascotcapsule.com/toolkit/docomo/
でダウンロードしてみ。

あとは、ん・ぱか工房なんかで解説してたりするね。

597 :593:04/11/12 13:14:22
>>596
ありがとうございます。
Micro3Dの方、参考になりました。ただそれを読んで疑問が発生しました。
私の所ではコマンドリスト毎にCOMMAND_PERSPECTIVE1を設定しないと
正常に透視変換をしてくれない現象発生していますが、Micro3Dの
サンプルプログラムでは設定していませんでした。
このような変な現象が起きているのは私だけでしょうか?

---------------------------------------------------------------
int[] com = { COMMAND_LIST_VERSION_1,
   COMMAND_SCREEN_CENTER, SCREEN_CW , SCREEN_CH,
   COMMAND_PERSPECTIVE1, zNear,zFar,angle,
   COMMAND_TEXTURE | 0,
          COMMAND_VIEW_TRANS | 0,
COMMAND_END};
int[] com2 = { COMMAND_LIST_VERSION_1,
COMMAND_RENDER_TRIANGLES|TEXTURE_COORD_PER_VERTEX|(1<<16),
   0,0,0, 300,0,0, 300,300,0,
          0,0, 32,0, 32,32, COMMAND_END};
executeCommandList(com); //描画環境用
executeCommandList(com2);//プリミティブの描画
これだと、正常に描画されない。com2にCOMMAND_PERSPECTIVE1などの描画環境を
入れれば正常に描画されます。
------------------------------------------------------------------

あと、ん・ぱか工房の方ですが普通のプリミティブ描画
(第4話 505iシリーズで動くポリゴンゲームを作る)
の解説はあったものの、executeCommandListの解説
を見つける事ができませんでした。どこにあるのでしょうか?



598 :596:04/11/12 14:41:20
あ、ん・ぱか工房には「executeCommandList」の説明ないね…(汗)。
ポリゴン系の説明は見た気がしてたんで、混同してたわ。申し訳ないッス。

透視変換については、setPerspective の説明に
>このメソッドを呼び出した後は、レンダリングは全て透視投影で処理されます。
>同様に、setScreenScale(int, int) メソッドおよび setScreenView(int, int) メソッド
>を呼び出した後は、レンダリングは全て平行投影で処理されます。
ってあるんで、setScreenScale か setScreenView に類するコマンドが影響しているかもしれないよ?

599 :デフォルトの名無しさん:04/11/12 21:25:00
executeCommandList使ってる人っているのね。
誰も使ってないのかと思ってたw

600 :593:04/11/13 02:45:30
>>596
ありがとうございます。
色々試したものの分からずじまいです。orz



601 :デフォルトの名無しさん:04/11/13 08:22:48
>>596-598
http://www.saturn.dti.ne.jp/~npaka/sorami/4/index.html


602 :デフォルトの名無しさん:04/11/13 14:52:26
Panel内にaddしたコンポーネントを削除する方法ってありますか?

603 :デフォルトの名無しさん:04/11/13 16:15:38
スレ違いだったらすいません。

iモードでいうところのPanelクラスってVodafone用では実装されているのでしょうか?

604 :デフォルトの名無しさん:04/11/13 19:01:15
>>602
ないハズ。

コンポーネントを不可視にすれば、表示されなくなるが
削除とは違うし、元々表示されていた空間は埋まらなかった記憶がある。
一度配置したコンポーネントの再レイアウトは「しない」って仕様みたい。

605 :デフォルトの名無しさん:04/11/14 11:43:44
すいません
MediaImageとImageの確保、解放の順番について質問があるのですが、

MediaImage a = MediaManager.getImage( スクラッチパッド );
a.use();
Image b = a.getImage();

ここまでが確保で、解放は

b.dispose();
b = null;

a.unuse();
a.dispose();
a=null;

という順番でよろしいのでしょうか?

606 :602:04/11/14 12:57:07
>>604
いくつかの文字列をラベル等を使って出力するパネルがある。
あるときは文字列が10種類あるかもしれない。
ほかのパネルで文字列が消された場合、再表示したときには文字列が5種類になっているかもしれない
最初からコンポーネントの数上限を決めてパネルに配置して表示させるのはスマートじゃない

いちいちPanelクラスをnewなんてしてられないし、何かいい方法はないですかね

607 :デフォルトの名無しさん:04/11/14 14:08:29
>>440
>NとPはスクラッチパッドから絵を読むときlengthを付けないとOutOfMemoryになるぞ

亀レスですいませんが、
スクラッチパッドから絵を読むときにlengthをつけるというのは
具体的にどの関数の引数にlengthをつければよいのですか?

608 :デフォルトの名無しさん:04/11/14 14:25:30
そういうときはまずマニュアルをlengthで検索するんだ。

609 :デフォルトの名無しさん:04/11/14 15:11:36
>>605
前スレか前々スレあたりに同じ話が出てるから読み返してくれ。
質問者からのあと少しやりとりが続いて正解の形が出てるから。

610 :デフォルトの名無しさん:04/11/14 20:11:00
>>605

>>38-40
良い記事だった。俺もバイブルにしている。

611 :デフォルトの名無しさん:04/11/14 21:14:46
executeCommandListは、昔実験したときにどうにもうまくいかなくて挫折したなぁ。

API呼び出しのオーバーヘッドって、どんぐらいあるもんだろう?
だいぶ大きいんだったらもう一度試して何とかしたいところだが・・・

612 :609:04/11/14 22:17:59
あ、結構前の話だと思ってたがこのスレ内だったか。
>>605すまん。>>610サンキュ。

613 :デフォルトの名無しさん:04/11/14 23:27:13
Panel使用時に、Lineを書く方法ってありませんか?
画像で代用しようにも、重なったり、配置を換えたりすると
その分の画像も作らないといけないのは辛すぎる

614 :デフォルトの名無しさん:04/11/14 23:29:33
あきらめろ。

615 :605:04/11/15 02:30:04
>>609-610 >>612
レスありがとうございます。

まさに質問したかったところが載ってましたね
ありがたく参考にさせ頂きます

616 :デフォルトの名無しさん:04/11/15 11:11:53
>607
http://66.102.7.104/search?q=cache:KgJ11TOd0vMJ:pcnikki.exblog.jp/m2004-05-01/+getImage+scratchpad+length&hl=ja&lr=lang_ja

いちいちlengthつけるなんてやってらんね。
しかもこのサイト曰く、場合によってはN505でバグるとか。
しっかりしてくれよP900i/N900i

617 :デフォルトの名無しさん:04/11/15 11:44:16
元々画像アドレスは指定してるんだから、
ちょこっと文加えるだけじゃないの。

618 :デフォルトの名無しさん:04/11/15 12:00:24
N505でバグることと、Doja3.0以降しか対応していないことが問題。

619 :デフォルトの名無しさん:04/11/15 13:15:42
N505でバグるの??
でも>>440だとNとPはLength付けないとOutOfMemoryが出るってことは

N505は
Length付けないとOutOfMemoryでしくる
Length付けると画像リソースのサイズによってはエラー

どうすりゃいいのorz

620 :デフォルトの名無しさん:04/11/15 14:07:45
>>619
440のNとPとは、900のことだよ。

621 :デフォルトの名無しさん:04/11/15 14:34:22
いや
N505でもlengthつけないとOutOfMemory出る事あるよ

622 :デフォルトの名無しさん:04/11/15 16:27:31
N505でlength使ってバグった経験が全く無いんだが‥

623 :デフォルトの名無しさん:04/11/15 16:48:03
たぶんあそこのサイトの説明が

「lengthつけないとエラーになる」

って言いたかったんじゃないのかとすごい思う

624 :デフォルトの名無しさん:04/11/15 17:29:24
なんにしろ、504と互換性がなくなるのが痛いな。

625 :デフォルトの名無しさん:04/11/15 21:49:35
プロファイルバージョンが違うのに互換性を求めてるのか

626 :デフォルトの名無しさん:04/11/15 22:00:38
どうせN系だけ他より著しく遅いから、描画をはしょるとか端末にあわせた処理が必要になるので、問題ないかと。
N504用特別処理を書いたりするのと同じ感覚でN505用特別処理を書けばいい。

627 :名無しさん:04/11/16 00:44:57
透過色を使わないという前提だが。

最初に必要な分だけ Image.createImage() でイメージを作っておいて。

こんな感じ
for (i=0; i < xxxx;i++) {
tmpImg = MediaManager.getImage("scratchpad:///0;pos=XXXXX");
tmpImg.use();

Graphics g = picsImg[i].getGraphics(); <-- これが最初に作っておいたもの
Image img = tmpImg.getImage();
g.drawImage(img,0,0);
tmpImg.unuse();
tmpImg.dispose();
}

のようにコピーしてやれば回避できる。
透過色を使うイメージだけしかたがないから、getImage()から作るしかない。



628 :デフォルトの名無しさん:04/11/16 08:45:47
アプリ作者もストライキしようぜ。クソ端末には一切対応しない。

629 :デフォルトの名無しさん:04/11/16 09:05:15
>>627
それだとNとPは

>tmpImg.use();

ここでOutOfMemoryが出る事がある

630 :デフォルトの名無しさん:04/11/16 09:09:08
>>628
大手は対応するから、ストライキした作者以外だれも困らない。

631 :名無しさん:04/11/16 18:54:29
>>629
たった1つのイメージも作れないの?


632 :デフォルトの名無しさん:04/11/16 19:38:24
どうせ全機種コンパイルかます覚悟できてるからなぁ。
(余裕あればUserAgent使って直で処理分岐しても…)

落ちるモンは落ちる、クソだがしょうがない。

633 :デフォルトの名無しさん:04/11/16 20:08:07
>>631
メモリの状況にもよるが
1個だろうがImageのサイズが小さかろうがOutOfMemoryが出る場合がある。

「場合がある」っていうだけですでにOUT

634 :デフォルトの名無しさん:04/11/17 01:47:49
クソ端末に対応しなかったらアプリ製作者側が責められる現状は間違ってるよな。
端末作ったとこを責めろよー。

635 :デフォルトの名無しさん:04/11/17 09:07:40
せめて不具合の回避方法くらい、ハード側が出して欲しいよな…。
N900/P900は通信にも不具合あって、その回避方法、友達のソフト会社が発見して
まわしてもらったんだぜ…。

(゚∀゚)さっそく2chのこのスレにもかいたけどさw

636 :593:04/11/17 09:11:30
D900iはクソ端末、描画遅すぎでメーカーでも非対応が多い。
ドラクエ、FFとか非対応です。

637 :デフォルトの名無しさん:04/11/17 11:02:29
>>636
D900i?
何言ってるの?それ都市伝説だよ。

638 :デフォルトの名無しさん:04/11/17 12:59:50
>>632

UserAgentを拾って処理分岐させる方法だと、
新端末が発売される度に納品しなおしになる可能性があるのでは?

可能であればUserAgent拾うのではなく、問題ありそうな部分をtry{}catchして
catch内に代替処理を書く方が後々楽ですよ。

話題は異なりますが機種依存の端末リソースを制御したいときもUserAgentは使わず
isAvailableのみで完結させる、基本ですね。


639 :デフォルトの名無しさん:04/11/17 13:37:39
>話題は異なりますが機種依存の端末リソースを制御したいときもUserAgentは使わず
>isAvailableのみで完結させる、基本ですね。
詳しく教えてください


640 :デフォルトの名無しさん:04/11/17 15:25:43
>>638
ほう。

> 新端末が発売される度に納品しなおしになる可能性があるのでは?

どうせ新端末が出るたびに納品しなおすハメになるんだから。
動きがめっちゃくちゃ遅いとか、gcするとサスペンドするとか、どうせ対処できないからね。
納品するものだったら、「xxxとxxxにしか対応しません」っていうのは当たり前だよ。

641 :デフォルトの名無しさん:04/11/17 15:27:37
OutOfMemoryとか、例外が出てから対処してもどうしようもない。
基本ですね。

642 :638:04/11/17 19:25:55
>>639

例えば、振動機能を使うアプリで、オプションで
「振動ON/OFF」みたいな切替機能が必要だとする。
しかし「振動ON/OFF」という設定項目が振動非対応の機種で
表示されたらそれは不自然だ。てな時に、

1.ドコモの資料でAPI実装状況確認して、
2.アプリの機種判定で対応してない機種は表示を外して、

みたいなことすると新機種が出るたびにイタチごっこになるわけだ。

なので、2の処理を
PhoneSystem.isAvailable(PhoneSystem.DEV_VIBRATOR);
で代替すれば良い。これであればわざわざ1を確認する必要もなくなる。

という意味なんだけど、質問の意図とあってますか?


>>640

まあそれは確かにね。
まあ、この辺りのやり取りを通じて漏れが機種ごとの処理が必須になるような
シビアなアプリを作ったことがないことがバレたわけだw


643 :デフォルトの名無しさん:04/11/17 21:20:53
>>642
オプション機能の有無みたいな、仕様上正しい動きに関してはそうやるのが当たり前だけど、ここでの話は端末ごとの変な挙動だから。

644 :デフォルトの名無しさん:04/11/17 21:41:20
超初心者な質問ですいませんが.

画像を表示する場合、画像はファイルにしないとダメですか?

HttpConnectionで取得した画像を、そのまま表示したいんですけど、
スクラッチパッドに保存しないと表示できないですか?

645 :名無しさん:04/11/17 23:18:59
>>644
MediaManager.getImage(byte[]);
ただし、DoJa 3.0以降


646 :デフォルトの名無しさん:04/11/17 23:32:53
>>645
レスどうもです
そんなのあるんだ。今日買ったiアプリの本は古かったのね。

初版 2001って...

647 :デフォルトの名無しさん:04/11/18 00:52:26
>>644
古い本でも載ってるはずだが‥

http://www.atmarkit.co.jp/fmobile/rensai/doja04/doja04.html
ファイルなら      例:resource:///image.gif
スクラッチパッドなら 例:scratchpad:///0;pos=0
ダウンロードなら   例:http://hogehoge/image.gif

Generic Connectionマンセー

648 :デフォルトの名無しさん:04/11/18 02:11:00
dojaが4.0になったが。さすがにJarサイズは増えないか・・。

649 :デフォルトの名無しさん:04/11/18 02:22:25
あら何時の間に。
目玉はなによ。
ペリカ取り扱いでつか?

650 :デフォルトの名無しさん:04/11/18 03:20:39
Audio3dって。。ステレオって3dなのか。

651 :デフォルトの名無しさん:04/11/18 08:54:48
>>647
え、resource:/// とかの代わりに http:// でもいけるんだ。
クラスのリファレンス主体の本だけど、そんな例が載ってなかった。
Generic Connectionどころか、パス指定方法の説明すら載ってない。例のみ。
どうもありがとう

652 :デフォルトの名無しさん:04/11/18 10:03:28
>>649

3D音響機能が不自然なほど充実。
3Dグラフィックも拡張されたが、
まあ使えることと使い物になることは別ってことで。
2Dでは大した拡張は無いが半透明描画が可能。

機種を変えない貧乏人としては
ベンチマーク系の話題でこのスレが盛り上がってくれることを祈る。



653 :デフォルトの名無しさん:04/11/18 11:56:05
>>652
以下抜粋。
getColorOfRGB
public static int getColorOfRGB(int r,int g,int b,int a)

RGB 値、ならびにアルファ値を指定して、 対応するカラーを表す整数値を取得します。
このメソッドで取得した値を setColor(int) などで設定することで、
図形の半透明描画が可能となります。
半透明描画をサポートしているのは、以下のメソッドのみです。

fillRect(int, int, int, int)
------------------------------------------------------------------------
一つだけですかwないよりは良いけどさw

654 :デフォルトの名無しさん:04/11/18 12:26:47
CLDCが1.1になりましたね。さて、まともな関数電卓でも作るか。

655 :デフォルトの名無しさん:04/11/18 12:51:57
ドキュメントをDoJa-4.0で検索して一通り眺めたが、
>>652-654でほぼ変更点は全部らしいな。ノーサプライズだ。

3DグラフィックスはプロプライエタリなAPIじゃなくてOpenGL ESよこせって感じだし、
3Dオーディオは、俺なんか携帯で音を鳴らすこと自体嫌いだからな。

ImageMapが性懲りもなく微妙に進化してるけどどのみちイラネーヨ

656 :655:04/11/18 12:58:55
つーことで望みはVMだけなんだが、全機種JBlendになったんか? まだか?

657 :デフォルトの名無しさん:04/11/18 13:27:54
誰か Base64 使ってる人いますか?
DoJa-3.5 で、エミュレータと SH900i ならデコードするのに
P900i と N900i は
java.lang.IllegalArgumentException: String is not Base64 encoded
なんて返してきます。
少なくともエミュレータの Base64.decode に与えてる String の
先頭 2 文字、最後 1 文字だけは、
実機も同じものってことは確認してるんですが・・・。
あと、その String の長さも、エミュレータと実機で一致。
ちなみにその String は http 経由でダウンロードしたものです。
リソースではまだやってなかったんで、これから試してみますが、
何か既知な情報とか、あるもんでしょうか?


658 :デフォルトの名無しさん:04/11/18 13:40:52
>>642
どうもです!

質問の意図とばっちり合ってます
なるほど勉強なります

659 :デフォルトの名無しさん:04/11/18 14:43:10
>>656
JBlendかどうかは知らんが、だいぶ絶望的なことになる模様。

>>657
途中に改行が入ってたりしない?

660 :デフォルトの名無しさん:04/11/18 15:56:12
>657
備後です。
がんがん入ってました。
感謝です。


661 :デフォルトの名無しさん:04/11/18 16:05:01
>>653
イマイチだ…いや、イマサンぐらいだ。
ImageMapといい、ドラクエでスクエニから喝でも入ったのかw

結局、900iとの互換重視になりそう。

662 :デフォルトの名無しさん:04/11/18 21:27:05
JarInflaterで圧縮したサウンドファイルを展開し、
それを別クラスに渡して再生したいのですが、
JarInflaterのリファレンスは画像のみなので
それをサウンド用に置き換えて
MediaManager.getSound()で抜き出したり
MediaSoundを返すところでエラー続出・・・。
リファレンス以外のサンプルも見つからず
四苦八苦してます。
どなたかサンプルの載っているところとか
ご存じないでしょうか?

663 :デフォルトの名無しさん:04/11/18 21:46:37
662です
連続スマソ
上記の件は解決しました。
圧縮ファイルに入っている曲は全て鳴ります。
・・・が、なんかテンポが速くなっているような・・・?
圧縮かけるとテンポ速くなる?
あれれ?

664 :デフォルトの名無しさん:04/11/18 21:47:56
>>662
MediaManager.getSound(ji.getInputStream("hoge.mld"));

これでダメか?ダメならサウンドファイルが壊れてないか疑ってみろ。
それでもダメならソース晒してくれ。

てかそれ以前に、CLDCのInputStreamについて勉強してみろ。
そこをきちんと理解すれば、イメージだろうがサウンドだろうが
どんなデータでも扱い方が解るぞ。もう少し頑張れ。

665 :デフォルトの名無しさん:04/11/18 22:29:09
ご説明ありがとうございます。
動作はするのですが、サウンドの再生がやはり早くなっているので
メディアデータ関連についてもう少し勉強してみます。

666 :デフォルトの名無しさん:04/11/18 22:54:43
>>662-663
自己解決したのならどういう経緯で解決したのかを書いておくれ
そうでないと単なる日記帳に(ry

667 :664:04/11/18 23:25:52
>>666
同感だ

>>665
器用にテンポ情報のみ壊れるのは凄いな。
聞くとレアケースぽいので、やはり、665の言うとおり漏れも詳細を聞きたい。
皆キミの情報を待ってるんだ!

668 :デフォルトの名無しさん:04/11/19 02:04:47
iアプリレベル0 の初心者です。
よくある入口用アプリ "Hello World" をWebサーバにおいたのですがブラウザ起動しません。
P504iSで「指定されたソフトがありません」
P900iではメッセージは何もでないが aタグista属性で指定したURLが表示される。
エミュ(DoJa3.0)では起動しました。

a0301.jam
LaunchByBrowser = any
LastModified = Fri, 19 Nov 2004 01:44:17
AppClass = a0301
AppName = a0301
PackageURL = a0301.jar
AppSize = 752

起動html
<html>
<head></head>
<body>
<OBJECT declare id="iappli" data="http://x.x.x.x/mobile/appli/i/a0301.jam" type="application/x-jam">
</OBJECT>
<A ista="#iappli" href="dummy.html">a0301の実行</A>
</body>
</html>

jam、jar、html は同じパス(/mobile/appli/i/)に入れました。

サーバ Apache Win32
アップロード FFFTP で無変換

だれか私をレベル0.1くらいにして下さい

669 :デフォルトの名無しさん:04/11/19 02:08:33
>>668
アプリ自体は端末にダウンロードしてあるのか?

670 :668:04/11/19 02:15:38
>>669
レスどうもです
ダウンロードしてません
一度ダウンロードしないとistaで起動しないってことですか?

671 :デフォルトの名無しさん:04/11/19 02:23:04
JavaBlenderで
「アセンブラに関する内部エラーが発生しました。(Phase = 1)」
となるんですが、
どういう状況でこれが出るのかを知っていたら教えてください。

672 :デフォルトの名無しさん:04/11/19 04:20:17
このスレにJavaBlenderの作者がいるのか?

673 :デフォルトの名無しさん:04/11/19 10:32:53
>>665
だいぶ前、SH505でゲームを作っていたら、何もしてないのにどうしても曲が超速く再生されたなぁ…。
実機は信用おけん!

674 :671:04/11/19 13:26:21
自力で解決しました。ありがとう、さようなら。

675 :デフォルトの名無しさん:04/11/19 13:42:55
頼むから、自力解決したらその解決方法を書いていってくれ…

676 :デフォルトの名無しさん:04/11/19 14:24:28
>>668
> <OBJECT declare id="iappli" data="http://x.x.x.x/mobile/appli/i/a0301.jam" type="application/x-jam">

IP指定だと読み込めないんじゃなかったか?

677 :デフォルトの名無しさん:04/11/19 15:18:35
>>670
その通り。なので、istaで失敗したらijamで書かれたページに飛ばすか
両方のリンクを貼るのが一般的。ただし前者の方法だと
サイトからのバージョンアップが出来なくなるからこれは不便かな。

>>676
HttpConnectionクラスで使用できないだけ。i-modeブラウザは大丈夫。
しかしまあ、getSourceURLからHttpConnectionで使用できないホストが
戻ってくるわけだから、そのアプリは実質、使い物にはならないわけだ。


678 :デフォルトの名無しさん:04/11/19 18:58:29
ども、悩める3Dプログラマです。
スレ違いな気がものすごくするけど、実際動かしているのがiアプリなので、こちらで質問させてもらうッス。

 今、プリミティブ配列で作ったワイヤーフレーム立方体の中に数個のフィギアを描画させるアプリを
作ってるんですよ。で、そのアプリで一つ問題がありまして…。
 正面から見ると、フレーム立方体内に収まってくれているフィギアなんですが、カメラ位置をずらすと
一定の地点でワイヤーフレームからはみ出るんですわ。
 見る限りでは、ボールの位置に問題はなさそうだし、ワイヤーフレームのサイズも問題なさそう。
 あと他に問題になりそうな部分ってあるかなぁ? 知っているヒトいましたら教えて下さい。


679 :デフォルトの名無しさん:04/11/19 19:34:30
実行環境の演算精度が悪い悪寒

680 :662:04/11/19 20:33:59
お騒がせしました662です。
職場で2chは無理なので対応遅れました。
で、質問時は余計にInputStream()使っていたことが原因です。
修正の結果以下のようになりました。
MediaSound ms=null;
try{
InputStream in = Connector.openInputStream("scratchpad:///0;pos="+jpos+",length="+jsize);
JarInflater ji = new JarInflater(in);
ms = MediaManager.getSound(ji.getInputStream(sound+".mld"));
ms.use();
}catch(IOException e){
System.out.println("ScratchPad getData Err."+e);
}catch(JarFormatException je){
System.out.println("ScratchPad getData Err."+je);
}
return ms;
読み込みの開始位置とサイズは、これがスクラッチパッドを管理するクラスの一部なので
その変数が入るようになってます。
これで今は動作してます。
しかし、テンポ狂いの件は未だ解決してません。
圧縮ツール等で変わってくると思いますので実験してます。
無圧縮にするとテンポ狂いが無い状態になるのですが・・・。

681 :デフォルトの名無しさん:04/11/19 21:17:42
>>680
移動機のバグっぽかったら、DoCoMoに問い合わせた
方がいいよ。「市場問題」って扱いで
次モデルで修正されるかもしれず。

682 :デフォルトの名無しさん:04/11/19 21:25:08
>>678
各フィギュアの平行移動にMicro3Dがなぜか推奨しているsetScreenCenter()を
使っているという落ちではないですよね?
「正確な意味合いでは別操作・・・」とマニュアルに書いてあるとおりなんで・・・

683 :デフォルトの名無しさん:04/11/19 21:47:16
>>680

>圧縮ツール等で変わってくると思いますので実験してます。

おそらく、【Jar】Inflaterって位だから正式に動作保証されてるのは
Sunが吐くjarのフォーマットだろう。

実際には中身はzipだったりとかあると思うが、
7zみたいに無理してるのもあるだろうし、
まずはj2sdk同梱のjar.exeで試してみそ?

コマンドラインから、
jar cMf <圧縮後ファイル名> <圧縮するファイル.....>
だ。

684 :668:04/11/20 00:12:39
>>676,677
そうだったのか。ありがとう。
HOST名指定とダウンロードしてから実行を試してみます。

685 :662:04/11/20 00:24:17
662です。
>>683
レスありがとうございます。
JAR圧縮試していますが、FTPにUPするとファイル容量が0に。。。
なのでダウンロード時にエラーでます。
でもアプリ本体のJARはしっかりしてるしで、う〜ん。。。な状態に。

686 :デフォルトの名無しさん:04/11/20 12:09:26
ご存知の方がいらっしゃったら教えて下さい。

プログラムでグラデーションを生成しようとしてます。必要なのは開始色と終了色の2つだけです。
しかし、getColorOfRGBの実行結果をもとに中間色を指定できれば
パラメーター二つで済むので楽ですが、getColorOfRGB自体、どういうロジックかわかりません。

まともにその都度、getColorOfRGBすると、開始色のRBG要素、終了色のRGB要素で、パラメーターが
6つになってしまいます。これは美しくないと思い…。

ご存知の方いらっしゃいますでしょうか?

687 :デフォルトの名無しさん:04/11/20 12:11:46
え?え?

688 :デフォルトの名無しさん:04/11/20 12:46:46
脳内設計の過程を書かれても・・・

689 :デフォルトの名無しさん:04/11/20 12:48:49
>>686
「必要なのは開始色と終了色の2つだけ」とか言ったって、
数値2つから直接 中間の色が求まるわけではない。
R,G,Bに分解してその成分ごとに中間の色を算出して、
それらをまた合成して、初めて中間色の値が求まる。

つまり見せかけ上、開始色と終了色の2つのパラメータだけを与えれば
済みそうに思えても、実際には6つのパラメータがどうしても必要。

グラデーションの中間の色を求めるメソッドを作って、引数を開始色と
終了色の2つを与える形にしても、そのメソッドの内部で開始色、終了色
ともにR,G,Bへ分解しなければならないわけだから、「パラメータを2つ」
にこだわることは結局無意味。

690 :デフォルトの名無しさん:04/11/20 13:08:12
>>689

ありがとうございます。なるほど了解しました。

実はグラフィッカーにも同じ質問したのですが、全く同じ回答でした。
doja_classes.zipを逆コンパイルしてgetColorOfRGB調べても何も出てこなかったし。
これは諦めるしかないですね。


実は現行のソースが、

private final int
COLOR_BLACK= Graphics.getColorOfRGB(000, 000, 000),
COLOR_WHITE= Graphics.getColorOfRGB(255, 255, 255),
COLOR_GRAY= Graphics.getColorOfRGB(128, 128, 128),
COLOR_RED= Graphics.getColorOfRGB(255, 0, 0),
COLOR_BLUE= Graphics.getColorOfRGB( 0, 0, 255)
;

みたいに、色関係はクラス宣言で生成してるので、
今回はその構造を変えたくなかった無精でございます。(反省)

みなさんありがとうございました。

691 :デフォルトの名無しさん:04/11/20 14:10:16
アプリ作ったけど遅くて遅くて…
高速最適化に参考になる本やサイトないですかね

692 :デフォルトの名無しさん:04/11/20 14:21:06
>>691

このスレw

693 :デフォルトの名無しさん:04/11/20 14:32:53
>>691
イメージ描画をとにかく限界まで抑える。
ブロック崩しだったら玉付近以外の描画は邪魔。
スロットだったら筐体の全体描画は邪魔。
全画面のメニューだったら、カーソル付近以外の描画は邪魔。

694 :デフォルトの名無しさん:04/11/20 15:10:05
>>693

そういや、差分描画してるアプリの場合
レジューム時の画面再描画はどこまで保証されてるの?

695 :デフォルトの名無しさん:04/11/20 15:29:29
>>694
サスペンド前に描画されてた部分のままと思うけど。
塗りつぶされるとかいうことはなかった。
(MIDPではこの辺アクが強かった気がするけど…)

696 :694:04/11/20 15:44:39
>>695

さんきゅー。
差分描画を取り入れようとしてたが
その辺わからなかったので決心が付かなかったのだよ。

ちなみに>>691とは別人。

697 :662:04/11/20 21:14:37
662です。
FTPのUP時にJARファイルがおかしくなるのは
サーバー側による様です。
別の場所にUPしたら大丈夫でした。
・・・が、UPできたけど未だサウンド早い。。。
テンポの値ってプログラム上から制御できないものでしょうか?
ご存知の方お願いいたします。

698 :デフォルトの名無しさん:04/11/20 22:16:36
>>697
テンポの設定・・・ないはず。
Basicみたいに

PLAY "T3CDEFGAB"

じゃ通用しないしw

699 :デフォルトの名無しさん:04/11/20 22:57:22
>>662
いつまでも直らねえとかスレ違いの事言ってないで、発生してる端末名くらいかけよ

で、俺の予想としてはMLD内のマーカー位置とテンポの場所がバグってて、
再生する順番や読み込む順番で正常動作しないとか、そんなオチだろ

700 :デフォルトの名無しさん:04/11/21 04:25:07
>>697
なんか、単にいろんなことを理解できてないだけかと

701 :デフォルトの名無しさん:04/11/21 17:26:49
携帯内の画像の表示について質問があります。
ImageStore imgst;
MediaImage m;
Image img;
imgst = ImageStore.selectEntry();
m = imgst.getImage();
m.use();
img = m.getImage();

として携帯内の画像を読み込んでいるのですが、
drawImage(img,0,0);
drawRect(0,0,img.getWidth(),img.getHeight());
として画像の周りに腺で枠を表示させようとしているのですが、
N505iで試してみたら、
----------
|画像画像|
|画像画像|
| |
----------
となり、下の方に隙間ができてしまいます。
Dojaでは隙間が出ずに表示されました。
この原因ご存知の方いたら教えてください。


702 :デフォルトの名無しさん:04/11/21 18:22:18
画面サイズが違うから


703 :デフォルトの名無しさん:04/11/21 18:48:31
用語の意味を正しく理解しろ >Doja

704 :701:04/11/21 21:39:04
先ほど書き込んだ701です。

>>703確かに使い方間違えてました。指摘どうもです。

resフォルダに入れた画像、ネットからスクラッチパッド
に保存した画像でどうなるかも試したのですが、
それでは隙間ができずに表示されました。
ImageStore.selectEntry()で取得した画像は
getWidth,getHeightで正しく値が入らないとかあるのでしょうか…?


705 :デフォルトの名無しさん:04/11/21 21:44:41
あります

706 :デフォルトの名無しさん:04/11/21 21:57:35
隙間ができるできないの見た目じゃなくて、ちゃんと縦横の数値で確認したの?
携帯内にある取り込もうとしてる画像の縦横の値と、
drawRectするときの縦横の値を比較して、それがどうなってるかが問題でしょ。

707 :701:04/11/21 22:24:56
説明不足でしたが、getWidthとgetHeightで取得できる値と
携帯内にある画像の縦横の値は確認とりましたが値は同じでした。
resフォルダのものでも値は同じでしたが、それは正常に表示されました。

708 :デフォルトの名無しさん:04/11/21 23:56:34
>>701=707 言ってることがやや意味不明なんだが。
マイピクチャにある画像の縦横サイズと、
resフォルダにある同じ画像の縦横サイズと、
drawRectの引数の縦横サイズ、の3つが全部同じ値であることが確認できたんだよね。

それでマイピクチャにある画像のときに隙間が空くって、画像が縮んで表示されるのか?

なんだか701の手元で何が起こってるのかよく分からないけど
画像(jpegかな?)の後ろに何かしらのゴミデータが
くっついてるんじゃないかと予想するがどうか。

709 :デフォルトの名無しさん:04/11/22 00:16:48
>getWidthとgetHeightで取得できる値と
>携帯内にある画像の縦横の値は確認とりましたが値は同じでした。

同じなのに隙間が出るって事は、画像が縮んでるか途中で切れてるかだな

710 :デフォルトの名無しさん:04/11/22 04:04:37
>>701
つか
エミュレータの画面をキャプってドットを数えてみろ。

実際にキャプった画像の大きさがもしも変わっていればそこがおかしいし、
画像の大きさが変わってないのに隙間が生じるなら

枠の幅と高さが画像と一致してない。


711 :710:04/11/22 04:06:32
あと、
drawRect(0,0,10,10);とかやった時に
何ドットの矩形が描かれるのかを勉強しなさい

712 :デフォルトの名無しさん:04/11/22 09:18:45


713 :デフォルトの名無しさん:04/11/22 11:51:42
猪突だけど、F900iって速度速いの?
あまり良い噂聞かないけど、
itMediaの記事だと良い線行ってるよね。

714 :デフォルトの名無しさん:04/11/22 13:43:06
猪突?
もしかして唐突って言いたい?

715 :デフォルトの名無しさん:04/11/22 14:03:04
>>714
2ch語にいちいち突っ込むな。

716 :デフォルトの名無しさん:04/11/22 14:13:58
DoJa4.0でコンパイルされて、
DoJa4.0の新機能なども使っているアプリを
DoJa3.0で実行させることは可能でしょうか?

色々試したのですが、

1.新機能自体は使われているが新機能の箇所に実行が到達しない。
→実行OK

2.新機能の箇所に実行が到達する。
→αエラー(トレース情報も出力なし)

3.try{}catch()
→Throwableでも拾えないので根本的に拾えない?

プロファイルバージョンが拾えればそこで条件分岐させるのですが…


717 :デフォルトの名無しさん:04/11/22 14:49:35
>>716
ClassNotFoundExceptionをcatchすれ。

718 :デフォルトの名無しさん:04/11/22 14:54:01
サンプルのテトリスをいじっているのですが、
右キーを1回押したら右に1マス移動、素早く2回押したら右端まで移動、
というような処理をさせたい場合、
キー判定はどうすれば、いいのでしょうか?
わかる方いましたら、ご教授ください。

719 :デフォルトの名無しさん:04/11/22 15:42:06
>>716
それやると、根本的にDLさせてくれない機種があったような。
あれ?DojaじゃなくってMIDPだっけ?

720 :デフォルトの名無しさん:04/11/22 16:40:32
>>718
最悪の操作系だと思うがどうか。

721 :デフォルトの名無しさん:04/11/22 17:00:04
>>718
2秒間くらいまでのキー操作ログを保存しておくようにする。
そして、右キーを押したとき「ここ最近にも右キーが押されてなかったか」を調べるのだ。

722 :デフォルトの名無しさん:04/11/22 17:05:43
>>716
System.getProperty()は試したのか?

723 :デフォルトの名無しさん:04/11/22 19:12:13
ダブルクリックで端に移動はぶっちゃけあり得ない。
ブロックを2マス動かそうと思ったらいきなり端に! うわーどうしよう。

724 :デフォルトの名無しさん:04/11/22 19:43:52
「*」キーと同時押しの場合は、高速移動って
ことにしてみては。

725 :デフォルトの名無しさん:04/11/22 19:59:53
押しっぱなしかどうかだけを判定する。
・・・初押しからのタメが邪魔か。

726 :718:04/11/22 21:02:33
>>720 >>721 >>723 >>724 >>725
たしかに、この操作方法だと最悪です。
で、721さんのレスを参考に、下記を作りました。
絶対1回は右に移動してしまいますが・・・。
レスくださった皆さん、どうもありがとうございました。

boolean b_left=false; ShortTimer st;

public void processEvent(int type,int param) {
 if (type==Display.TIMER_EXPIRED_EVENT && param==0) {
  if(st!=null){st.dispose();}
  b_left=false;
  //右キーを押しっぱなしにしていたら
  if((getKeypadState() & (1<<Display.KEY_RIGHT))!=0) {
   右に1マス移動をスレッドで繰り返し;
  }
 }
 if (type == Display.KEY_PRESSED_EVENT && param == Display.KEY_RIGHT) {
  if(b_left){
   b_left=false;
   右に1マス移動をスレッドで繰り返し;
  } else {
   if(st!=null){st.dispose();}
   st=ShortTimer.getShortTimer(this,0,400,false);
   st.start();
   b_left=true;
   右に1マス移動;
  }
 }
}


727 :716:04/11/22 21:27:37
>>717
メソッドはないけどクラスはあったから無理でした。
具体的には、getColorOfRBG(int, int, int, int);です。
GraphicsはDoJa1.0からあるし。

>>719
ダウンロードできました。
確かその仕様は、J-PHONEでしたっけ?

>>722
今回は素直にそれにします。
901iの次の機種名が解らないので躊躇してましたw
機種名じゃなくてプロファイルバージョン拾えれば万事解決なのに。

728 :デフォルトの名無しさん:04/11/22 21:50:19
>>727
今後はADFのProfileVerキーをちゃんと書いてリリースしような

729 :名無しさん:04/11/22 23:11:54
>>713
F900iは描画は遅い。

ITmediaのベンチマークは描画部分は信用できない。
どうもrepaint()呼び出しただけで、描画が終了するのを待っていない
気がする。


730 :728:04/11/22 23:15:30
スマソ。ADFにプロファイルのバージョンが記述されてても、それを拾っても意味ないね。
その端末が最高どのバージョンのプロファイルまで対応してるかってのが取得できるわけ
じゃないもんな。

731 :デフォルトの名無しさん:04/11/23 12:56:26
3Dのプリミティブ描画について質問です。
裏面描画をしないようにする方法が分かりません。

http://timekiller.info/javadoc/3.0optapi/com/nttdocomo/opt/ui/j3d/Graphics3D.html
のsetScreenScaleの説明に「片面ポリゴンは法線」とあるのでプリミティブで
片面ポリゴン、両面ポリゴンの指定する事が出来ると思うのですが分かりませんでした。



732 :デフォルトの名無しさん:04/11/23 15:10:34
>>731
記述通りによむなら各頂点かプリミティブ単位で法線情報持たせ、
NORMAL_PER_FACE あたりを設定するように見えるが。
D3Dみたいに頂点の順番とON/OFFスイッチでは切りかえれないように見えるが、それはあってる?

733 :522:04/11/23 18:58:10
激しく亀レスすみません。

takeMovieの競合なのですが
その後、色々試して見たのですが
どうも、takeMovieよりも先にgetAvailablePictureSizesを行うと
発生してしまうようなのです。

また、アプリ起動後にしばらく放置しておくと
takeMovieでの競合が発生しないようです。

放置しておくことでgetAvailablePictureSizesで使用したカメラデバイスの
解放が行われるのでしょうか?

明示的にデバイスの解放を行う方法があったら教えてください。

ちなみにF900iやiアプリエミュレータでは競合は発生せず
P900iでおきています。

>>524
com.nttdocomo.device.Camera を使用しています。


734 :デフォルトの名無しさん:04/11/23 22:22:27
>>733
PでgetAvailablePictureSizesできるのは
静止画のときだけだった希ガス。

735 :734:04/11/23 22:29:45
スマソ
いい加減なことを言ってしまった。スルーしてちょ。


736 :731:04/11/23 22:50:15
>>732
NORMAL_PER_FACEを指定してみたが片面ポリゴンにならなかった。
エミュ、P900で確認しました。

頂点の順番(時計回り)なども関係なく両面ポリゴンになってしまう。 orz

裏面消去するだけで、処理速度だけでなくポリゴン割れなどもかなり
改善できるのにな〜。 
自前で裏面かどうか調べてプリミティブ登録しなおすのは
処理速度的にツライし困ったな。。。



737 :デフォルトの名無しさん:04/11/23 22:56:11
どう考えても既出ぽいですが、dat落ちで過去ログ読めないので勘弁して下さい。

アクション、シューティングなど、getKeyPadStateが前提となる作りのゲームは
どうすればSOのジョグに対応できるのですか?

processEventでフラグ管理も考えましたが、今度は、SO以外のチョイ押しで
SO処理並にたくさん動かれても困るので…。


738 :デフォルトの名無しさん:04/11/23 23:00:56
ジョグとノーマルとの2パッケージ作る。

739 :737:04/11/23 23:34:35
>>738
公式見てると、2パッケージになってないアプリがあるんですよ。
(ADF情報表示して判断してます)

740 :デフォルトの名無しさん:04/11/23 23:58:58
ジョグが嫌なら数字キーでやってもらう。

741 :デフォルトの名無しさん:04/11/24 00:21:52
SO503以外はそのままでいいんじゃないの?

742 :522:04/11/24 02:20:43
>>733
スルーという事なんですが一応。
getAvailablePictureSizesは別の処理で静止画撮影もするので
サイズ取得の初期処理で使ってます。

動画のサイズ取得はgetAvailableMovieSizesというのがあるので
それで別個に取得しています。

743 :522:04/11/24 02:21:52
すみません。
ずっとsage忘れていました・・・

744 :デフォルトの名無しさん:04/11/24 09:59:32
その辺の操作性云々はSOユーザーも解ってるっぽだから、
数字キーのみでSO専用操作は一切作ってない。

元から数字キー目一杯使うアプリなら南無としか。

745 :デフォルトの名無しさん:04/11/24 12:00:59
>>694
すっごい遅レスだが、レジューム時の描画されたものの保障は機種依存。
今ではほとんど対象にはならないだろうが503系は崩れた画像になる機種が多い。
描画が保障されていない証拠にエミュでレジュームを起こしてみるとわかる。保持されない。
が、504以降で描画を保持してないものはなかったと思う。

アプリ容量があるならレジュームが発生した場合は全部描画しなおせるよう組み上げるのが良い。
ミニマムスペックでない以上今後保持しない機種が出ないとも限らんない。(無いとは思うがw)
レジュームが発生した1フレームを全描画しなおそうが処理速度の低下を感じることはないしな。

746 :デフォルトの名無しさん:04/11/24 16:42:59
HttpConnectionってinputConnectionを
スーパーインターフェースに持ってるので
openDataInputStreamをサポートしてますよね。

そのHttpConnection.openDataInputStream()のインスタンスからの
available()ですが、CLDC仕様書には
「ブロックせずに入力ストリームから読み込むことができるバイト数を返します。 」
と書いてあります。が、SO505iでは、常に0が帰ってきてる気がします。

これって端末バグかなあ?
Content-length返さない糞鯖でコンテンツ長が欲しいのに。


747 :デフォルトの名無しさん:04/11/24 17:30:11
900i用のドラクエで敵と遭遇したときのような
スムーズなホワイトアウト処理ってどうやってやってるんだろ?
ImageとGraphicsのメソッドだけじゃできないよね?


748 :デフォルトの名無しさん:04/11/24 19:06:49
こんばんわ。質問なのですが
HTTP通信をアプリでおこなった後、closeを行っても
iモード待機状態(iのアイコンが点滅している状態)が解除されないのですが
これをアプリ側で解除する方法はないでしょうか?

749 :デフォルトの名無しさん:04/11/24 19:24:16
>>747
ポリゴンを重ねてるんじゃないのかな?

750 :デフォルトの名無しさん:04/11/24 19:25:00
>>748
無理。

「通信してるんじゃないですか?」「パケット代かかるんじゃないですか?」とか
ユーザーサポートに死ぬほど問い合わせが来るんだろ?気持ち解るよ。

751 :デフォルトの名無しさん:04/11/24 20:07:38
>>746
available()は使ったこと無いんだけど、SO505はskipBytes()が正しく動作しないので何かあるかも。
ちなみに単にread()で0がくるまで読み込むってのはダメなんですか?
Content-lengthはサーバーサイドに返すようにお願いしてもらうのも1つの手かと。


752 :746:04/11/24 23:01:08
>>751
確かに怪しいですね。諦めるのが吉に思えてきました。

>ちなみに単にread()で0がくるまで読み込むってのはダメなんですか?
神経質になりすぎなのかもしれないのですが、20480バイトとかフルに読むと、
DやNであからさまに動作速度が異なるんですよ。

20480×5のファイルを取得する初回起動で1.5倍ほどの時間差がありました。
(しかしメソッドだけは汎用的に作っておきたいのでバッファ長を定数で記述するのは嫌なのです。)

>Content-lengthはサーバーサイドに返すようにお願いしてもらうのも1つの手かと。
ウチ、孫受けなんですよ。大人の事情ですねw

753 :747:04/11/25 01:00:45
>>749
Graphics3DとPrimitiveArrayを使ってやってみようと
調べてみたけどハーフブレンド(50%透過)しか指定できないですね…。
ワカンネ(;´А`)

754 :デフォルトの名無しさん:04/11/25 01:18:29
>>753
ちょっと白いPrimitiveArray数枚を加算で加えれば
出来るのでは?
徐々に重ねる(表示する)枚数を増やせば
ホワイトアウトの出来上がり。

755 :747:04/11/25 02:40:26
>>754
その「ちょっと白い」の実現方法が見つからないんですよね。
で、さらに調べてたらどうもGraphics2#setRenderMode()を使って
ラスタオペレーションが出来ることがわかりました。
ちょっとこれで実験してみます。

ついでにわかったこと。
拡張API実装状況のPDFを眺めてたら、900iの実機のうち、
Graphics2#setRenderMode()に非対応なのはD900iだけでした。
ドラクエがD900iに非対応なのはコレのせいですかね。。。


756 :デフォルトの名無しさん:04/11/25 02:43:38
PrimitiveArrayって色指定出来なかったっけ?
ちょっと白いってのは要するに RGBが同値
例えば R:32, G:32, B:32 とか。
これを8枚加算合成(ADDBLENDだっけ?)すれば
真っ白になったと思ったが。

757 :デフォルトの名無しさん:04/11/25 06:19:24
>>755
もっと調べると2Dの半透明は機種依存が激しすぎで使い物にならない事がわかるよw
他の人が言ってるようにポリゴンを加算モードで描画すれば出来る
レッドアウトとかは無理だけど、白(加算)か黒(減算)なら簡単

ドラクエがD非対応なのは、こいつだけヒープが極端に少ないからだろう

758 :デフォルトの名無しさん:04/11/25 09:34:41
いや。多分Graphics2を使ってると思う。
使って無くてもヒープ少なすぎてD900ではできないだろうけどw

あの処理の早さを見る限り、ポリゴンの複数重ねがけはやってないと思われる。
うちもそれ試したんだけど、遅くて使い物にならなかったから、間違いない(苦笑

759 :デフォルトの名無しさん:04/11/25 09:44:56
>>758
非公式メソッドのIApplication#isDraqueメソッドをオーバーライドしてtrueを返すようにすると速くなります。

760 :デフォルトの名無しさん:04/11/25 09:58:37
テキストボックスにデフォルトで、小文字のアルファベットで入力させたいんですが、
textbox=new TextBox("",5,1,TextBox.ALPHA);
とした場合、実機でためしたところ、入力が全角かなで、表示は***
となりました。
どーしたらうまくいくのでしょうか?

761 :デフォルトの名無しさん:04/11/25 11:48:09
>>758
ポリゴンは一枚でいい
色を変えるんだよ


>>760
よく見ろ
初期入力モードの設定はここじゃ無い

>TextBox(String text, int columns, int rows, int mode)
> 初期文字列と桁数、行数、表示モードを指定してテキストボックスを生成します。

762 :デフォルトの名無しさん:04/11/25 11:50:27
>>759
え?なにそれマジデ?(;´Д`)
ttp://www.interq.or.jp/pink/ribbon/doja-api/3_5/default/com/nttdocomo/ui/IApplication.html
存在しないんだけど、非公式だから?
ぐあー試したいのに開発環境がNEEEEE!!!!
誰か代わりにたのむ、まじで。(もしくは1日ほど待って)

763 :デフォルトの名無しさん:04/11/25 12:53:56
isDraque?ドラクエだったら高速化するって事か?
ありえねぇw
ネタでしょ


764 :デフォルトの名無しさん:04/11/25 13:03:45
isDraqueUをTrueにすればもっと早くなるよ

765 :760:04/11/25 13:07:03
>761
でけた! ありがd

766 :デフォルトの名無しさん:04/11/25 15:19:57
Dってそこまでヒープ少ないかね?
んぱか工房に載ってるのだとJAVAヒープがFより1000KB少ないだけじゃん。
1500KBも以上JAVAヒープ使うことって普通ある?

767 :デフォルトの名無しさん:04/11/25 15:58:06
>>766
他のサイトを読んだ解釈でしかないが以下のような事で説明できると思う。
DのJAVAヒープが足らなくなる原因は大きく分けて2つ
1:もともと少ない。
2:画像1ドットあたりで消費するJAVAヒープの量が他の機種より多い。
 (他の機種では1ドットあたり2〜3バイト程度消費、Dは1ドットあたり4バイト程度消費するらしい)

とくに最近の機種は画像増加の傾向があるので2の差は凄いことになると思う。

768 :デフォルトの名無しさん:04/11/25 18:00:38
Dは内部32ビットカラーなのか?
メモリの無駄っぽい。

769 :デフォルトの名無しさん:04/11/25 18:02:23
Dは少なくとも505の時、1バイトあたりの消費容量がほかよりでかかった。
多分32bitだと思う。

ところでD900iのシェアってどのくらい?
不具合も多いし、遅いし、Graphics2も使えない。
900専用ゲームでは切りたいんだけど、具体的シェアがわからないと説得しづらい。

770 :デフォルトの名無しさん:04/11/25 19:23:35
俺の勝手アプリサイトのトップページの900iのアクセス比率、直近2週間

N900i系 39%
P900i系 29%
SH900i系 18%
F900i系 10%
D900i系 3%

結論:放置プレイ可

771 :デフォルトの名無しさん:04/11/25 20:04:05
>>766
昔の知識ですまないんだが、DってJavaヒープで画像扱ってたか?
F以外は皆、Imageの実態はCヒープで管理していた気がするんだが、最近は皆Java
ヒープを使うようになった?

772 :デフォルトの名無しさん:04/11/25 20:59:30
Dって描画命令使ったときに激しくメモリ消費する機種でしょ?

773 :デフォルトの名無しさん:04/11/25 21:04:57
>>764
やってみたら、なんか、あぶない水着っていうのがでてきました。

774 :デフォルトの名無しさん:04/11/26 02:20:58
>>746
available()が正しく実装されていても、Content-Lengthの代わりにはならないと思うのだが。

775 :766:04/11/26 02:41:31
>>771
ttp://www.saturn.dti.ne.jp/~npaka/ibook2/izon.html
↑の説明だとD504iはJavaヒープ使ってるみたいだけど、D900iがどうなのかはさっぱり。
実際に実機で試してみないとよく分からんです。
ネイティブヒープに画像乗っけないとJavaヒープより大きい意味がないような気もするんだけど。

776 :デフォルトの名無しさん:04/11/26 08:36:05
>>746
データの先頭4バイトにデータ長を入れておけばよいのでは

777 :デフォルトの名無しさん:04/11/26 09:07:44
777

778 :デフォルトの名無しさん:04/11/26 09:31:15
>>773
お前、それisDraqueVじゃんか。
Uよりも早いけどデータ消える事あるから注意な

779 :デフォルトの名無しさん:04/11/27 01:23:50
あるスレッドに外部から割り込みかけることは出来るんですか?

javadocのInterruptExceptionを読むと

あるスレッドが長い間の待ち状態、休止状態、または一時停止の状態であるとき、
他のスレッドが Thread クラスの interrupt メソッドを使って
この状態に割り込みをかけた場合にスローされます。

と書いてあるのに、Thread読んでもinterruptがない??

780 :デフォルトの名無しさん:04/11/27 02:09:20
>>779
CLDC1.0がJ2SEのサブセットであることによる呪縛。
interrupt()は削ったけど、sleep() throws InterruptedExceptionは残したので
InterruptedExceptinoは消せないのよ。

ちなみに、CLDC1.1だと、interrupt()が復活したから、InterruptedExceptionも使えます。

781 :デフォルトの名無しさん:04/11/27 06:06:29
> ちなみに、CLDC1.1だと、interrupt()が復活したから、InterruptedExceptionも使えます。

ほうほう
仕様書のマイナーチェンジとバグフィックスの所に書いてあるね

■ Boolean.TRUE and Boolean.FALSE
■ Date.toString()
■ Random.nextInt(int n)
■ String.intern()
■ String.equalsIgnoreCase()
■ Thread.interrupt()

まあ901専用アプリは作らないから関係ないけど

782 :デフォルトの名無しさん:04/11/27 09:07:44
>>780
要するに割り込みは無理ってこと?

783 :デフォルトの名無しさん:04/11/27 13:32:57
>>782
どういうことやりたいかによるけど、waitとnotify(やnotifyAll)使っても無理そうなことなの?

784 :デフォルトの名無しさん:04/11/27 13:36:32
>>782
あ、interrupt()した時にInterruptExceptionが発生するのは、sleepとかwaitとかしてる時に
interruptされた時だけだからね。
それ以外はisInterruptか何かがtrueになるだけ。
そっちはbooleanでインスタンス変数1つ持っておけば簡単に実装できるし。

785 :779:04/11/27 16:25:41
>>783

描画して、sleepして、を繰り返してるスレッド(してることはスタッフロールの表示)を
外部からの割り込み(この場合はユーザーからのキー入力)で
強制終了させたいんですよ。

while(loopflag){ /*描画*/ }
みたいな実装なら外部からloopflagいじるだけなのですが、
諸般の事情でそうもいかないという。

786 :デフォルトの名無しさん:04/11/27 19:13:47
今日の機種依存:

N900i系、P900i系、N505i系で動かないときは、
320×320を超えるイメージを使っていないか疑いましょう。

787 :デフォルトの名無しさん:04/11/27 19:31:55
>>785
特殊な状況っぽいので、もっと詳細がないと期待された答えが返ってこないと思う。

788 :デフォルトの名無しさん:04/11/27 21:13:45
描画してsleepしてフラグチェックして、を繰り返せばいいだけじゃないの?
フラグはprocessEventで変化させればいい

789 :デフォルトの名無しさん:04/11/28 15:06:54
そもそも、描画してsleepしてフラグチェックしての繰り返しで足らないなら
interrupt()があってもやっぱり足らない罠。

790 :デフォルトの名無しさん:04/11/29 18:50:38
FOMA900シリーズのiアプリでは、バイブレータは作動しないようですが、
どうなのでしょうか?

791 :デフォルトの名無しさん:04/11/29 19:34:01
>>790
んなこたーない。

端末側の設定でバイブレータOFFにしてあるだけじゃないの?

792 :783:04/11/30 00:01:54
>>785
うーん、諸般の事情がわからないと何とも言えないが、
どうしてもsleep()中にユーザーのキー操作で起こしたいの?
それやるんならタイムアウト付きのwaitとnotifyでもできるんじゃない?
タイムアウト付きのwaitってCLDCにもあったよね?(今手元にAPIリファレンスがない…)

793 :779:04/11/30 00:09:56
>>787-789

亀レスすみません。Thread#interrupt()がなくて困っていた件です。

>>788
確かに定石ですね。ありがとうございます。
ただ今回採用できなかったのは、強制終了させたいスレッドから
自作メソッド(こちらもthrows InterruptException)をかなりコールしてて、
それらメソッドは他のアプリでもそのまま流用するので、
極力、外部変数を参照させたくなかったのです。

つまりクラス内変数以外で外部との通信手段が必要な箇所がある、ということです。

>>789
確かに。なので、仮にinterrupt()あったとしたら、
終了確認するまでinterrupt()を無限ループさせる感じの実装ですね。


それで皆さんにご助言頂いたあと色々と試行錯誤してみたのですが、
メソッドの引数で配列を渡せばCのポインタみたく使えることを知ったので、
ユーティリティメソッドにはフラグのポインタを渡して、
強制終了の指示はそちらからやってみよう、という結論に達したのですが
この考え方はで何か弊害など出る可能性はあるのでしょうか??

794 :デフォルトの名無しさん:04/11/30 09:14:52
どんどん変な方向へ行ってないか?

>つまりクラス内変数以外で外部との通信手段が必要な箇所がある、ということです。

直接代入するとか
a.val = 0;

アクセサメソッドを作るとか
a.setVal(0);


795 :デフォルトの名無しさん:04/11/30 10:41:38
Java Blender1.18aで圧縮しようとしたところ
「足りないクラスがあります(phase=2)」
と表示されたんですが、コンパイル&実行でエラー無いのになんで?

796 :デフォルトの名無しさん:04/11/30 11:15:55
クラスにパスとおってないんだろ。
環境も、Versionも、パスも設定も書かずに分かるか。俺らはお前か?

797 :デフォルトの名無しさん:04/11/30 11:31:50
・使い方が間違っている
・JavaBlenderのバグ
・ソースがDoJa4.0用

798 :デフォルトの名無しさん:04/11/30 19:08:43
誰か知っていたら教えて欲しいんだけど…
N506 で以下の処理を実行したら、3行目でエラーがでて困ってます。

Fig[0] = new Figure(Connector.openDataInputStream("resource:///0.mbac"));
Fig[1] = new Figure(Connector.openDataInputStream("resource:///1.mbac"));
Fig[2] = new Figure(Connector.openDataInputStream("resource:///0.mbac"));
Tex[0] = new Texture(Connector.openDataInputStream("resource:///TX0.bmp"), false );
Tex[1] = new Texture(Connector.openDataInputStream("resource:///TX1.bmp"), false );
Tex[2] = new Texture(Connector.openDataInputStream("resource:///TX2.bmp"), false );
Tex[3] = new Texture(Connector.openDataInputStream("resource:///TX3.bmp"), false );

やりたい事は、テクスチャが違う Figure を使いたいだけなんだけど、SH505 ではきちんと動くんだが、
N506 では「too many resource connections」とかいうエラーが出てしまう。
そして、3行目をコメントアウトするとエラーは出ないんですよ。
もしかしてNシリーズは、リソース使い回しできない?(もしくは別の回避方法があるのかな?)


799 :デフォルトの名無しさん:04/11/30 19:35:16
close()はどうなってんの?
こういう場合勝手に閉じてくれるのか?

800 :デフォルトの名無しさん:04/11/30 19:38:15
closeしないでopenを2回やったらエラーが出て当然。

801 :798:04/11/30 20:18:20
>799-800
おおっ! とんでもなく初歩的な事を忘れていた。
エミュや SH505 では問題なかったんで、全然考えてなかったよ。

とすると、開いた Stream は手動で閉じなきゃイカンから、openDataInputStream
を間接で指定して、使い終わったら close() を実行しなきゃいけない訳ね。

スゴク助かったよ、ありがとう〜。

802 :デフォルトの名無しさん:04/11/30 20:51:56
>>790
こちらも同じく、バイブレータが作動しません。
ただ、作動しないのはN900だけですけど。

803 :デフォルトの名無しさん:04/11/30 21:41:13
>>802
>>791を見よ

804 :デフォルトの名無しさん:04/12/01 08:53:41
791,803に同意
FOMAはマナーモードの設定がPDCより複雑になっているので設定を確かめるべし。
わからなければ端末設定全リセットだ。
オレは幾度と無く振動しねえとバグ扱いされたぜ。(くそ)


805 :802:04/12/01 11:10:01
>>803
>>804
携帯側の設定を変えると、他のサイトでDLしたアプリは
振動するらしいんですけど、問題のアプリは振動しないです。
他の機種では問題なく振動しているのですが・・・

Nだけ何か特別な設定が・・・?



806 :デフォルトの名無しさん:04/12/01 13:16:55
>>805
Nだと、バイブの動きが
「通常iアプリ」と「待受iアプリ」で
違った希ガス。

807 :802:04/12/01 16:12:08
>>806
問題のアプリは「通常iアプリ」
他の問題なく振動しているのも「通常iアプリ」なんです・・・

朝からずっと情報を集めているんですけど、
他に同じ症状の人が見当たらないんです。
これは、こちらのソースが悪いんでしょうか・・・?



808 :デフォルトの名無しさん:04/12/01 22:00:39
携帯端末側の設定が問題無いと仮定すると
原因はプログラム側だろうね。
ためしに違う部分で振動させてみたら?
例えばゲームであればタイトルで1キー押したら
振動させるとかのデバッグモード作ってみるとか。
面倒だったらタイトル入ったら振動でも良いし。

809 :802:04/12/01 22:08:37
>>808
違う箇所でも振動しないです・・・。
もとはDoJa3.0で作ってて505で動かしてたんですけど、
そのときはほとんどの機種で動いたのに・・・。


810 :デフォルトの名無しさん:04/12/01 23:22:45
何のためにJavaを採用したのか不明だな

811 :デフォルトの名無しさん:04/12/02 01:56:27
Javaは機種依存問題を解決するための銀の弾丸じゃないし。

812 :デフォルトの名無しさん:04/12/02 02:40:43
お前銀の弾丸言いたいだけちゃうんかと。

813 :デフォルトの名無しさん:04/12/02 04:07:50
ワロス

814 :デフォルトの名無しさん:04/12/02 05:14:48
>>810
アドレス帳をいじれなくするため。

815 :デフォルトの名無しさん:04/12/02 16:11:06
ゲーム実行中にカクッってなるのを防ぐことは出来ませんか?

816 :デフォルトの名無しさん:04/12/02 17:18:29
何がどうカクッなんだ。
ちゃんと説明しろ

817 :デフォルトの名無しさん:04/12/02 18:21:49
Display.setCurrent(x);で画面を切り替える場合、
画面それぞれでソフトキーの動作を変えることって可能でしょうか?

818 :デフォルトの名無しさん:04/12/02 18:42:15
>>815
こまめにSystem.gc();汁

>>817
メインの画面とソフトキーは独立してる
自前で処理汁

819 :817:04/12/02 19:04:11
>818
意外とサンプルないから無理かなーとおもったら
ttp://omori.info/java/に普通にありました。
ありがとうございました。

820 :817:04/12/02 19:33:04
x1.setSoftLabel(x1.SOFT_KEY_2,"次へ");
x1.setSoftKeyListener(this);
x2.setSoftLabel(x2.SOFT_KEY_2,"次へ");
x2.setSoftKeyListener(this);

public void softKeyPressed(int softKey){}
public void softKeyReleased( int softKey){
if( softKey == p0.SOFT_KEY_2){
Display.setCurrent(x1);
}
if( softKey == p1.SOFT_KEY_2){
Display.setCurrent(x2);
}
}

これだと連続して切り替わっちゃう…
なぜ〜?

821 :817:04/12/02 19:35:44
↑間違い
↓訂正
x1.setSoftLabel(x1.SOFT_KEY_2,"次へ");
x1.setSoftKeyListener(this);
x2.setSoftLabel(x2.SOFT_KEY_2,"次へ");
x2.setSoftKeyListener(this);

public void softKeyPressed(int softKey){}
public void softKeyReleased( int softKey){
if( softKey == x1.SOFT_KEY_2){
Display.setCurrent(x2);
}
if( softKey == x2.SOFT_KEY_2){
Display.setCurrent(x3);
}
}

822 :デフォルトの名無しさん:04/12/02 20:56:15
>>818
GCに夢を持ちすぎ。

823 :デフォルトの名無しさん:04/12/02 21:44:49
public void softKeyReleased( int softKey){
 if( softKey == Frame.SOFT_KEY_2){
  if(Display.getCurrent() == x1){
   Display.setCurrent(x2);
  }else if(Display.getCurrent() == x2){
   Display.setCurrent(x3);
  }
 }
}

こうかなぁ‥試してないけど
x1.SOFT_KEY_2とx2.SOFT_KEY_2は定数(1)だよ
softKey == 1 って書くのと同じ

あと>>818の言ってることが良くわからんが、
setSoftLabelの説明見る限りでは各Frameに属するっぽいぞ
>設定したラベル文字列は、このフレームがカレントフレームになったときに、
>ソフトキーのラベル文字列を表示する位置に自動的に設定されます。

824 :817:04/12/02 22:54:01
>>823
できました!
if(Display.getCurrent() == x1){}
の考えはあったんですが、方法がわかりませんでした。。。
ありがとうございます!!

825 :デフォルトの名無しさん:04/12/03 13:13:26
>>822
しかし我々にはその手段しかないのだ。
精一杯それをやるしかあるまい。

826 :デフォルトの名無しさん:04/12/03 16:36:38
>>825
それもそうだね。

827 :デフォルトの名無しさん:04/12/03 18:04:06
オブジェクトの破棄とメモリの回収をいつするか意識して、
造ることですな。
元々ゲームみたいに、リアルタイム性重視のソフトにJava
使うのはおかしいんだけど。

828 :デフォルトの名無しさん:04/12/03 22:03:55
最近のほんとんどのゲームではリアルタイムは重視されてない。

829 :デフォルトの名無しさん:04/12/03 23:57:12
そもそもSystem.gc()頻繁に呼ぶと本当に何か効果があるの?
そもそもGCってのはそういうものじゃないはずなのだが...。

830 :デフォルトの名無しさん:04/12/04 00:00:10
>>829
伝説のように「安定させておきたいなら呼んでおけ」っていうのを聞いたことはある。

831 :デフォルトの名無しさん:04/12/04 00:28:14
都市伝説

832 :デフォルトの名無しさん:04/12/04 00:59:52
頻繁にgcすればプチフリーズは無くなるよ
リアルタイム性の高いゲームなんかじゃ必須

833 :デフォルトの名無しさん:04/12/04 01:01:46
GCの実装にもよる。

メモリがどうしようもないくらい圧迫されてからガッと一気に解放するような実装なら
頻繁にSystem.gc()を呼ぶのは有効。

834 :デフォルトの名無しさん:04/12/04 02:24:34
アプリケーションメモリとスクラッチパッドの入出力速度の差ってどれくらいありますか?

835 :デフォルトの名無しさん:04/12/04 03:59:53
>>834
ものすごく

836 :デフォルトの名無しさん:04/12/04 05:23:15
>>834
速度計測アプリつくって是非ここで結果をアップしてくれ。


837 :デフォルトの名無しさん:04/12/04 20:16:18
>>829-830
一年に一度しかデフラグしないHDDと一週間に一度デフラグしてるHDD、
一度あたりのデフラグ時間はどちらが短いか、ファイルの破損確率は
どちらが高いか、そういう話です。

>>833
漏れの場合、そもそもgc不要なアプリを「目指して」作ってる。
String型の操作は一切行わず、クラス内変数の宣言以外ではnewは使わない、
文字列を操作したいときも、あくまで静的に確保されたバッファの中でやる。
この辺り守るだけで、SPへのアクセスや通信時以外は
メモリの新規確保はなしでアプリは走るよ。




838 :デフォルトの名無しさん:04/12/04 20:32:42
>>837
> 一年に一度しかデフラグしないHDDと一週間に一度デフラグしてるHDD、
> 一度あたりのデフラグ時間はどちらが短いか、ファイルの破損確率は
> どちらが高いか、そういう話です。

つまり、System.gc()についてよくわかってないってことですね?

839 :デフォルトの名無しさん:04/12/04 22:20:33
画像の展開やらサウンドのAPIそのほか何らかのAPI呼び出しの中で
ヒープなんかガンガン使われてると思うんだが。

840 :デフォルトの名無しさん:04/12/04 23:03:27
>>837
> この辺り守るだけで、SPへのアクセスや通信時以外は
> メモリの新規確保はなしでアプリは走るよ。

現実問題として、そこまでしなきゃならん端末あるのか?
具体的な機種名分かるなら教えてくれ。

N504iがSystem.gc()を頻繁に呼ぶだけで解決するのは知ってるが。

841 :デフォルトの名無しさん:04/12/05 03:12:33
WEBから画像を複数枚数DLしてスクラッチパッドに保存し、日替わりで画像を入れ替えられる待ち受けアプリを作成して
いるのですが、一部の機種で画像のDL時にConnectionExceptionが出て困っております。

同じプログラムでありながら、Doja,F2102V,N505iS,SH900i,SO505i,F900iCでは問題なく画像をダウンロードします。
ですが、P2102V,N2102Vでは画像DL時に上記のエラーが出て落ちてしまいます。
もしかして原因がわかるかも?と思い、ConnectionExceptionの時ダイアログを出るようにして、試しにP2102Vを通常
起動させてみるとダイアログが表示されたのですが、その時そのままダイアログを出しっぱなしにしておくと裏で画像を
なぜかDLしていました。

iアプリ作成初心者なので、全然原因がわからず困っております。
お知恵を貸していただけないでしょうか?よろしくお願いします。



842 :デフォルトの名無しさん:04/12/05 04:15:35
メモリの管理は>>837に似たような事はよくやる

Brew移植とかを考えると都合が良いし
あとは高速性を求められるアプリでもよくやる

843 :デフォルトの名無しさん:04/12/05 15:07:45
ていうかさあ、VM実装してる連中だって無能じゃあないのよ。

いわゆるふんづまり現象は、ゲームだけでなく、サーバアプリケーションのレスポンスや
GUIアプリのユーザビリティなんかにも支障ができるから、
インクリメンタルGCとか、メモリコンパクションをせいぜい1回数msまでにおさえたりとか
ちゃんと計算してる。角度とか。
ついでにJ2SEの話だが、Java 1.0や1.1あたりの頃はそうやってメモリ確保を避けたコードでも
なぜか頻繁にふんづまり現象を起こしまくってた。
結局、VMやAPIのネイティブ部の実装次第でどんなコードを書こうが問題は起こるし、
どんなコードを書こうが問題は起こらない。

携帯によりまともなVMが載るに従って、その手の努力はまったくの無駄になろう。

844 :デフォルトの名無しさん:04/12/05 15:09:40
というか、現状で既に無駄だと思うんだけど。

845 :デフォルトの名無しさん:04/12/05 16:33:20
画像を大量につかうアプリを作ったとき
大量に配布すると、ごく僅かな人からgetImageあたりでUIExceptionが出ると
報告を受ける。同じ機種なのに動く人と動かない人がいるケース。
こんなときは、その周辺にgcを置くだけで動いたりするんだよな。
これ本当によくあるケースね。

846 :デフォルトの名無しさん:04/12/05 16:50:54
>>843-844が正解、しかしながら>>845が現実。
いいじゃん、どうせ中身はわからないんだし、動きゃあいーんだよう。

847 :デフォルトの名無しさん:04/12/05 17:02:17
携帯Javaの場合、JavaといいながらネイティブのAPIにデータ渡すだけ
っていうパターンが多いからね。機種依存ありまくりです。

848 :デフォルトの名無しさん:04/12/05 19:05:16
>どんなコードを書こうが問題は起こらない
ここだけ違うな

どんな実装でも問題の起こる可能性を最低限にするために
GCを配置しておく、というのが正解

849 :デフォルトの名無しさん:04/12/05 19:59:15
たとえばアクションゲームなら、ステージ切替やメニュー選択の
ときに明示的にGCすれば充分効果あるでしょ。

850 :デフォルトの名無しさん:04/12/05 20:21:49
>>843
>ていうかさあ、VM実装してる連中だって無能じゃあないのよ。
なにか夢を見てませんか

正直
有能とはとても言いがたいクソ端末のなんと多いことか・・

851 :デフォルトの名無しさん:04/12/05 20:23:58
プログラマ側が>837ぐらいのことしないといけない現状は変だよな。
端末の方がおかしいんだから、もう皆で開き直らない?

852 :デフォルトの名無しさん:04/12/05 21:59:25
まあ、端末によってはGCが必要だと判断するタイミングにバグがあるのかもしれんね。
普通、メモリを確保しようとして、だめそうだったら、GCしてから再度確保するのがまともな実装なわけだが、
だめだったらあきらめる実装とかがあるのかねえ。

853 :デフォルトの名無しさん:04/12/05 22:06:07
>>852
前にもいったけど、
実際毎回GCかけつつヒープの使用量を表示したことがあったが、
メモリ足りなくなるまでGCかけてもスルーされる端末が存在するよ。

854 :デフォルトの名無しさん:04/12/05 22:43:17
なんかスレ違いかもしれませんが、プログラマのみなさまに質問したいのです。
まず携帯電話で、カメラを起動させます。
カメラを左に動かすと、それに伴って映像も左に流れるわけですが、
これを検知するようなプログラムは、作成可能なのでしょうか?

855 :デフォルトの名無しさん:04/12/05 22:50:08
カメラの画像をリアルタイムにプログラム処理できるわけじゃないので不可能。

856 :デフォルトの名無しさん:04/12/05 22:57:14
そうですか・・・残念です。
レスありがとうございました。

857 :852:04/12/06 02:01:35
>>853
それは俺が言ってるのとは別の現象。

858 :デフォルトの名無しさん:04/12/06 12:08:18
一定周期でGC呼ぶと呼んだフレームだけカクっと処理が落ちるのは俺だけ?
呼んだ方が定期的にカクっと落ちるので使うのをかなり限定した。
毎フレーム呼ぶとかなり糞重いのでそれは却下したけど。似たような奴いない?

859 :デフォルトの名無しさん:04/12/06 13:22:53
>>858
900i専用ゲーム作ってた時になったよ。
シーン切り替え時とデータ展開後以外GCは止めた。

860 :デフォルトの名無しさん:04/12/06 14:00:37
>>858
それは当たり前だ、そのために処理遅くなってもよいタイミングで、
明示的にGC呼ぶんじゃないのかと思うのは俺だけか?

861 :デフォルトの名無しさん:04/12/06 15:50:41
gcってそんなに重いのか?
900iの特定の機種だけじゃないの?

862 :デフォルトの名無しさん:04/12/06 17:14:13
つうか、一応仕事とかで全機種対応を迫られる人が見てるケースが多いと思うんだよ、ここ。

だから「System.gc()は頻繁に呼んだほうがベター(N504などで起こるプチフリーズが解消できるから)」
という台詞に「起こらない端末のほうが多いのだから、それは無駄」と答えるのはいかがなものか。

なるべく全ての端末で(なるべく共通のソースで)やるためには、
そういう無駄も仕方ないし、そういう情報はみんな欲しいんじゃないのか?

863 :デフォルトの名無しさん:04/12/06 18:00:58
901以降開発コストを下げるために共通化が進むみたいだから、機種による差が減ることを祈るばかり‥

864 :デフォルトの名無しさん:04/12/07 00:24:41
>>863
共通化が進むってどこの情報?
ソース希望


865 :デフォルトの名無しさん:04/12/07 00:57:46
>>864
これかな。
ttp://www.nttdocomo.co.jp/new/contents/04/whatnew1118.html
見込みなくこんな開発しないだろう氏ね。

866 :デフォルトの名無しさん:04/12/07 02:01:34
雑誌の日経エレクトロニクスにも出てたよ

867 :デフォルトの名無しさん:04/12/07 02:15:18
2年後にはこのスレも無いかもな。

868 :デフォルトの名無しさん:04/12/07 02:35:39
2chもろとも

869 :デフォルトの名無しさん:04/12/07 03:06:06
BREWの波はそこまで来てる。

870 :デフォルトの名無しさん:04/12/07 03:32:57
引き潮。

871 :デフォルトの名無しさん:04/12/07 04:02:58
で、結局gc呼びまくらにゃならん具体的な機種どれよ?(N504i以外で)
正直オカルトの類な気もするんだが。

872 :デフォルトの名無しさん:04/12/07 11:11:42
SH901iC
なんかgc呼んでる回数の割に効いてない気がする

873 :デフォルトの名無しさん:04/12/07 12:02:12
>>871
開発するアプリ内容でかわってくるから一概に言えないと思うが。

基本的に画像データを頻繁に入れ替えるアプリではN>D>その他
みたいな感覚は持ってるけどな。GCの使用頻度は。

過去にGC使いつつメモリの容量の流れを見てたことがあるが
GCを使ってもどんどん空き容量が・・つまり開放される容量が
減っていくんだよなぁ。でDなんかはその減りつつあるときに
デカイ画像をポンと表示すれば落ちるわけでw

874 :デフォルトの名無しさん:04/12/07 12:54:58
これに近いものをiアプリで制作するのは、可能ですか?
ttp://www.mousebreaker.com/games/crazygolf2/play.php


875 :デフォルトの名無しさん:04/12/07 13:04:23
>>871
自分の経験だけで応えると
D505iとP505i(s)でgc入れただけで動くようになったことアリ。


876 :デフォルトの名無しさん:04/12/07 13:40:43
>>874
技術力があれば可能。

877 :875:04/12/07 14:36:44
>>871
スマソ
俺が言ったのは一瞬固まる例の現象のことではなかったぞぇorz
単にリソースたんねーってエラーが出て動かなかったのが
gc入れただけで動くようになったって話デスタ。


878 :デフォルトの名無しさん:04/12/07 14:43:28
>>871
D504。あれもNと同じヤバさ。

879 :デフォルトの名無しさん:04/12/07 15:44:17
着メロ止めたいんだけどどうやるの?

880 :デフォルトの名無しさん:04/12/07 16:52:39
>>879
質問の意図が不鮮明すぎ・・。

プログラム的に答えるなら単純にstop使え。
つか鳴らせるなら当然判ることだから・・
まさかとは思うがiアプリ関係のプログラムには
一切関係ない質問じゃないだろうな・・・。

881 :デフォルトの名無しさん:04/12/08 03:46:36
任意の整数からdate型またはカレンダー型に変更するには
どうしたらいいですか?
残り時間 = 現在時刻 - 整数で作った時刻
みたいな式をしたいんですが・・

882 :デフォルトの名無しさん:04/12/08 04:25:55
new Date(1000);

883 :デフォルトの名無しさん:04/12/08 08:21:06
900i用のゲームを作ってるんですが
F900iでなんか処理がやたら重くてどうしようか困っています。
なんかF900iって変な癖ありますか?

884 :デフォルトの名無しさん:04/12/08 09:22:51
F900iは優秀なほうだと思うけど…。(F505は糞だったがw)
具体的にどういうことやらせてるん?

885 :デフォルトの名無しさん:04/12/08 13:51:50
>>883

グラフィックへ描画命令と実際のディスプレイへの反映が非同期で、
描画命令を受け取っても一旦バッファにたまる。
で、実際のディスプレイへの反映が間に合わないくらいの速度で
描画命令を繰り替えると、バッファが一杯になって急に速度が落ちたり、
バッファが急にフラッシュされて描画が飛んだり、という現象が
組み方によっては発生することがある。

うろ覚えなので、違ってたらフォローよろ。

886 :デフォルトの名無しさん:04/12/08 14:09:17
N505iに続いて、描画非同期か…。
糞機種が…。

887 :デフォルトの名無しさん:04/12/08 14:51:11
速度が落ちるんじゃなくて、それが本来の速度って思ったほうがいいかも

描画が飛ぶのは知らん
repaint()使ってるとか?

888 :デフォルトの名無しさん:04/12/08 19:19:52
getImage() と dispose() を
毎フレーム実行してたりしてな。

ありえないか。


889 :デフォルトの名無しさん:04/12/08 22:04:22
>>883
サウンド使ってる?
setSoundでやたらと負荷かからない?

890 :名無しさん:04/12/08 22:47:04
F{505,900}iの描画はたしかにかなり怪しい。

repaint()の後、paint()が呼び出されるタイミングが分けがわからん。
続けてrepaint()を呼ぶとその数だけpaint()が呼ばれないというのはdocomoの
仕様通りなのだが、最後の1回のrepaint()でpaint()が呼ばれない事がある。

repaint();
....
repaint();
....
//全ての描画が終わるぐらいThread.sleep()する。
repaint(); <-- これのpaint()が呼び出されない場合がある。


891 :デフォルトの名無しさん:04/12/09 00:23:44
repaint()は使用禁止でヨロ
ttp://www.atmarkit.co.jp/fmobile/rensai/doja06/doja06.html

892 :デフォルトの名無しさん:04/12/09 00:35:57
repaintに限らず、イベントとかも機種依存しすぎて怪しすぎ。
1つの裏スレッドで全イベントが順に呼ばれるのもあるし、イベント毎に違うスレッドになるときもある。
あるイベント処理中にタイマーイベントが起きない機種なんかは、スレッド共有してる。

repaint()が怪しいのは昔からなんだから、駄目と思ったら使うの止めろ。

893 :デフォルトの名無しさん:04/12/09 01:05:55
Dojaでイベントが必要なのってCanvas#imeOnくらいだしね。
タイマ、描画、キー入力、音関連の機能は全部自前で用意するのがベター


894 :デフォルトの名無しさん:04/12/09 01:10:28
>>893
音でMediaListener使わない良い方法あるの?


895 :デフォルトの名無しさん:04/12/09 01:15:57
>>890
すべての描画が終わってるんだから、repaintの必要がないんじゃないの?

896 :881:04/12/09 02:29:51
int jikan
Date a = new Date();
long l = a.getTime();
Date b = new Date(l - jikan * 60 );
cal.setTime(new Date(b.getTime()));
g.drawString(String.valueOf(cal.get(Calendar.HOUR_OF_DAY)), 130 ,80);

とゆうふうに書いたんですけど値がかわりません・・・orz
ヒント下さい。。。

897 :デフォルトの名無しさん:04/12/09 02:35:09
で、jikanには何が入ってるんだ?

898 :881:04/12/09 02:44:14
0〜23の整数です

899 :デフォルトの名無しさん:04/12/09 02:44:32
>>879
もちろん、セミコロンがなくてコンパイルエラーなので気にする必要はないのでしょう

900 :デフォルトの名無しさん:04/12/09 02:45:23
「言う」を「ゆう」と書くやつのレベルはたかがしれてる、という諺の証明ですね。

901 :881:04/12/09 04:49:22
・・・・・orz
ヒントくれー
色々やってもできんよー
なぜか時間が9時間多くなる、なんで?

902 :デフォルトの名無しさん:04/12/09 04:56:54
>>901
タイムゾーンの罠に嵌ってそう。
ローカル時と標準グリニッジ時がごちゃごちゃになっているのでは。
DateとCalendarで内部のタイムゾーンが違うとか。

CLDCのAPIリファレンスを参照してませう。

903 :デフォルトの名無しさん:04/12/09 07:08:55
ヒントありがとう
また暇になったらやってみます
+9時間は時差ということかな…

904 :デフォルトの名無しさん:04/12/09 09:05:35
>>903
>また暇になったらやってみます
対応できるようになってから聞け

905 :デフォルトの名無しさん:04/12/09 09:43:48
>>894
MediaListenerで何するの?ループ再生?
MediaListener使わなくてもループできるよ。


906 :デフォルトの名無しさん:04/12/09 14:07:46
repaint()は使わないなぁ。

907 :デフォルトの名無しさん:04/12/09 16:19:47
>>905
ファンファーレが鳴り終わるまで待つとか?

ループ再生は頭に戻る時曲が一瞬止まる機種があるから、むしろプログラムでループさせないほうがいい
(勝手にループ再生するようなMLDを作るのがベスト)

908 :デフォルトの名無しさん:04/12/09 19:18:34
>>907
MLDにループ情報を埋め込んでもループしてくれない機種もあるらしい。

909 :デフォルトの名無しさん:04/12/10 00:06:51
>>907
プログラムでループさせるほうがループは確実
一瞬止まるのはプログラムの書き方の問題か音の最後に空白ある場合

910 :デフォルトの名無しさん:04/12/10 00:26:24
>>896
そもそもjikanって単位は何なんだ?
60倍してる理由が全くわからん。
lの単位はmsだぞ。

911 :デフォルトの名無しさん:04/12/10 00:38:03
>>910
jikanの単位・・・。

mm(ミリ分)?

912 :881:04/12/10 01:03:36

前のを少し変えてDate bを 9時間多いので -9時間して初期化
Date b = new Date( ( ( ((jikan-9) * 3600) + ( minute * 60) ) * 1000) );

これから現在時刻のミリ秒 long l の値を引いてもまだ正しい答えになりません
なぜに?

913 :デフォルトの名無しさん:04/12/10 01:06:59
>>909
是非、MediaListenerを使わないでループを実現する方法を教えてください!!
ヘタレなので、どうやるのかサッパリ分からんとですorz


914 :910:04/12/10 01:09:17
jikanって、hoursのことなの?
だから0から23の整数なのか。。

だとしたら>>896のやってることは全然駄目だぞ。

現在時刻よりもjikan[hours]前の時刻が知りたいのかなぁ。
だとしたら
int jikan;
long genzai = System.currentTimeMillis();
long kotae = genzai - jikan * 60 * 60 * 1000;
Calendar cal = Calendar.getInstance();
cal.setTime(new Date(kotae));
System.out.println(cal.get(Calendar.HOUR_OF_DAY));
じゃない?全然動作確認してないけどw

915 :910:04/12/10 01:14:16
何だか行き違ったようだ。
>>912
そのminuteはどこから出て来たんだ?
まず自由変数の無いプログラムを書けw
で、何か大きな勘違いをしてるように見えるんだが、new Date()で渡すlong値は
何を表してるのか知ってるのか?
1970年1月1日(GMT)から経過したミリ秒数だぞ。
なので、bは1970年1月1日(jikan-9)時minute分0.0秒を表していることになる。

916 :881:04/12/10 01:24:48
レスさんきゅ
アふぉなんで小一時間勉強して理解したらまた質問にきます
ありがと

917 :デフォルトの名無しさん:04/12/10 01:37:37
>>909
だといいね
現実は甘くない

918 :デフォルトの名無しさん:04/12/10 08:34:56
ファイルの任意の行をピンポイントに読む方法ってある?
ないよね?

919 :881:04/12/10 10:38:58
cal2.setTime(new Date());
cal2.set(Calendar.HOUR_OF_DAY,jikoku);
cal2.set(Calendar.MINUTE,minute);
cal2.getTimeInMillis ←ここで
メソッドgetTimeInMillis()は型Calenderで不可視です!とでます
説明書を見るとプロテクトになってるようなんですが。。。
使い方がわかりません、ヒントくださいましorz

920 :デフォルトの名無しさん:04/12/10 13:33:12
>>919
CLDCのAPIリファレンスは読んだんでしょうか。
それでも意味不明だったら、J2SEのDateとCalenderの
例を漁るのといいかも。こっちはコードサンプルを入手しやすいはず。

921 :デフォルトの名無しさん:04/12/10 14:04:21
>>918
君が無いと思うなら無い。
君が(そういう機能に対応したファイルフォーマットを)作ろうと思うならある。

922 :デフォルトの名無しさん:04/12/10 18:18:19
>>918
シークする位置が分かれば、行単位のランダムアクセスができるはず。
一旦ファイル(iアプリだからスクラッチパッド?)の中身をすべて読み出して、
すべての改行コードの絶対位置を、バッファに格納してしまえばよいのでは?

こういう話はiアプリとは関係ないので、詳しくはほかのスレで質問しる。

923 :デフォルトの名無しさん:04/12/10 18:25:23
端末による速度差を減らすためにはどういった処理をすればいいのでしょうか?

924 :デフォルトの名無しさん:04/12/10 18:36:15
「DoJa4.0プロファイル向けiアプリ作成ツール」を使って505向けアプリを開発した場合、
浮動小数点は使えるのでしょうか?

925 :デフォルトの名無しさん:04/12/10 19:05:57
>>923
厳密にはむり。
単純遅い機種にあわせてFPSを設定すれば良いが
処理ってか描画の内容によって毎回速度が変わってしまう。
で・・・遅い機種で一番遅い処理が動いた場合を想定して作ると
とんでもないぐらい遅くなるだろうしな。
ま、FPSをあまり早く設定しないってのである程度は緩和されるだろうが。

>>924
使える。が、素で使うのはあまりお勧めしない。
固定小数でいける部分は固定小数が良いと俺は思ってる。

926 :デフォルトの名無しさん:04/12/10 21:41:45
Doja3.0での質問です。
カメラデバイスを呼ぶ時、内側カメラがあるかないかの判定をしたいんですが、何か方法はあるでしょうか?
デバイスのナンバーが機種によって違うらしいので、
Camera.getCamera(1);
これでカメラが認識できないならgetCamera(0)を実行できれば良いのですが。

927 :デフォルトの名無しさん:04/12/10 22:49:52
try {
  camera = Camera.getCamera(1);
} catch(Exception e) {
  camera = Camera.getCamera(0);
}

928 :926:04/12/11 00:44:09
>>927
あ、そうか・・・
すいません、舞い上がってました。仕事間に合いそうです。
ありがとうございました!

929 :デフォルトの名無しさん:04/12/11 00:51:37
>>923
何もしない。

930 :デフォルトの名無しさん:04/12/11 01:23:14
>>919
まず何がしたいのか書けって。
CalendarのgetTimeInMillisは使うもんじゃない。
Calendarが表現してる、1970年1月1日0:0:0(GMT)からのミリ秒を知りたいのだったら
cal2.getTime().getTime()だ。

931 :デフォルトの名無しさん:04/12/11 03:48:15
>>923
とりあえず、最速の端末で最速の動きができるようにする。

932 :913:04/12/11 08:25:56
>>909
MediaListenerを使わないでループを実現する方法を教えてくださいよ〜


933 :デフォルトの名無しさん:04/12/11 16:07:17
>>932
>>909は時々出没するガセネタ厨
スルーでヨロ

934 :913:04/12/11 16:11:20
>>933
なんだ、そうだったのか
どうもアンガトね


935 :デフォルトの名無しさん:04/12/11 18:11:24
>>932
909じゃないが、Ver2か3以降のMLDはループ情報を持たせることができる。
なので1回playすれば、後は端末のサウンドドライバが勝手にループしてくれる。
プログラムでどうこうより、MLDを作る段階でループデータの入れ方を知ってるかどうかが問題。

936 :デフォルトの名無しさん:04/12/11 20:59:35
>>935
レスあんがと〜
やったことないから知らんのだけど
MIDIファイルの段階でループ用のエクスクルーシヴかなんか入れて
変換するとできたりするのかな?

937 :デフォルトの名無しさん:04/12/12 00:48:36
900iではNがお薦めということでFA?

938 :デフォルトの名無しさん:04/12/12 02:06:59
>937
テストという意味ではNとDで、ふぁくとりーおーとめーしょん。
まあ、Dは規格外品ではないかと噂されてるけど…。


939 :デフォルトの名無しさん:04/12/12 03:01:12
Nでテストして、Dには対応しないことを明記ってのが、ファイナルアンサーですか?

940 :デフォルトの名無しさん:04/12/12 11:37:29
>939
素人なら構わんが、もしプロならそういう考え方してていいの?とマジレス

941 :デフォルトの名無しさん:04/12/12 12:22:35
>>940
ビジネス的にDは割が合わない。

942 :881:04/12/12 12:52:23
初心者スレの質問で何度もすいませんが・・(ここしかないので。
具体的にやりたい事は、予定時刻までの残り時間のカウントダウン表示です

int jikoku , minute; // 予定の時間の時間と分
TimeZone zone = TimeZone.getDefault();
Calendar cal = Calendar.getInstance(zone), cal2 = Calendar.getInstance(zone);
cal.setTime(new Date()); // 現在時刻
cal2.setTime(new Date());//予定時刻
cal2.set(Calendar.HOUR_OF_DAY,jikoku); // 予定時刻の時間セット
cal2.set(Calendar.MINUTE,minute);
cal2.set(Calendar.SECOND,0);
if (cal.before(cal2) ) {
message_no = 28;
String time;
long nokori = cal2.getTime().getTime() - cal.getTime().getTime();
cal2.setTime(new Date(nokori));
time = cal2.get(Calendar.HOUR_OF_DAY) - 9 + ":" ;
time += cal2.get(Calendar.MINUTE) + ":" ;
time += cal2.get(Calendar.SECOND);
System.out.println(time);

これで一応時間の表示はできたのですが、やっぱり時差9時間が直せないのと、
最終的にはtimeを数字イメージで表示したいので
ほしいのは時間情報だけなので、もっと簡単な方法ないですかね?
低レベルな質問かもしれませんが初心者なんで。。。
もっとこういう簡単な考え方(他の関数とか)があるだろ、みたいな感じでいいのでお願いします。orz

943 :デフォルトの名無しさん:04/12/12 12:53:48
Dは珍しくクライアントの方から対応しなくていいと言ってきたよ(w
スペック的な問題もあるけど、やっぱりドラクエ非対応が効いたのか。

944 :デフォルトの名無しさん:04/12/12 12:59:03
>>940
今までもDは酷かったけどD900iは段違いにヘタレ過ぎるし、
やっぱりDQ、FFだね。
あれでクライアントを説得しやすくなった。

945 :デフォルトの名無しさん:04/12/12 15:49:51
>>942
iアプリの質問じゃないしこっち行け
【初心者】Java質問・相談スレ58【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1102420209/

>やっぱり時差9時間が直せないのと、
CLDCのリファレンスでCalendar#getInstanceを32767回読み直せ

946 :881:04/12/12 16:01:45
日曜なのにレスないな・・・・orz

ところで質問変わりますが、、
僕は今スケジュール管理の既存アプリ(公開アプリ、free)を使っていて
そのアプリのビジュアルが自分のイメージと合わないので
それなら皆簡単に作ってるみたいだから・・
と思い、自分でも始めたのですが
昨日友達が来てたのにかかわらず、ここの自分へのレスを見て
それなら。。と思い、プログラムの書き直してをしていました、、、
そこへ友人の一言・・・
こんなの作って何の意味があるの?
僕:いや。。こんな感じのスケジュールアプリを作りたいから・・・
友人:これ(既存アプリ)でだめなの?
僕:いや、これでいいんだけど。。自分なりの背景とかイメージに直してるの・・
友人:直してどうするの、意味あるの?出てくる時間は一緒なんでしょ?
僕:・・・・( ´,_ゝ`;)

こんな場合・・なんていいます?
ちなみに私は意味ないけど・・なんとなく・・と答えました。。orz

947 :881:04/12/12 16:03:31
>>94
見てなかったごめん
32767回読み直します
すまソ( ´,_ゝ`;)



948 :デフォルトの名無しさん:04/12/12 16:24:01
>>946
「ビジュアルが自分のイメージと合わないから」って言えばいいんじゃねえの?

949 :デフォルトの名無しさん:04/12/12 16:24:03
>>946
そんな友達は、メーラーもFTPもTelnetで充分なんだろうね。
どんな高機能なメーラー使っても、届くメールは一緒だからね。

950 :881:04/12/12 16:31:45
Telnetって?
ftpはなんとなく解りますけど・・
って聞く前に自分で調べろやゴルァ!ってきそうだから
調べてくる・・・


951 :881:04/12/12 16:40:34
Telnet 
読み方 : テルネット

インターネットやイントラネットなどのTCP/IPネットワークにおいて、
ネットワークにつながれたコンピュータを遠隔操作するための標準方式。
また、そのために使用されるプロトコル。
Telnetサーバを立ち上げてあるコンピュータにネットワークにつながれたほかのコンピュータからTelnetクライアントを使ってログオンし、
そのコンピュータの目の前にいるのと同じように操作することができる。

・・・なに・・・怖・・・( ´,_ゝ`;)



952 :デフォルトの名無しさん:04/12/12 16:42:31
Telnetでメールサーバーにつないでコマンド入力すれば、メールの取得は可能。

953 :881:04/12/12 17:01:59
背骨のアプリは
http://www.saturn.dti.ne.jp/~npaka/apptsuku/
この本を参考にアプリをはじめたのでパクッてます
もちろん公開はしません、( ´,_ゝ`;)

スケジュール表のカウントダウンに関しては
http://tomato.k1.xrea.com/train.html
見たいな感じで考えてます



954 :デフォルトの名無しさん:04/12/12 17:07:29
そろそろ次スレいる?
>>881
雑談なら他でやってほしいな


955 :881:04/12/12 17:11:22
やっぱり迷惑か・・orz
消えます・・( ´,_ゝ`;)

956 :1:04/12/12 17:13:13
なんか面白いページとかあったら教えて。

957 :881:04/12/12 17:13:24
消える・・と言って何だけど
スレをたてるには?
どうすれば?


958 :デフォルトの名無しさん:04/12/12 17:30:20
>>955
迷惑とまでは思わんけど。単にスレ違い。

959 :881:04/12/12 17:36:11
消えると言って・・・なんですが・・2回目・・
せっかくの自分アプリ・・完成させたいので。。
恥を忍んで公開します、ほとんどパクリですが。。。
あくまで自分用なので、、、
http://www.h5.dion.ne.jp/~go-ya/iappli.htm

時間の減算だけが今の目標です。お願いします。orz


960 :デフォルトの名無しさん:04/12/12 18:06:56
>>959
次スレ建ってからにしろや。

961 :881@今日は暇:04/12/12 18:10:31
スレ建てかた解らんのじゃ!
ページエラになるよ

962 :デフォルトの名無しさん:04/12/12 18:37:43
立てたよ
http://pc5.2ch.net/test/read.cgi/tech/1102844217/


963 :910:04/12/12 22:49:07
>>942
お前は
>>915
を読んだ上で、なんで
> cal2.setTime(new Date(nokori));
こういうコードが書けるんだ。
人のアドバイス読んでるのか??

964 :910:04/12/12 22:51:05
ちなみに、「残り時間」を勝手にX時間Y分Z秒という形で表現してくれるメソッドはない。
自分で計算しろ。nokoriはms単位での残り時間だ。
さすがに計算方法は分かるよね:-)

965 :デフォルトの名無しさん:04/12/13 00:07:45
>>881
まず普通のJavaで書け。J2SE1.4を入れて、System.out.println()で要所要所の
数字をだしてどこが間違っているか自分で確かめろ。

TimeZoneなんていらねぇよ。Calendar.getInstance()はデフォルトのタイムゾーンと
ロケールで作られる。日本向けの端末のデフォルトは日本の標準時だ。

966 :デフォルトの名無しさん:04/12/13 00:42:19
まあ、TimeZoneの件は942のコードでも問題ないはずだけどね。

967 :デフォルトの名無しさん:04/12/14 09:50:31
Nやたらモッサリじゃねぇか!キーレスポンス遅杉。
騙された!

968 :デフォルトの名無しさん:04/12/14 09:59:18
>>967
ガイシュツ

969 :デフォルトの名無しさん:04/12/17 17:58:38
今FとN実機で触ったけど確かにNはひどいな…
スクロールかくかくだしキーの押しっぱなしも効いてないし

ところでspにうまく書き込めなくて困ってる
初回起動チェック用にspの1バイト目が0ならば1を書き込んで起動するごとに判定してるけど
毎回毎回1バイト目が0ってされて、保存したデータも読み込めてない
エミュでspを覗いてみると確かに書き込めてるのに…

970 :デフォルトの名無しさん:04/12/17 18:14:27
closeしてないとか?そんな実機があるかどうか知らんが。

971 :デフォルトの名無しさん:04/12/19 06:25:49
SP遅いって書いてあったがそれほど遅くなくないか?
100kbyteを0で初期化してみたが一瞬で終わったな

972 :デフォルトの名無しさん:04/12/19 09:34:03
>>971
機種しだい。
アプリ終了時に書き出す機種すらある

973 :デフォルトの名無しさん:04/12/20 16:35:50
>>972
F505iってSP入出力おそくない?


974 :デフォルトの名無しさん:04/12/20 21:34:27
>>969
機種は何?
全機種だったら他の場所でクリアしてるんじゃない?
スクラッチパッドのポインタチェックしてみな。


975 :デフォルトの名無しさん:04/12/21 17:15:45
>>972
そんな機種あるのか??というか教えてくれ!その機種。

それだと正常終了しなかった場合スクラッチの記録がなくなる?
アプリからの正常終了は良いし、
エラーや電源ボタンによる終了もまぁ良しとしても
いきなり電池パック取られたり、もとい電池切れたりしたら・・・。

976 :デフォルトの名無しさん:04/12/21 17:28:21
>>975
PDCのPがそうだよ。FOMAは分からん。

ベンチマークでSPが異様に速い機種は、RAMをキャッシュにしてます。
フラッシュに書き出すのはアプリ終了時。
電池パック取られたらたぶん、データ退避されないと思うけど
データが更新されないだけで、それ以上の悪影響はなし。

977 :デフォルトの名無しさん:04/12/21 17:31:41
>>976
おお、レスサンクス。
Pなのかぁ・・・。確かにフラッシュされないだけで問題はなさそうだけど
一応覚えておいて損はないなぁっと思って。

978 :デフォルトの名無しさん:04/12/22 02:00:55
>>975
976代わりに答えてくれてありがと。
P504とか終了時に異様に時間がかかるからすぐわかるよね。

979 :デフォルトの名無しさん:04/12/23 23:23:52
ていうか、俺、どの機種の実装もそんなもんだとばっかし思ってたよ。
じゃないとめっさ遅くなるはずだもんな…。

980 :デフォルトの名無しさん:04/12/24 05:06:35
N504はめっさ遅かった気が

981 :デフォルトの名無しさん:04/12/24 07:22:09
N の こ と は い う な

982 :デフォルトの名無しさん:04/12/24 09:45:40
かえるくんって、小さいときはおたまじゃくしじゃ・・・

983 :デフォルトの名無しさん:04/12/24 11:25:00
そろそろこっちは埋めたほうがいいんじゃないか?
話が分散するのはあんまり良くないような気がするが・・・

984 :デフォルトの名無しさん:04/12/25 00:23:21
埋め

っつか、早く Part4 と Part5 読めるようにならねーかなー

985 :デフォルトの名無しさん:04/12/25 16:54:59
>>984
にくちゃんねるだとPart5は読めるようだけど、
Part4がみあたらない?

http://makimo.to/2ch/index.html

986 :デフォルトの名無しさん:04/12/25 17:10:23
電車男のゲーム作ってよ。

987 :デフォルトの名無しさん:04/12/25 19:46:02
チャレンジャー?

988 :デフォルトの名無しさん:04/12/25 19:56:01
要マッコウクジラ

272 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)