[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 06/03 10:29 / Filesize : 229 KB / Number-of Response : 913
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 17:36:05 ]
NTT DoCoMoのiモード携帯電話用Javaに関する話題を扱うスレッドです。
Doja、Starいずれも扱います。質問時には明記してください。
次スレは>>980が宣言して立ててください。

※DoCoMo以外は下記スレへ。
CLDC+MIDP+携帯電話用Javaスレッド part 8
ttp://pc11.2ch.net/test/read.cgi/tech/1206017034/

■ iアプリ特有ではなくJava一般に関する質問はこちらへ
【初心者】Java質問・相談スレッド116【歓迎】
ttp://pc11.2ch.net/test/read.cgi/tech/1213347130/

■関連スレ
【日本携帯】Mascot Capsule/Micro3D【標準】
ttp://pc11.2ch.net/test/read.cgi/tech/1117773530/

441 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 22:37:57 ]
うまくいくか分からないけど…。
GIMPで画像を開いて、画像→モード→インデックスで減色。
ダイアログ→カラーマップでカラーマップを開き、
色を右クリックしてRearrange Colormapで並び替え、
ってのはどうでしょう。

442 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 23:32:56 ]
>>436
gif以外のイメージ使うって手は?

443 名前:436 mailto:sage [2009/05/29(金) 11:59:06 ]
皆様、レスありがとう御座います。
とりあえず>>441のGIMPツールで解決しました。

といいますか、GIMPのVer2.6.4自体がBMP->gifセーブ時にパレットの再配置を
行わないツールのようで、パレットの並び替えも行わずに目的を達成しました。

本当に、ありがとう御座いました。

444 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 22:35:07 ]
画面サイズについてしつもん。
今あるstar端末って全部がめん解像度がVGA以上だと思うけど、
だからといって画面サイズ480*480で設計しちゃっていいものなの?

やっぱり、まだまだ240*240を前提としているべきなんだろうか。

445 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 17:38:20 ]
>>444
jamでディスプレイサイズ指定しないと480*480になるから、それがstarでのデフォと思ってそうしてる

446 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 14:23:05 ]
N-01Aで
cameraクラスのgetMaxImageLengthの結果が
102400
って出る
動画が102KBしか撮れないってことは無いと思うんだけど
これって端末が壊れてる?N-01Aのバグ?他の機種でもこうなるの?

447 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 20:24:43 ]
>>446
手持ちのVGA機種で試してみた。
 N903i : 102400
 F-01A: 512000
Nは共通で102400を返すのかも。
Fの512000も少ない気がするなぁ。

448 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 22:31:40 ]
iアプリでFPS固定って困難でしょうか?60FPS
System.currentTimeMillis()で16ms経つまでThread.Sleep(1)で
待ち続けてから描画するようにしたら
エミュ上でもガクガクです。

449 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 22:44:06 ]
なにもかも間違っている



450 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 23:08:22 ]
プログラマー志望でこれだから、
企画とかが糞なのも仕方ないとは思いたくない。

451 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 23:11:06 ]
正確な認識ではないかもしれないが……。

まずエミュの動作は意図的に相当キツイウエイトが適当な感じで掛かっている。
描写する内容に寄るが、実感では設定上はウエイトを全てはずしたはずの
Doja5.0用のエミュより実機の方が早い。

その実機にしても携帯の液晶の反応速度自体が大体30ms前後なので、約30FPS
以上の描画をしようとすると描画自体は出来ても表示されずにコマ落ちする
場合が多い。

つまりバックを黒一色にして16x16位のgifを表示する場合でも30FPS程度しか
出ない。

452 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 23:29:00 ]
>>450
志望だとは限らんぜ

453 名前:448 mailto:sage [2009/06/02(火) 23:30:48 ]
最近のでも60FPS表示できるのはないんですね・・
じゃあ30FPSにします
ありがとうございました

454 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 23:47:41 ]
>じゃあ30FPSにします

いやその考えはおかしい

455 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 00:50:12 ]
エミュに関してはOSがVistaだと誤動作しまくる


456 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 08:45:16 ]
俺XP隣Vistaだが、誤動作するところは同じだな

457 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 09:29:07 ]
Sleepが実際に1msで動作しているか、確認した?
JAVAにおけるSleepはその秒数他のスレッドに処理を譲る命令であり、
譲った他のスレッドが忙しい状況である場合1msで処理が返らない場合がある。

実際WindowsXPの場合だとSleep(1)を実行しても、実際に待っている時間は
平均3〜4msという報告がある。携帯で実際に計測した事は無いが、もっと
掛かるのではないかと推測。

