1 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 13:21:44 ] NTT DoCoMoのiモード携帯電話用Javaに関する話題を扱うスレッドです。 ※DoCoMo以外は下記スレへ。 CLDC+MIDP+携帯電話用Javaスレッド part 8 ttp://pc11.2ch.net/test/read.cgi/tech/1206017034/ ■ iアプリ特有ではなくJava一般に関する質問はこちらへ 【初心者】Java質問・相談スレッド113【大歓迎】 ttp://pc11.2ch.net/test/read.cgi/tech/1204363011/ ■関連スレ 【日本携帯】Mascot Capsule/Micro3D【標準】 ttp://pc11.2ch.net/test/read.cgi/tech/1117773530/
552 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 09:15:47 ] この程度で面倒くさいとか そもそもこの程度の問題も解決出来ないとか 日本のJ2MEで特にDojaだけで触っている輩は ほんとレベル低いよな
553 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 09:21:56 ] そういえば最近Doja5.1を入れたんだけど、 先に入れてたDoja5.0が邪魔したのか Doja5.1のデフォなのか EclipseのiDKへのパスがDoja5.0 のままで起動できなくなったな Doja5.1へのパスに直したら 起動できるようになったよ
554 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 09:27:59 ] >>540 引数として必要な値だから引数を取るのです。 第一の判断基準が面倒くさいなのはとんでもなく糞設計ですね。 そんなプログラムで再利用は出来るのですか?
555 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 10:31:38 ] まぁ、昨日今日始めた素人だろうからしょうがないよ。 高校生くらいだろきっと
556 名前:デフォルトの名無しさん [2008/05/23(金) 10:31:53 ] >>552 自分用時刻表作るだけなのにそんな事言われたくないわ
557 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 11:04:42 ] >>547 俺がエスパーしてやる コンパイラのバージョンを1.3にする
558 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 11:10:21 ] vimで開発してるけどEclipseのメリットがいまいち分からん
559 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 11:14:04 ] >>556 あなたのプログラムのモラルの低さが露呈されてます
560 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 11:19:12 ] >>559 あなたの人間としてのモラルの低さが露呈されてます
561 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 11:29:51 ] プログラム技術のスレなんで、人間性とかモラルとかどうでもいいから。
562 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 11:33:07 ] 人間としてのモラルが低いのはむしろ>>556 だろうなw
563 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 11:35:55 ] >>562 で?
564 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:12:59 ] JavaプログラマーがDoJaプログラマーを笑うとは まさに目糞鼻糞を笑うだな
565 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:15:34 ] >>563 くやしかったの?
566 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:17:36 ] 平日の昼間っからにニートが騒ぎ出す・・・!
567 名前:547 mailto:sage [2008/05/23(金) 22:09:31 ] 帰ってきたぞやろーども( ゚д゚) >>548 直接エミュからやればできると言ってるだろうがボケナス( ゚д゚) お前の方がプログラマー向いてないわこのアンポンタン( ゚д゚) >>549 eclipse3.3.2 DoJa5.1です >>550 ( ゚д゚)人(`益´ ) >>552 誰だって最初は初心者だろうがこのスカポンタン( ゚д゚) >>553 最初から5.1入れたしそれは大丈夫
568 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:30:33 ] ('A` ) プゥ ノヽノ) =3 ゚д゚)ノ くく へヘノ
569 名前:デフォルトの名無しさん mailto:saga [2008/05/23(金) 22:32:13 ] 外側に変数を設定すれば 引数を使わなくても戻り値を設定しなくても済むのに なんでいちいち面倒くさいことしなくちゃいけないのか
570 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:53:29 ] さては本物だなこいつ
571 名前:549 mailto:sage [2008/05/23(金) 23:23:03 ] >>567 たぶんeclipseのバージョンが原因 ttp://www.nttdocomo.co.jp/service/imode/make/content/iappli/tool/doja51/index.html
572 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:35:29 ] PATH に空白を含むフォルダが含まれると駄目、とかなかったっけ?
573 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:53:49 ] >>567 で、本当にプロジェクト名に半角スペースは入れていないんだな? 極力最小に、英字だけでトライしてみれ 絶対パスに半角スペースの入らない場所にプロジェクトを置け あとEclipseが起動しているなら大丈夫だと思うが、JAVA_HOME、CLASSPATH、PATHの設定を確認しろ DojaSDKはこれらの設定をしなくても動くから、 悪い意味で至れり尽くせり起動が出来ることは参考程度にしかならん JDK_HOMEにはJ2SE 1.4を使え (eclipseはecjだからあまり関係ないとは思うが) 頑張れアンポンタン
574 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:04:43 ] >>569 再度問うが、仮に平方根を求めるMath#sqrt()がお前の言うモデルの場合に再利用しやすいのか? 引数、戻り値を使えば、3つの平方根を求めるのに3つのセンテンスですむ お前のやり方だと値のセット、メソッド実行、結果取得の3センテンス * 3で無駄が多い とてもじゃないが楽では全くない そもそも関数がなぜf(x)なのか、中学から出直してこい
575 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:13:17 ] >>574 まぁまぁ。 本人がそれで分かりやすいと思っているのならそうやってプログラム組んでいけばいいじゃないかと思う。 ・・・俺はそのプログラムの保守とか絶対やりたくないけど。
576 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:23:36 ] だから言ってるんだよ、俺はいつも。プログラムは知識ではない、と。経験なんだよ。 なんでも頭で考えたら解決できる、と思ってるタイプの人間はプログラムに向かない。 経験で感覚をつかみ、感覚的に理解して自然に使えるようになるのがプログラムの技術だ。
577 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:41:03 ] 例えば、あるクラスの計算式を使って結果を得るのに、 int result = hoge.getResult(a, b, c); とするのがいいのか hoge.x = a; hoge.y = b; hoge.z = c; hoge.calculateThem(); int result = hoge.result とするのがいいのかって話?
578 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:02:17 ] >>576 お前経験無いみたいだな
579 名前:547 mailto:sage [2008/05/24(土) 01:12:16 ] >>571 おおおおeclipse3.1に落としたら起動できるようになった!!多謝!! 実は「eclipseではじめる「iアプリ」開発」って本見ながらやってるんだけど その本の付属のCDに入ってるeclipseが3.3.2なんだよね 著者はちゃんと動作確認してるのか・・・?3.3.2で起動できた人いるかな? >>573 それらの設定は大丈夫(たぶん) なんせエラー文とか全くでないんだもん・・・ 心配サンクスこのツンデレヤロウ( ゚д゚)
580 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 02:47:35 ] >>579 お疲れボケナス 確か漏れは会社で3.2系を使ってたと思った 良かったら試してみ 日本語化はPleiadesが個人的にオススメ
581 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 03:06:53 ] Eclipse 3.3.2と3.2 + Win Vista Home Premium + JDK 1.6 で動いてるよ。設定でターゲットバージョンを1.3にしないと動かないけど。 3.1はデバッグやエディタにバグがあるからお勧めしない
582 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 10:25:40 ] >>576 経験は確かに大切だが、知識もやはり大切。 経験を積めば自然に知識も増えていくはずだ。 経験を積んでいるのに知識が増えていかないのであればそれは偏った経験なのか、 プログラムに対する興味・意欲が無いのであろう。 ・・・そんな俺は就職当時に初っ端から現場投入されて、 偏った知識しか身につかなかった為に今更基礎をやり直してる最中・・・。
583 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 11:27:55 ] >そもそも関数がなぜf(x)なのか 全くだ v = f(x) + f(y) + f(z); がドンダケ〜分かり難くなるか
584 名前:デフォルトの名無しさん mailto:saga [2008/05/24(土) 12:42:52 ] だから引数形式だとbaka(変数,変数,変数,変数,変数,変数,変数.......); とたくさん変数渡すときめんどくさいっつーの あとその変数全てを戻値にしたいときも超めんどくさい
585 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 12:45:11 ] この馬鹿をなんとかしろ
586 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:01:06 ] プログラムの可読性・保守性 >>>>>>>>>>>>> baka(変数,...)
587 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:14:51 ] >>584 なんのためのクラス化だよ
588 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:24:43 ] メンバー変数にセットする方式だと、メンバー変数の名前全部知らないといけないじゃん めんどくさいっつーの あと、引数で渡したプリミティブな変数を、関数内で書き換えさせ結果を取得したい。なんてシチュエーション思いつかない。 何をする関数なんだそれは? というか、関数化しなくていいじゃんそれ。
589 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:30:18 ] >>584 配列で渡して配列で返せよ馬鹿
590 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:31:12 ] //パターン1----------------------------------- int hikisu1 = 1; int hikisu2 = 2; int hikisu3 = 3; int hikisu4 = 4; int hikisu5 = 5; kansu1(hikisu1,hikisu2,hikisu3,hikisu4,hikisu5); //パターン2----------------------------------- class a{ int hensu1; int hensu2; int hensu3; int hensu4; int hensu5; } a.hensu1 = 1; a.hensu2 = 2; a.hensu3 = 3; a.hensu4 = 4; a.hensu5 = 5; kansu2(a); //-------------------------------------------- よく分からんがパターン1と2のどっちの方が簡単? って話?
591 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:34:23 ] パターン2はそれですらなくて m_hensu1 = 1; m_hensu2 = 2; m_hensu3 = 3; m_hensu4 = 4; m_hensu5 = 5; kansu2(); ってやりたいんだと。意味がわからん。(m_〜はメンバ変数)
592 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:36:09 ] ここはiアプリスレなんだが。
593 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:38:49 ] プログラム板のiアプリスレなんだが。
594 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:41:38 ] センスねえ奴には何言っても無駄。 だからこそセンス無いのだから
595 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:14:09 ] 何言っても無駄って事はない。 センス無いとか、どこのアホがこんなの組んだんだよとか言ってたら 治療に専念するとか言ってそいつ辞めたし。
596 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:59:43 ] 自分専用アプリの極小規模開発なら、こんな組み方でも文句はさほど出ないだろう。 でも仕事でプログラムを組んで飯を食っているのなら、こんな組み方は止めるべきだな。
597 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:03:57 ] お前らwww
598 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:07:16 ] 個人、小規模なら全然それでも構わないと思うけど ただ複数でやったり規模が大きくなるとカプセル化とかしっかりやっとかないと 思ってもみないところで変なコード書いちゃって地獄をみることになる
599 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:34:24 ] >>596 >>598 >>556 と言っているから その組み方で別に構わない でFAか。 ま、俺はそうは思わないがw
600 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:55:02 ] PC向けならまともな書き方をするけど、 iアプリでは、サイズが縮むのなら、わざと汚い書き方を選ぶときもある。
601 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:25:30 ] わざと汚い書き方を選ぶことはあるが このケースはそれに当たらないだろ。 そこまで一般化して話されてもw
602 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:32:26 ] どうでもいい話だね
603 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:35:36 ] com.nttdocomo.ui.UIException: Media image is not usable という例外が発生するのですが、なぜでしょうか? resフォルダの中に該当ファイルも入っていて、jarを解凍してもちゃんとファイルが入っています。 下記、処理部のみ抜粋。 MediaImage mi = MediaManager.getImage( "resource:///9_21.GIF"); mi.use(); Image image = mi.getImage(); g.drawImage(image,10,10);
604 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:55:28 ] >>603 エラーメッセージをそのまま突っ込んでググったら色々出てきたけど?
605 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 21:22:51 ] >>603 色々ぐぐった上での質問でしたが、原因は自分の凡ミスでした(;´Д`) すいません、お騒がせしました。。
606 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:11:22 ] >>605 何をどう凡ミスしたのか書いてけや
607 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 03:46:14 ] >>584 >>あとその変数全てを戻値にしたい >>ときも超めんどくさい 設計が悪い。『その変数全てを戻値にしたい』なんてて意味不明な事象はない。 複数の結果が欲しいなら結果用のクラスを戻す、乃至はJ2MEなら配列に複数の結果を格納して戻すメソッドにする。 例えばLvや今のステータスから新しいステータスを計算するメソッドでも、 引数と戻り値を使ってメンバには触れないメソッドであれば 事前に任意のLvのステータスを知ることが可能で 、デバッグやパラメータ調節を比較的しやすく出来る。 プログラムの基本は面倒か否かではなく、再利用・汎用性・保守性だよ。ゲームに於いてもデバッグを容易にするために例外ではないはず。
608 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 03:56:51 ] >>599 メンバに触れるメソッド メンバに触れてはいけないメソッド とかの分類が出来るはずだから。 IApplication#start()やThread#run()とか、 総合的なメソッドであの書き方なら解るけど、 部品の様なメソッドであればアレはあり得無い
609 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 04:05:56 ] >>602 職場とかでそんな馬鹿と一緒に仕事することになっても文句言うなよ? あいう馬鹿のせいで辛い目に会っている人は沢山いるはずなんだから。
610 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 06:51:27 ] 何が問題なのか分からない 好きに組めばいいじゃない
611 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:04:58 ] 素直に配列使えって言えばいい話なんじゃないの?
612 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:37:47 ] iアプリの話しようよ…
613 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:06:25 ] どのiアプリが面白いですか?
614 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:19:52 ] DojaはJavaで書くんだぜ Javaを無視するならJava以外で作れってこった 自由にするのもルールを守った上で 言語にも思想があるわけで 何でも有りな無法地帯ではないよ
615 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 14:16:38 ] でも、Javaそのものについては、ほかのところで聞いたほうがいいと思うよ。
616 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 14:22:52 ] そのソースちょっと見てみたいw
617 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 19:37:50 ] 最近Scalaが流行ってきてるけど これでiアプリ作った人いない?
618 名前:デフォルトの名無しさん [2008/05/25(日) 21:03:51 ] GIFのパレット値を変更して、同一画像の色を変更しようと思っています。 PalettedImage.getPalette()で取得したPaletteオブジェクトの色情報を変更して 再度setPalette()したところ、エミュレータ上では問題無く描画されるのですが 実機上だと色が化けてしまいます。同じ現象に遭遇した方いたら、回避方法を教えて頂けませんか? ちなみに端末はF905iです。Doja5.0
619 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 21:12:38 ] 色化けくらい気にスンナ(゚∀゚) というとアレだが、機種毎にGraphicsのRGBって違うんじゃなかったっけ? 酔っ払ってる上に最近アプリの仕事は中国人にやらせないと利益出ないってんで 俺は遠ざかってて詳しい事言えん。 以下にロクなアドバイスが無かったらRGBの値が全機種共通で使えるかについて 調べてみて欲しい。 健闘を祈る。
620 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 21:29:02 ] >>619 うーん。RGB値は各種端末で同じだとは思うんですが、パレット周りで帰ってくる値は もしかしたら機種依存だったりするのかなぁー。明日別の機種を借りて試してみます。 パレットのRGB値が機種依存だったらショック! Palette plt = pImg.getPalette(); int c, A, R, G, B; for( int idx = 0 ; idx < plt.getEntryCount() ; idx++ ){ c = plt.getEntry(idx); A = c >> 24 & 0xFF; R = c >> 16 & 0xFF; G = c >> 8 & 0xFF; B = c & 0xFF; }
621 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 21:31:08 ] 機種依存じゃよ
622 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 21:42:01 ] >>621 やっぱりそうですか。。。 うーん。なんか良い感じに全機種で回避出来る方法ないか模索してみます。 ありがとうございました。
623 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:54:51 ] createImageして、getGraphicsし、 それに機種依存値をsetColor、drawRectし、 getPixelするとか。 試してないけど。
624 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 01:00:49 ] GIFデータの方をメモリに置いといてパレット情報だけ書き換えてから createImageしたら?
625 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 01:01:42 ] ヒント与え過ぎ。 もっと考えさせて。
626 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 01:11:26 ] >>607 昨今はiアプリであっても クラスをどんどん作って保守性を高める方向で作ることが可能になりつつある…ということですね 自分の場合は未だに「極力昔の端末にも対応してほしい」等の要求がきてしまうので クラスを作る=jar容量が増える=端末に入らない =クラスの数どころかメソッドの数まで最小限にする =結果を返すためだけのクラスを作るとはそれなんて富豪的プログラミング? という感じでありまして(涙目) 現行機種にのみ対応すればいいという状況と昔の機種にも対応すべしという状況では 何がベターなやり方なのかが結構変わってくる・意見が大きくすれ違いそうではありますね 特にiアプリの場合、その違いはPC向けのソレよりはるかに大きいのではないかと思うときもあります 個人的には、是非とも保守性・再利用性を高める方向で作りたいのですが… 今日もまた、グローバル変数を羅列する仕事が始まるお…
627 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 01:18:26 ] >>624 膝を打ちました GIFファイルの中からパレットデータ(RGB値)を読んで、どこかにそれだけ残しておいて Paletteを変更する時はそのどこかに残したRGB値を対象にしながら変化させ かつその変化させた値をPaletteに設定、で全機種対応できるはずということですね! てっきりGIFとは別にパレットデータだけ事前に用意しておかなければいけないのかと思ってましたが GIFの中にあるんだからそれを読んで使えばいいのか…
628 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 02:13:39 ] おまえ何歳だよ
629 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 02:19:07 ] スプライトについて、MIDPの場合は表示する順番を指定してnextFrameメソッドを実行すれば 画像が動いてくれていたのですが、dojaの場合動きません。 Sprite型の配列に spr[i] = new Sprite(img_1, 72 * i, 0, ( 72 * i ) + 72, 72); として格納したあと、SpriteSet型オブジェクトにssを ss = new SpriteSet(spr); として、それを g.drawSpriteSet(ss); で描画しているのですがspr配列の0番目の画像しか表示されません。 DoJaではSpriteを順番に表示してアニメーションをさせるような事はできないのでしょうか? また、SpriteSetのコンストラクタへの引数はSprite配列しか受け付けないにも関わらず0番目の画像しか表示できないのですが、 何故配列のみしか指定できないのでしょうか?
630 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 02:23:10 ] RPG作ってるんですがメモリ不足かなにかで落ちまくります 今アイテムを64個持たせてたりマップのレイヤーが四層だったりしてますが どのくらいが適切なんでしょうか?
631 名前:618 mailto:sage [2008/05/26(月) 02:46:19 ] 618で質問した者ですが、パレット変換のテストアプリを作ってみました(F905iでのみ動作確認済)。 0キーは初期化(変更値リセット) 1〜3キーは各RGB値増加 4〜6キーは各RGB値減少 7〜8キーは明度の増減 www.igotfree.com/keitaiapp/iapp/Download.html GIFのパレットを最初に取得して機種依存のRGB値で一度描画した後に その描画領域をgetRGBPixels()でint配列へ取得しておき、RGB値を変更後は PaletteへsetEntry( idx, Graphics.getColorOfRGB( r, g, b ) )で再設定する方法で 今回は御茶を濁すことにします・・・。
632 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 02:50:29 ] >>630 アイテムは8個まで。マップのレイヤーは2階層までが適切でsうぇqw
633 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 02:56:28 ] アイテム8個っつーか16個未満にしなきゃいけないのは常識だろ
634 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 09:08:11 ] >>626 基本的にその考えは間違い。 504時代でさえ「まずは綺麗に組んで、その後容量のために汚く崩す」 汚いを綺麗にするのは難しいが、綺麗を汚くするのは簡単だからな。 プリプロセッサを利用して、関数をマクロでやるようにするとか。
635 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 09:09:51 ] >>630 アイテム一つに1MBもの情報量を持たせてるだって!? そりゃ64個も持たすのは無茶だ! マップ1レイヤーに1GBものデータを!? 無茶な!
636 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 13:36:19 ] 1MBなわけないじゃないですか、メンバは定数7個(static)にint型8個とクラス1個くらいです レイヤーはshortで15*15*4くらいのマップしか作ってないんですが多すぎですかね メガアプリの予定なので、動かすのはある程度、新しい機種のはずだしいけるかなって思ったんですが
637 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 13:40:17 ] >>636 君はまず「かなにか」という名の魔物を追い払いなさい
638 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 13:51:22 ] それがキャッチできないんですよね、Throwableで全部くくってるんですが とりあえず量的に直ちに問題だというようなものではないですよね 落ちるのは、マップ移動で配列を作り直すとき、と他にアイテムを表示する時に アイテム表示用のクラスに突っ込んで描画しているんですが、そのクラスをメニュー を閉じる時に削除していて、その時に落ちたりします エミュレータでは大丈夫で実機だと落ちるのでメモリ関係なのかなと予想したんですが
639 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 13:55:36 ] ソース出してみれ
640 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 13:57:09 ] どの部分ですか? 結構多いんですが
641 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 14:03:58 ] 原因箇所をかなり特定できているのならその部分を。 そうでないのなら可能な範囲でできるだけ。
642 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 14:10:14 ] >>637 あのさ、俺636なんだけど >1MBなわけないじゃないですか イヤミもわからん頭でプログラムは無理だと思うよ。 お前は質問者としての礼儀とか一切ないのな。 チャットじゃねーんだから、必要な情報は1回で全てだせ。
643 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 14:10:49 ] えらそうなこと言いながら、レス番1つずつずれてて俺涙目。
644 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 14:15:32 ] じゃあとりあえずマップの作成部分から private void loadImage( int number ) { switch( number ){ case 0: chipImage.loadImage( "mapchip00.gif", 15, CS, CS ); break; case 1: chipImage.loadImage( "mapchip01.gif", 15, CS, CS ); break; } private void destroy() { map = null; chipImage.destory(); //chipImage = null; } // マップ移動のイベントを踏んだらこの関数を呼び出してます public boolean create( int number ) { destroy(); loadImage( number ); try { InputStream in = Connector.openInputStream( "resource:///"+ MapData.MAP_LIST[number] ); /* マップのサイズ取得 */ map = new short[LAYER][row][col]; /* 一バイトずつ読み込んで配列へ */ /* キャラクタの作成 */ }catch( Exception e ){ System.out.println( "Map.create"+ e ); } return true; }
645 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 14:27:00 ] >>642 1Gって書いてるのにイヤミだって解らないわけないでしょう 配列で1Gってそんなもん作ると思ってるんですか? それを踏まえた上でのレスですから
646 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 14:30:56 ] ちなみにエラー関係はこうやってキャッチしています public void run() { try{ do{ input.update(); mainLoop(); repaint(); fps.control(); }while( true ); }catch( Throwable e ){ Dialog d = new Dialog( Dialog.BUTTON_OK, "エラー" ); d.setText( "Message:" + e ); d.show(); System.out.println( "thread:" + e ); } } public void mainLoop() { try{ // ゲームの処理 }catch( Exception e ){ System.out.println( "mainLoop:" + e ); } }
647 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 14:35:40 ] この傲慢な質問者に回答してあげる人いるんだろうか
648 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 14:40:04 ] プログラマが「落ちる」とか言うな。何が落ちるんだ。手から携帯が滑り落ちるのか? VMが強制終了するのか? 携帯の電源がOFFになるのか? αエラーのダイアログはでないのか? トレースログは見たのか? 偉そうに「イヤミだって解らないわけないでしょう」とか言うのなら、何故またこんな情報足り無すぎなレスをするのか? 偉そうにするからには隙の無いレスしろ
649 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 14:41:24 ] 「メモリ不足かなにかで落ちまくります」より具体的な技術的表現はないのかね?
650 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 14:45:05 ] 落ちまくるんだからVMが終了するわけではないんじゃないか? VMが終了したら落ち まくれ ない 多分マップ上の落とし穴に落ちてダメージをうけまくっちゃうバグとかが出てるのかと
651 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 14:48:30 ] いくら匿名の2chでも礼儀は必要ということだなー
652 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 14:51:54 ] あと問題がありそうなのは装備の付けはずしの部分ですかね まず、アイテムクラスを配列で、道具箱クラスが持っています、 装備メニューを開いた時に、例えば頭の装備品ならばアイテムクラスの配列を 全検索して、頭に装備するアイテムが出てきたらポインタを取ってきて メモリ確保をしていない装備メニュー用のアイテム配列に追加っていう風にやっています >>648 落ちると言うのは「例外処理がされていない動作障害が発生しました」みたいなダイアログが出て 実機のみで落ちます、エミュレータでは出たことありません >>649 >>650 正確には落ちまくりではないですね 例えばマップを出たり入ったりを繰り返すとだとか 上で書いた装備メニュー用のアイテム配列の削除のときに落ちることがあります