458 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 10:15:13 ]
正直、最近の機械で俺が保障するフレームレートは15FPSまでだな。

459 名前:446 mailto:sage [2009/06/03(水) 14:45:49 ]
ドコモに問い合わせてみたら
iαppli Development Kit for DoJa-5.1
で開発したものについて

(以下、www.nttdocomo.co.jp/service/imode/make/content/iappli/tool/doja/doja51/download/index.html より抜粋)

第5条 免責

弊社は、お客様に対し、本ソフトウェアにおける一切の動作保証、使用目的・機器等への適合性の保証、並びに使用結果に関わる的確性や信頼性の保証をせず、かついかなる内容の瑕疵担保責任も負いません。

ということで、このツールを使ってビルドしたiアプリでどんな結果になろうと一切関与しないらしい

APIリファレンスの中身についても同様に保証しないと言われてしまった
何を信用して開発したらいいのかしらorz




460 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 15:15:56 ]
保証しないのは当然だろ。保証してたらどんだけ訴訟が起こるんだよ。
おおむね信用して、なんかうまくいかなかったら「そういうもの」と割り切らないと。

461 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 15:57:32 ]
>>448
俺はエミュレータで動かすときだけsleepの代わりに
while(System.currentTimeMillis() < wait);
みたいにしてる

>>459
免責事項としては一般的だと思うが、
446の問い合わせに対してその返答は不自然じゃないか?

462 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 16:52:55 ]
また出た電池ガン無視の糞コード

463 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 18:33:08 ]
>エミュレータで動かすときだけ
>エミュレータで動かすときだけ
>エミュレータで動かすときだけ



464 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 18:35:38 ]
この段階で先の展開見えるな。

465 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 19:35:03 ]
>>462
sleep させようが System.currentTimeMillis() のポーリングだろうが
消費電力に違いはないって話題が過去スレにあったけどね。


466 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 20:38:38 ]
そのソースは出てこなかったけどね

467 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 20:45:40 ]
実際にベンチやればすぐわかること。

468 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 21:56:02 ]
電池はアナログだから余程明確な差が出ない限り
実証は難しいんじゃねぇかな。

電波の状況によっては携帯が基地局探しに行くかもしれんし。

469 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 22:23:27 ]
そんな話じゃないんだけど?



470 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:27:48 ]
数年前だが>>461見たいのだとホストのCPUが100%になって
色んなファンがうるさかったので、エミュレータ上でもsleep使ってた

471 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:59:15 ]
Sleep(16)

472 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 10:53:56 ]
>>462
実際に当時ベンチとって差がないの確認したんですけど^^;
その後の全ての携帯に差がないかはわかりませんけどね

古い機種で消費量に差が出るのは、P端末の一部の機種だけですよ
流石Pと思いましたよ

473 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 18:21:52 ]
無限ループを作るとCPU使用率が100%継続になって
ファンがうるさく回りだしますね
無限ループの中にsleepを入れればCPU使用率が低くなりますけど
これが携帯の消費電力に影響があるかは不明
携帯が熱くなるのもプログラムの組み方に問題があるから?

474 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 20:07:50 ]
そうは言ってもな、仕様に明記されていないのなら実測しかない
どんな動きになっていようと文句は言えんよ

475 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 22:15:26 ]
エクリプスとどうやってリンクするんですか?

476 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:49:21 ]
どうでもいいが、空ループよりも適当なスタティックメソッド呼んだほうが実行速度は速いのな。
javaのコンパイラって空行になんか特殊な処理でも挟んでるのだろうか?

477 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:55:39 ]
>>471
佐野元春のアルバムみたいだ。

478 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 00:01:26 ]
Java鯖VMで空ループスレ立てまくったらCより速かったという伝説があってな
負荷が定数になったという

479 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 02:42:40 ]
>>472
実測しましたけど、明確に差が見られますよ^^;;;
VMの最適化でルームそのものが取り除かれたのでは?

とはいえ無限ループでは最近の大容量な公式アプリほどに熱くならなかったのも事実。
アプリCPUだけでなく、グラフィックのCPU?や音源回路、通信処理のCPUが高速に動作して初めて肉焼きになるみたい。



480 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 08:37:42 ]
EclipseでDojaのコンパイルするときエミュレータが一瞬起動して終了するのですが、原因わかる方いらっしゃいますか?

481 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 09:25:54 ]
環境とかバージョンとか、質問するなら最低限の情報は記述しようよ

482 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 09:54:19 ]
>>479
久々の有益情報ktkr
テストした実機名教えてください
試しておきたいので

483 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 10:30:48 ]
>>480
エスパーで答えておく。
eclipseからjamを起動するのではなく、Dojaエミュレータを単品で起動してからビルドすればおk。

484 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 11:54:25 ]
>>480
PATH に J2SDK の bin ディレクトリを追加する


485 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 12:28:01 ]
>>480
ウィンドウ>設定>Java>コンパイラ
のコンパイラ準拠レベルが 1.4 になっているか確認する


486 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 12:35:37 ]
>>485
thx!

487 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 13:24:08 ]
>>485やるな

488 名前:446 mailto:sage [2009/06/05(金) 14:46:34 ]
続報
オペレーターのお姉ちゃんでは埒が明かないのでメールで問い合わせてみた

Q.
iアプリコンテンツ開発ガイド for DoJa-5.1 APIリファレンス編の
cameraクラスのgetMaxImageLength()で
撮影可能な最大データサイズを取得したところ
手元のN-01Aでは102400バイト(=102Kバイト)と表示されました
実際には2Mバイトまで撮影が可能です
これはこの端末の故障でしょうか?

A.
「作ろうiモードコンテンツ」掲載以外の内容につきましては、
各機種に依存し把握が困難であることから、
ドコモでは技術的サポートを行っておりません。

460>おおむね信用して、なんかうまくいかなかったら「そういうもの」と割り切らないと。
やっぱり、そうやって使うものなのね


489 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 16:19:54 ]
ん・ぱか工房も最近更新されてないしなぁ。
ちなみに102400バイトは100Kバイトだぞ。



490 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 17:54:55 ]
ここで聞くことではないかもしれませんが
PCサイトを携帯でタブブラウザとして開けるアプリは見つけたのですが
携帯サイトをタブでひらけるブラウザアプリはあるのでしょうか?

491 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 17:55:43 ]
あります
一部表示できないサイトがありますが

492 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 18:17:43 ]
あるんですか!
NECの携帯から他の機種に変更してからその部分だけ使い辛くて困ってました
探してみます!ありがとうございます。

493 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 18:18:32 ]
自分で作ります

前提:相手がIP、UAのみでアクセス規制していて、ホストによる規制をしてない。(バーチャルホスト等含む)
相手のIPが調べられる。
1.自鯖を用意する。サブドメインでいいので自由にIP変えられれるようにしとく。
2.ネット(当然自ホスト)に繋いで任意のデータを取得するiアプリを作る。取得したデータはminiSDなりSP入れといて後でCGIにPOSTなりで外部に出せるようにしとく。
3.携帯に作ったiアプリをDL。
4.自鯖のIPを繋ぎたい先に変更。
5.好きなだけDL。
6.あらかじめ用意しといた方法でデータをPCに転送。CGIの場合はIP戻すこと。

応用すればiアプリ本体を取得してプロトコル解析したあとネットランキングに不正なデータポストして荒らすとかも可。悪用厳禁。

494 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 18:23:55 ]
悪用してくれと言ってるようなものだろw

495 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 18:34:09 ]
> 4.自鯖のIPを繋ぎたい先に変更。

これをやっても、書いてあることが実現できるとは思えない

496 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 18:42:17 ]
>>495
アクセスしたい携帯サイトのIPに変更

497 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 18:49:12 ]
>>493
iappliのHTTPのMAX受信データサイズより大きいものを取得したい場合はどうすればいいですか?
range指定できないよね?

498 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 19:16:06 ]
1.の時点で激ムズだろ……
IPがころころ変わるようなホストなんてそうそうねえよ……

499 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 19:30:36 ]
その前にルーティングと云うモノがだな...



500 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:22:53 ]
サーバーのIPアドレスを変えるのは簡単
で、その自称IPでうまくつながるかやってみればいい

501 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:31:42 ]
>>482
俺は本来au(BREW)の人で、ドコモの機種を借りて試したので正確な番号まで覚えていないが、今から2〜3年前の黒いNEC製だった。
熱くなったのは某ネットRPG。

502 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 21:30:32 ]
>>491
すいません検索しましたが見つかりません
もしよかったらアプリ名だけでも教えて頂けないでしょうか?
ほんとすいません

503 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 22:08:01 ]
キャンバスで描画した画面Aから画面Bを描画する時、
下から画面Bが自動でスクロールするような表現を行うにはどうすれば良いでしょうか?
参考になるソースやURLを教えてください。

画面A    スクロール   画面B
□□□   □□□   ■■■
□□□ → □□□ → ■■■
□□□   ■■■   ■■■

504 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 22:11:47 ]
携帯の熱を利用してカイロなるアプリを作りたいのです


505 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 23:21:29 ]
>>503
描画位置をずらしながら、
画面Aと画面Bを一度に描画すればいいのでは。
画面外に描画しても問題ないはずだし。

506 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 12:40:04 ]
こんなもんに「参考になるソース」も何もあったもんじゃない
複雑なAPIの使い方でもあるまいし

507 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 13:36:25 ]
これはjava云々じゃなくて考え方の問題だな

508 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 15:12:09 ]
皆優しいな、俺とか面倒だったからスルーしてた

509 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 13:49:33 ]
画面外に描画できるのって素晴らしい仕様ですよね?
仕事して初めて気が付きました・・・



510 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 14:02:46 ]
・・・・・・・


511 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 00:01:26 ]
String.split() が無いみたいなので以下のようなコードを書いたのですが、遅いです。
何かいい方法無いですか?

String[] splitString(String str, String sep)
{
int i, curIndex = 0, cnt = 1;
while((i = str.indexOf(sep, curIndex)) >= 0)
{
curIndex = i + 1;
cnt++;
}
String[] ret = new String[cnt];
curIndex = 0;
for(i = 0; i < cnt; i++)
{
int nextIndex = str.indexOf(sep, curIndex);
if(nextIndex < 1)
nextIndex = str.length();
ret[i] = str.substring(curIndex, nextIndex);
curIndex = nextIndex + 1;
}
return ret;
}

512 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 09:20:58 ]
問題になるほど遅くならないと思うが・・・
一応、2度indexOfしてるからだろ。
1回目でどんどん分割したStringつくっちゃえよ。

retを十分大きな配列として持っていてもいいし、可変長配列のVectorを使ってもいい

513 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 23:14:42 ]
>>512
ret を余分に取ると、使用しなかった分の要素を取り除くために配列をコピーしなければ
ならないので余計遅いみたいです。
あと、Vector も無いみたいですけど。

514 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 23:57:20 ]
vectorがないわけねーだろ

515 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 00:00:40 ]
512じゃないけど。

ret を余分に取った分はnullが入るから、
わざわざコピーし直さなくてもいいのでは。
nullが来るまでの条件でループして参照すればいい。

java.util.Vector
CLDCのリファレンスは読んでないの?
でもVectorを使うほうが遅いと思う。

516 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 00:28:32 ]
>>515
そもそも String.split() したい文字列の要素数が大きく違うので、要素数が少なかった場合に
不要分領域がもったいないと感じるのですが。
それと、String[].length() を使いたいので、要素が null になるまでループさせるのもスマート
じゃないなと思います。

Vector はありましたね、すみません。
import 忘れただけみたいです。
でも遅いッスね。

517 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:25:59 ]
lastIndexOf(int ch)使ったら?

518 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:40:19 ]
>>517
どう使えばいいのか分かりません。

519 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:45:45 ]
>>516
Stringの参照が配列になってるだけだから、
そんなにメモリは食わないかなと思ったり。

要素数はいっそのこと↓みたいにしてしまって、
int splitString(String str, String sep, String[] res)
String[]は引数で返して、要素数は戻り値で返すとか。



520 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 02:13:16 ]
Cじゃねーんだぞw

521 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 02:23:01 ]
>>519
それも何かスマートでないような・・・。
あと万一、要素数があふれた場合対処できないですよね。 > 引数で返す

ここまで来たら class にした方がいいのでしょうか・・・。

522 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 10:07:30 ]
結果が可変長になる段階で、511みたいな「2度読み」をするか、メモリーコピーは必須だろが
速さもメモリー効率も両方欲しいとか、Javaでなんつーいい草だ・・・

あと、そもそも口調がイラつく

523 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 11:53:47 ]
VectorはObject型だからpushでもpopでも毎回castが入って遅い
可変長配列を自作しろ

524 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:05:27 ]
>>516
遅いってどのくらい?

525 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 18:24:53 ]
クアッドコアのPCよりはるかに遅いってことだろ

526 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 18:29:20 ]
arrayList実装そのまんまだ。これで遅けりゃあとは気合でカバーせよ。
public String[] split(char spliter) {
int resultCount = 0;
String[] resultBuff = new String[10];
StringBuffer sb = new StringBuffer();
for (int i = 0; i < source.length(); i++) {
char c = source.charAt(i);
if (c == spliter) {
if (resultBuff.length - 1 == resultCount) {
String[] tmp = new String[resultBuff.length * 2];//配列を2倍のサイズにする
System.arraycopy(resultBuff, 0, tmp, 0, resultBuff.length);
resultBuff = tmp;
}
resultBuff[resultCount] = sb.toString();
sb.setLength(0);//バッファのクリア
resultCount++;
} else {
sb.append(c);
}
}
if (sb.length() > 0) {
resultCount++;
}
String[] result = new String[resultCount];//結果サイズの修正
System.arraycopy(resultBuff, 0, result, 0, resultCount);
if (sb.length() > 0) { //尻データをくっつける
result[resultCount - 1] = sb.toString();
}
return result;
}

527 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 18:51:00 ]
みなさんありがとうございます。
いろいろいじってみます、ぬるぽ。

528 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 23:53:49 ]
画面の色を反転しようと思い
Graphics.getPixels→得られた配列を色反転→setPixels
したら7FPSしか出ません・・。画面サイズは480x560です。エミュ上とはいえ遅すぎです。
画面を小さくすれば29FPSぐらいにはなるんですが・・小さくしたくないです。
もっと速くできないでしょうか?

529 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 00:21:55 ]
毎回色反転させるんじゃなくて、色反転メソッド呼んだらバッファのイメージを裏返せば良いだけだと思い。



530 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 11:01:12 ]
Vistaだから遅いんじゃないの?
VistaPack2はさらに遅いよ
急にファンの音がうるさくなって動きがカクカクになるし
メモ帳のスクロールだけでもCPU使用率オーバーで動きが止まる
ひどいOSだ

531 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 12:35:10 ]
お前だけ

532 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 17:40:27 ]
Windows7はさらにひどいことになるんだろうな
もしかしたらエミュが起動すらしないかもしれん


533 名前:528 mailto:sage [2009/06/11(木) 22:17:27 ]
>>529
毎回色反転させない?STGで使おうと思っているのでそれは無理なのでは・・
lockでダブルバッファリング開始
fillRectで画面クリア
drawImage画像を描画
getPixelsで画像を取得
for(int i = 0; i < numPixels; i++)
pixels[i] = pixels[i]^0xFFFFFF; //色反転
setPixelsで反転した画像をセット
unlockでダブルバッファリングを終了

無駄な処理があるのでしょうか?色反転処理が一番時間がかかっているようですが、
処理が単純なのでこれ以上速くはできないと思います。OpenGL ESならglBlendFuncとか
あるのに・・
>>530
Vistaじゃないです XPです。
自分のPCではないですが、VistaでiDKが入っているPCがあって
そのPCではむしろ自分のPCより高速に動作しています。

534 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:33:34 ]
Graphics2を使ってもいいならできそうだけど……。
 1. Graphics2#getImage()で対象範囲をImageに保存
 2. Graphics#fillRect()で対象範囲を白で塗り潰す
 3. Graphics2#setRenderMode(Graphics2.OP_SUB, 255, 255)
 4. Graphics#drawImage()で保存したImageを描画
白に対して減算で描画すると色が反転する。
あらかじめImageに描画するようにしておけば手順1のロスは無くなるかも。

535 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 09:26:13 ]
>>533
気持はわかるんだけど、携帯アプリ的には発想を間違えてると思われ。
描画した内容を反転させるんじゃなくて、反転済みの画像を使って描画するのが良いかと。

あと、getPixelsとsetPixelsのエミュ上での動作が遅いのは、昔からの既知の問題。
実機ではそこそこスピードでるはずだよ。試してみるといい。

エミュ上ではあきらめて、画面上に「反転させてます」とか表示させておくだけにして、実機Verでは実際に反転させるほうが良い。

536 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 22:24:58 ]
ラスタ処理じゃ駄目なんかね。
画面を真っ白にしておいてから、ラスタ減算で画像を描画すれば大丈夫なんじゃないだろうか。

537 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 15:10:26 ]
携帯の実機で機種依存の処理速度の差がでそうだし
やはり通常は反転画像も用意すべきかとおもうガッ
全画面の反転か・・
シューティングっていってるしダメージエフェクトだとおもうが
一瞬背景だけ単色塗りつぶしとかじゃだめなのかなぁ・・


538 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 21:24:37 ]
処理速度といえばアプリベンチはもう復活しないんだろうか

539 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 16:27:26 ]
新型の携帯はアプリサイズが480X480だけど
以前の240X240のあぷりはどう表示されるの?




540 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 16:55:51 ]
480x480とかやめてほしい
もう240x240は時代遅れなの?

541 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 18:46:14 ]
>539

倍角表示






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<229KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef