CLDC+MIDP+携帯電話用Javaスレッド part 8
1 :
デフォルトの名無しさん :
2008/03/20(木) 21:43:54
proguard何回も実行するとどんどんサイズ小さくなっていくんだけど何これ・;(`ε()゙
こんな大人気になるとは書いた本人も想像もしなかっただろうな ・;(`ε()゙
で,・;(`ε()゙ って,つまりどんな表情? 怒ってる顔? 小ばかにしている顔? 恥ずかしがっている顔? オレには,歯に詰まったピーナッツを飛ばしているように見えるが。・;(`ε()゙
殴られて歯と血液唾液が飛んだ瞬間にみえる
今知ったけど、オープンアプリって1日3MBしか通信できねえのかよ パケット定額の意味ねえじゃん
何をいまさら auは昔っからそうだ
俺はむしろオープンアプリの制限をもっと強化して欲しかったぜ 独自APIを呼ばないと起動しないとか、もう日本だけガラパゴスでいいじゃん
そしてキャリアが統一されてWindowsのような独壇場になればもう何も言うことはない 今時独自の拡張APIなんて誰も使わないのにねえ
いやだから海外は実際それに近いが、市場は完全に崩壊してるだろ。 もう真面目につくってらんないからメジャータイトルの名前だけ借りて インド中国に丸投げ。そんなうんこ製品にコアなファンはつかないから トレントで何百もパックしてダウンロードされる。おしまい。 そんなのがOAPでもかなり動く キャリアごとの差はなんとかして欲しいしアグリゲータもクソ過ぎだが、 ガラパゴス化自体は結構
問題はキャリア毎にガラパゴスなのと、 アプリ売る会社がそれを理解してないあたり ・;(`ε()゙ 正直日本最強は芋場のような気がするんだけど、 あれ使ったことある人いる?
芋場?
国内で生のMIDPが自由にインストールできるのは大きいと思う 指定先からしか落とせないとかAI接続云々とか面倒なこともないし。 あ、三社限定です
>生のMIDPが自由にインストールできる ↓ >トレントで何百もパックしてダウンロードされる。おしまい。 にならない?・;(`ε()゙
別に弊害はないだろ
>>8 プロガードの設定がおかしいんじゃないの?・;(`ε()゙
プロガード?
早紀ちゃん!
早紀ちゃ ・;(`ε(○=(´∀` )
ソフトキーのラベル変更ってどうすればいいんですか? Command#setLabelが無いのだけど。
作り直してadd if (mSoft1Command != null) removeCommand(mSoft1Command); mSoft1Command = new Command("早紀ちゃん!", Command.EXITとか, 1); addCommand(mSoft1Command);
docomoが2010年までにOSをAndroidに統一だと ガラパゴス崩壊・;(`ε()゙・;(`ε()゙・;(`ε()゙ ここにAndroidのデベロッパーチャレンジ狙ってるやついるのか? デフォルトのビルドファイルだとソースごと提出するようなものだからな ちゃんと自分で書き換えて早紀ちゃんするんだぜ
なんかわからんがこれがすごく気に入ったw >ガラパゴス崩壊・;(`ε()゙・;(`ε()゙・;(`ε()゙ 別の板でも流行らせたい
早紀ちゃん!
早紀ちゃんって何のネタ?・;(`ε()゙
そう、あれは1996年。 アパガードという商品があってな。 そのCMの一部にそういう台詞があった気もするが、 なにしろ12年前の事じゃけぇ、 おいどんも良く覚えてないので勘弁してくりゃれ・;(`ε()゙
・;(`ε()゙ 「糞BREW崩壊まだー?」
>>37 なるほど
早紀ちゃんは早紀ちゃんってわけか・;(`ε()゙
幹久くん!
芸能人は、歯が命!
おまいらいい加減に自重汁・;(`ε()゙
スレチ?
早紀ちゃん!
百合川早紀ちゃん!
幹久く ・;(`ε(○=(´∀` )
このスレVIPかとおもった
NetBeansでゲーム作ってるんだけど while(true)を入れるとエミュで起動できないのは仕様ですか?
しょうです。
そうだんです。
さぶっ・;(´ε()゙
めいんっ・;(`ε()゙
54 :
デフォルトの名無しさん :2008/03/26(水) 14:25:07
AUオープンアプリで端末内ファイルにアクセスしたいんですけど 布留川さんの本のサンプル通りにやるとエミュではうまく行きますが実機(W54T)では起動時に7Fエラーがでます。 オープンアプリからの端末情報アクセスは所詮無理なんでしょうか? 詳しい方教えてください。。。
このスレってどの機種の話をしてもいいんですか?
スレ違いならスレ違いって言うから気にせず話すがいい
なんか偉そうだなw
スレ違いならスレ違いって言うから気にせず話すがいい・;(`ε()゙
60 :
デフォルトの名無しさん :2008/03/26(水) 18:11:44
>>55 なるほどです。
見てたのはMIDP2.0携帯Java開発ハンドブックでした。
なんか馬鹿そうだなw
62 :
デフォルトの名無しさん :2008/03/26(水) 21:24:59
Sアプリを連携起動したときの起動パラメータは、 どうやって取得すればいいんでしょうか。 MIDP2.0なのかMEXAなのか。
Sアプリはよう分からんけど 「Sアプリ 連携起動」でググったら それっぽいサンプルコードとか出てきた・;(`ε()゙
MEXAにもバージョン(1.0〜1.2)があるみたいだけど どの機種がどのバージョンかの情報が見つからないyp
>>64 機種毎のサポートAPIは公式開発者サイトの資料に記載されてる。
けどMEXAって「MEXA」と「MEXA Core」の2種類じゃないの?
1.0とか1.2とかは知らない。
MEXA・;(`ε()゙oppption
ウチ、足切りはJSCL1.2.2だから、MEXAのバージョンなんて気にしたことねえや
公式のAPIリファレンス(JavaDoc)に 1.0 と 1.1 と 1.2 があるね 同じページから落とせる端末情報には JCSL の場合はバージョンが書いてあるけど MEXA の場合は Core かそうでないかしか書いてない
Softbankの904SHを使用してます。JAVAをいじりたての初心者で、 メモカに保存してる画像ファイルを選択して表示させたいと思っています。 StorageConnectionのリファレンスを見てみたのですが、フォルダを作る とかファイルを消すとかの例文はあるのですが画像を表示させる方法が わからずで。 前スレの650あたりに似た?質問がありパスの指定の仕方とかは参考に なったのですが、ファイルをオープンにしてアプリでそれを表示させるまで がわかりませぬ(全くわかってないってことですが。。。) StorageConnectionでファイルをオープンにしたら、それをdrawImageで表 示できるのかと思っているのですが。。。
>>69 ファイルオープンして、バイト文字列で読み込んで、
それをImageクラスか何かのコンストラクタか何かに突っ込んで、
それを表示させれば上手く行くんじゃない?
詰まったとしたら上のどこで詰まったか教えて欲しい
>>70 バイト文字列で読み込むって部分が必要なんですね。
jpgとかだとその部分作らなくても扱えないかと思ったんですが。
「MIDP2.0メモ」というページを見つけて「端末内部のデータフォルダ(/ms)やメモリーカード
のデータフォルダ(/mc)に保存するプログラムを作るというのがありました。そこにバイト文
字列で読み込む部分があったので何とかできそうです。ありがとうございました。
ソフトバンク端末のオフスクリーン・イメージの高速処理で 「2Dなら画面サイズの11枚程度まで」ってありますが画面サイズって 当然端末の実画面サイズですよね? で、ちょっと計算してみたんですが… 240*260の画面サイズならオフスクリーンも含めた読み込みずみ画像の 幅*高さが(240*260*11の)686400まで、480*640なら3379200までOK …みたいな感じであってますか? 自分でもびっくりするくらい大量の画像を読み込んでいて ある画像が表示されるときだけ描画が極端に遅くなって困っているのですが 上の計算であってるなら、読み込む画像をそれ以下に抑えれば 描画が遅くなることはないと考えていいんでしょうか…。
使用端末はSHと予想。
74 :
72 :2008/03/31(月) 14:40:14
>>73 まさしくSH使ってます。 SHだけなんですか?
公式にあった端末仕様にも書いてあると思ったけど、 SHは早く描画できるメモリと、遅く描画するメモリが 見えないトコで分かれてるから(画像量で4Mくらい?詳しくは資料参照) そこを超えて読み込まれた奴は遅くなる・;(`ε()゙
76 :
デフォルトの名無しさん :2008/03/31(月) 14:54:25
EMobileのJavaアプリからサーバーにアクセスしたら、ユーザーエージェントは「emobile/1.0.0 (H11T; Profile/MIDP-2.0 Configuration/CLDC-1.1 Local/ja UNTRUSTED/1.0)」になるみたいだけど、 ユーザーIDはHTTPリクエストヘッダの「x-em-uid」から取得出来る? もしくは、System#getProperty(String)で取得出来る? ダウンロード時にParamタグにx-em-uidを追加すれば確実だと思うが上記方法を確認した人いる? EMobileにアプリ移植考えているが、実機ないので情報求む
77 :
72 :2008/03/31(月) 18:18:48
>>75 どこかでそんな記述を見た覚えがあります。 資料探したのですが… ヒープに準じるとうのはありましたがコレでしょうか? 違っていたら資料名教えていただけますか…すみません。
ごめ、みつからね・;(`ε()゙ Vアプリ開発ガイド[新機能導入の手引き2004〜P6型端末編〜]って奴かも。 3D未使用コンテンツだと実画面サイズ(240x260)を11枚分相当までなら 高速に描画できるとか書いてあったとかどうとか。 ちなみに3Dコンテンツだと実画面サイズ2枚分相当。
80 :
72 :2008/03/31(月) 22:04:08
>>78−79 と言うことは、やはり実画面サイズの幅*高さ*11までが 生成・読み込む画像サイズのひとつの上限なのですね…。 表示しない画像は随時破棄したり、画像サイズ自体を 小さくまとめたり工夫しようと思います。 ありがとうございました。
81 :
デフォルトの名無しさん :2008/04/01(火) 01:09:43
イーモバイルの音声サービスが始まったが、 アプリ試した人いる?
82 :
デフォルトの名無しさん :2008/04/01(火) 07:36:39
>>81 H11T買ったから試したといえば試したけど
何か知りたいことある?
速さはDocomoとかと比べてどんなもん?・;(`ε()゙
MIDPssh使える?いや普通には使えないことはわかるんだけど HTTPじゃない普通のソケット通信ができるかどうかを知りたいんです
ダウンロードしたアプリがSDとかに移せるのかも知りたい・;(`ε()゙
>>83-85 まだ全部試してないことばっかりだわ
仕事が暇な時にでも試してみる
MIDP2.0でADVエンジン作ってんだけどいわゆるクリック待ちってどうやって実装したら良いだろう? スレッド止めちゃうとゲームループ回らなくなってソフトキーのリスナーしか反応しなくなるし、GameCanvas#getKeyStates()がGameCanvas#FIREのとき待ち解除したいんだけどここで詰まった。 ゲームキーリスナーみたいなのがないからイベント駆動でできないんだけどどうすればいいの?
どんなものかわからんけどいわゆるスクリプターなら キー入力待ちも命令にしちゃえばいいじゃん
何故スレッド止めるんだw いまどきのADVは、画面がまったく静止することはありえないだろうに。カーソルが点滅したり、キャラ動いたり。 仮にまったく静止するとしてもスレッドとめずにぶん回してればいい。 電池?気にスンナ・;(`ε()゙
やっぱりスレッド止めずにぶん回すもん?
止める理由がないじゃん
使ってるフレームワークの方でゲームループ回してるスレッドのサスペンドとレジュームは実装してるから クリック待ち中に動きがないならスレッド止めた方が実装楽かな〜と思ってさ。 実際、携帯ゲーのADVで立ち絵がアニメするものとかある? PCで組むなら迷わずスレッドぶん回すんだけど。
必要が無ければ極力sleep入れてあげようよ・・・ キー入力待ちなら50msくらい遅れても問題ない
本とかでよくあるサンプルゲーなんて空whileぶん回しばっかだぞw
私の携帯のバッテリーを殺した犯人がいると聞いてやってきますた
sleepしようが空ループしようが、今時の携帯には関係ない。 空ループのほうがバッテリー速く亡くなりました!って携帯があったら教えて欲しいもんだ。 もちろん検証コード付きでな・;(`ε()゙
空ループすれば携帯がどんどん熱くなるから、比べるまでもない
GameCanvas#getKeyStates()をGameCanvasの外から呼び出すと戻り値が全部0になるんだけどそういうもん?
普通はキーコードが戻り値 0になるのはおかしい
>>92 ゲームループ止めるかどうかはおいといて、
その使ってるフレームワークとやらは、キー入力をポーリングできんのかね。
>>100 じゃあたとえば
class Renderer implements Runnable{
private GameCanvas canvas;
public Renderer(GameCanvas canvas){
this.canvas = canvas;
}
pubulic void run(){
while(true){
//foo
int keyStates = this.canvas.getKeyStates();
if(keyStates==GameCanvas.FIRE){
//bar
}
}
}
}
っていうコードがあったとして
//foo
int keyStates = this.canvas.getKeyStates();
の部分では正常にキーコードが戻るってこと?
この部分で何押しても0が返るんだけど。
そのコードだと戻り値が0っていうか条件が間違ってるんじゃねえの? GameCanvasでのキー入力は if(keyStates==GameCanvas.FIRE) じゃなくて if((keyStates&FIRE_PRESSED) != 0x00) でしょ? もう少し詳しく見ないとなんとも言えない
いやそれはない。 以下のコードだと int keyStates = this.canvas.getKeyStates();//ここで0が代入される this.canvas.getGameAction(keyStates);//ここでIllegalArgumentExceptionが投げられる って感じになる。 環境は実機じゃなくてWTKのエミュレータとeclipseME。
公開したいとかじゃなくて、自分専用のS!アプリを 作って自分の携帯に入れたいと思ったんだけど、 そういうのは無理っていう認識でOK? できるなら、どうすれば?
>>105 アプリゲットのテストダウンロードから入れるしかないんじゃない?
>>105 俺はいつもhttpdで簡易サーバ立ち上げてやってる・;(`ε()゙
>>107 え、それできるの?
Softbankの認証を受けた事業者のサイトからしか
ダウンロードできないのだと思っていたけど。。。
参考サイト等あったら教えてもらえないでしょうか?
もしかしてiアプリも同じ方法で自作したものを自分の
携帯に入れることが可能?
109 :
デフォルトの名無しさん :2008/04/03(木) 23:55:37
すいません、教えて下さい。
auのオープンアプリからBluetoothのデータ送受信を操作することは可能でしょうか?
MIDPの仕様的にはOKな気もするのですが、
>>6 には特に記述がないもので。
記載してないと使用可になるんですね・;(`ε()゙
111 :
デフォルトの名無しさん :2008/04/04(金) 01:04:14
>>110 え・・・どういうこと?゙()3´);・
112 :
デフォルトの名無しさん :2008/04/04(金) 01:04:47
゙()3´);・
゙()3´);・ なんかまた新しいのが生まれたな
>>108 >>107 はオープンアプリかiアプリなんじゃない?S!アプリはコンテンツアグリゲータからダウンロードする方法以外聞いたことないけど。
コンテンツアグリゲータって公開が前提だけど、公開するつもりはない、もしくは作品ができたら公開するけど、とりあえず実機に入れて試したいって感覚で登録した人っている?
>>114 最初は軽い気持ちで登録したYO! ;(`ε()゙
116 :
99 :2008/04/04(金) 21:11:55
eclipse再起動したら正常に値を返すようになった。
>>116 >>99 二日もぶっ続けで携帯プログラミングしていたのか!
尊敬に値するぜ!(;`・ε()゙
118 :
107 :2008/04/04(金) 21:48:31
>>114 その通りiアプリとオープンアプリ前提に話してた
S!アプリって認証いるのね
知らなかったよ!・;(`ε()゙
商用アプリですらアプリゲット使って テストしてたりするからな・;(`ε()゙
WTK2.2でCalendarを使うとグリニッジ標準時になるんだけど、 日本の時刻を取得するにはどうすれば良いんだろ コンストラクタにタイムゾーンを設定してもうまくいかない・・
TimeZone#getAvailableIDs()でタイムゾーンID拾って Calendar.getInstance(TimeZone.getTimeZone(id)) TimeZone#getAvailableIDs()で拾えないタイムゾーンはその実装ではサポートされてない。
言い忘れたけど端末の内蔵時計とVMの時計は別で仕様上は本当は一致させないといけないんだけど VMの時計の実装が屑な場合があるからこれが必ずしも一致するとは限らない。 だから正確な時間が取得できる保証はない。
JDK5とJ2MEをダウンロードしてきたのですが、 Hello Worldを表示するプログラムが動きません… どなたか教えてください
ちょっと古い話題で悪いんですが質問です。 前スレの595で、810T(東芝の3GC端末)で512個以上のImageオブジェクトの インスタンスをcreateImageで生成するとフリーズする(?)という情報がありましたが 解決策はなんなんでしょうか?(or あるんでしょうか?) アプリ内でcreteaImageを行う回数を512以下に抑えるとかそんな感じですか? 当方で作成しているアプリは、頻繁にcreteaImageをコールするので対策に苦慮してます。 対応策の情報があったらご教示いただけると助かります。
いちいち解放しないで、使いまわすようにすりゃいいんじゃね?
>>126 BGのパーツなんかは、大きめの1ツcreateImageしておいて
drawRegionすればいいんでねえの?
携帯アプリごときで、何をどれだけ使えばそんな凄まじい量になるのかは知らんが
タイトルやチュートリアルの画像を持ちっぱなしとか、そんなのか?
129 :
126 :2008/04/07(月) 17:47:26
画像はたいして量使っていませんが、アプリ内で動的にイメージを 生成する処理をしてるんです。 なので使いまわすのが難しいというか、ほとんど無理な状況です。 動的にImageを生成しまくる処理がすでにダメなんですかね。。 ユーザの方から、813Tでしばらくプレイしていると一部の絵が 表示されなくなるという情報をもらっていて、関連しているのかと思い 質問したしだいです。 (プレイは続行可能ということなので、たぶん例外は発生してないです。) 東芝とSoftBankに問い合わせましたが、回答は「個別の質問には 答えられない」、「開発者サポートサイトで出している情報以外無い」 といった感じでした。・;(`ε()゙
動的にイメージを作る。といっても、量は大して使わないんだろ? 求められる一番大きなサイズ。例えば320x320のImageを、求められる最大量(大して使わんという言い回しだと、5枚くらい?)作っておく。 21x21サイズが求められようが、64x64サイズが求められようが、空いている320x320を返すようにする。 あとは「大きなImageを、小さいImageのようにふるまわせる」なんてのは楽勝だろ?
131 :
126 :2008/04/07(月) 21:48:27
少し説明不足による齟齬があるので説明しなおします。
静的なリソースを使用してcreateImageする画像は少なく
動的にcreateImage(正確にはcreateRGBImageです)で画像生成する回数が多いです。
前スレの595で、東芝端末でcreateImageできる回数に上限があると知り
現象の内容は異なりますが、関連している問題かと思いました。
>>130 さん
動的に生成する画像は透過情報を含んでいるのでcreateRGBImageを使っています。
なので白塗りのImageを作って使いまわすことができないです。
間をとばして端的に言うと、MEXAのOption-Util2なImageUtilを使わず
透け透けのmutableなImage(透過レイヤーみたいなものです。)を作りたいのです。
>(正確にはcreateRGBImageです) (#^ω^)
前スレ595のやつは、同時保持するインスタンスの数じゃねーの? 実際ためしたの?131は?
>>132 さん
ごめんなさい。
生成するImageオブジェクトのインスタンス数が問題かと思っていたので。。
>>133 さん
同時に持っているImageのインスタンスは10くらいです。
それに加えてユーザの操作をトリガに動的生成するImageを1つ持っています。
動的な画像生成の頻度はユーザによって変わると思いますが30分で100回ほどです。
もっとじっくり調べてみます。
createRGBImage()で透過情報与えたとしても、たいていの端末はアルファが2段階だから透明、不透明の画像しか生成できないと思ってたけど違うの? 半透明はrenderPrimitive()でポイントスプライトにテクスチャ貼って代用してたんだけど。
>>134 1つ
普通createImageといわれたら、createImage(int width, int height)を思い浮かべる。
今までお前にレスしてた奴全員がそうだろう?
だから使いまわしをみんな薦めた
2つ
だーかーらー、お前は実際に512個の壁にひっかかってにっちもさっちもいかなくなったのか?
今のところ「同時に512個までしか持てないだろうことは仕様書でも判明している」が、
「解放しながらの通算512個なら問題ないのでは」とみんな思ってる
すみません、電話発信について質問です。 S!アプリで、アプリ内から電話発信させようとしてるんだけど、 ポーズダイヤル P を含めると、受け付けられないフォーマット とかいう例外吐いてきます。docomoやau(BREW)は問題なかったんですが。 , 連続でごまかそうと思ったら、実機(813T)で無視してくれました。 ポーズダイヤル(類似)機能ってないんでしょうか? そもそも S!アプリの電話発信で受け付ける文字種類の記述って どこにあるのやらさえわからんかったりします。 (JSCLの PhoneConnection には記述が見当りません)
138 :
134 :2008/04/08(火) 20:50:05
>>136 さん
1についてはおっしゃるとおりです。
先走って色々書きすぎました、ごめんなさい。。
2については解放しながらのImage生成なので答えは「違う」です。
現在、当方で作成したアプリで起きている不具合を簡潔に書きます。
813Tでしばらくアプリを動作させておくと急に一部のイメージが描画されなくなる
現象が起きるというものです。
関連しそうな情報や対応策をご存知の方がいたら、教えていただけると助かります。
>>138 当然だとは思うけど、他の端末ではそうゆう状態にはならないの?
1・他の機種では起こらないのか 2・Imageの生成回数をカウントした結果512回程度で現象が起こるのか 3・本当にきちんとImageは解放しているのか 特に3は、自前で可変長配列作っててnull代入してませんでした><とかいくらでもやるやついるから
null代入してたけどgcしてませんでした
gcはVMがやってくれるんでないの
143 :
134 :2008/04/09(水) 18:30:35
>>135 さん
半透明は使っていないのです。(スタンプ画像を自作している感じです。)
>>139 さん
>>140 さん
今のところ813Tでのみ報告を受けています。(少なくとも911SHでは発生しないです。)
2については問題の端末を当方で持っていないので不明です。
3については、生成と解放にカウンタつけてみましたがカウンタ値は一定でした。
なので解放漏れは無いはずです。(再度確認してみますが。。)
そろそろウザがられそうなのでこのあたりで切り上げます。
週末に813Tを購入して実機で確認してみます。
長々とありがとございました。
>>143 いや、うざがんないから。
情報交換するスレだから。最終的な情報隠したりとかする奴だけだよ、うざがられんのは。
とりあえず半透明使ってない(抜き色だけ)なら、createImageで生成せずに使いまわして、
自前で抜き転送って手もあるが
せっかくあるのに馬鹿らしいよなぁ
静的なImageの代わりに静的なint型配列作ってリソース画像の色情報を保持させておけばいいんじゃないかな? 色情報配列の内容が変化してたら困るから、実画面サイズぐらいの静的なint型配列も作っておいて、それに色を抜いたりなんたりした結果を渡すようにする。 後は、createRGBImage()に結果の配列を渡してImageを作るって方法なんだけどどうかな? 毎回、配列を作ってイメージの色情報を取得するっていうのを省くためなんだけど、変なこと言ってたらごめんよ。
Imageを作れる個数の制限がって話をしてるのに、何を変なこと言ってるんだ?
>>146 それが813Tで問題が起きる原因かって聞いてきただけで、解決するならなんでも構わないんじゃないの?
146は145へのレスだろJK
javaをバイナリで組めるようになったら多分なんでも実現できるよ
>>143 当てずっぽうで言ってみるけど……
java.lang.System#gc()でこまめにガベージコレクトさせてみるとか、
javax.microedition.lcdui.Graphics#drawRGB()使ってみるとかじゃだめかなあ。
質問者がいなくなったからもうこの話題は終わり。 何か言っても変なこと呼ばわりされるしね。 どうせまだ情報を隠しているんでしょう。
152 :
143 :2008/04/11(金) 13:53:49
>>151 さん
まだいます。。
毎日個別にレスしていると邪魔だと思ったので、週末にまとめて書くつもりでした。
なお本日813Tを購入したので試していますが、困ったことに再現していないです。。
153 :
143 :2008/04/11(金) 22:04:40
いまのところ当方で購入した813Tでは、やはり不具合は再現せず
まったく原因不明です。。(143の後、ユーザの方に詳しい状況を聞いて
再び試しましたが再現しませんでした。)
ひとまず当方が試験で使ったアプリのバイナリをそのままユーザの方に
提供して報告を待ちたいと思います。
>>150 さん
gcはこれでもかというくらい実行しているので問題ないと思います。
drawRGBで描画する方法も試しました。
同じ描画結果になりますがImageを一枚貼るのと違いパフォーマンスが悪く
当方のアプリで使用するには実用的ではありませんでした。
>>144 さん
drawRGBは内部で同じような処理をしているのだと思われます。
なので前述の理由と同じく実現はできるが。。といったところです。
>>145 さん
時間がなくて試せなかったので後日試してみます。
更新する場所としない場所を細かく切り分けることができれば
今より処理が早くなりそうです。
>>147 さん
おっしゃるとおりです。問題が解決できればなんでも良いのです。
しかしその問題が再現してくれませんでした。泣きそうです。
>>151 さん
ご迷惑おかけしました。
原因と解決策が分かったらまた書き込みますが、いまのところ再現性のない
不具合で、ユーザの方からの報告も当然任意なのであまり期待はしないで
ください。
みなさま、色々とありがとうございました。
゙()3´;)つ [別の箇所を疑ってみれ]
OpenAppliでブラウザっぽいのを作ろうとしているのですが、32KB以上のファイルにアクセスをすると エミュでは通るのですが実機ではtrhowされてしまいます。機種はW53Tです。 private HttpConnection hconnect; private InputStream in; hconnect = null; in = null; hconnect = (HttpConnection)Connector.open( url, Connector.READ, true ); in = hconnect.openInputStream(); の最後の行でthrowされてしまいます。32KB以上のファイルでも分割してDLすればいいじゃんくらいに思っていたのですが やっぱりOpenAppliの仕様上駄目なんでしょうか?
仕様嫁
どうせWIN機種でしか再生できないんだから
通信量規制なんて取っ払ってほしい
仕様糞過ぎるぜ
>>155 一回の通信許容量で言えばFlashLiteの方が高かったはず
もちろん実用レベルではないけど・;(`ε()゙
POSTも5KBまでなんだよな ホント糞仕様だよ
海外のMIDP端末は解放されててシェアウェアなMidletまであるのにな。 日本の糞な縛りときたら・・・。
willcomはほぼ自由。
その上通信毎に確認のダイアログ
通信ごとの確認はMIDPの仕様
ナンダッテ?
海外みたいにフリーウェアに活気があればなぁ フリーのiアプリの人気が端末の売り上げに影響するレベルになれば 他の2キャリアも真似して着いて来るはずなのに
確かに何でこんな人気無いんだろうな for(;;){if(人気<0){製作者逃げる;レベル--;人気--}} って感じか アプリゲットのランキングとか酷いことになってるし
いまいち盛り上がらない原因として個人的に思うのは 携帯向けフリーソフトの存在の分かりにくさ アプリゲットみたいなサイトも物凄く分かりにくい作りしてるし 個人サイトで配布されてるのなんて、各キャリアの公式ページ から行き着くのは至難の業
そもそも、ケータイキャリアが公式で囲い込む(そして課金手数料で潤う)システムで、 公式でないサイトはお呼びでないのは昔っからだし。
>公式で囲い込む(そして課金手数料で潤う)システム こんなことやっても手間の割に儲けにならないってのは日本はいつになったら学習するんだろうね。
塵も積もれば山となるで成功してる。 だから未だに継続してるわけで
本業のアプリ屋かゲーム開発者で勝手アプリ公開してる香具師いる? プロと比べてアマチュアのアプリって異様に技術レベル低いよな。 自演ばっかでまともなコミュニティー無い&ノイズ多すぎ(ワンキーとかばっか)で、 頑張って良いもの作っても埋もれそうなのが嫌なんだが・・・
iアプリなら公開してるな。 アレだと作者登録とか必要ないし匿名で配布できるから。
willcomも自由だな
俺が使ってる無料ホームページサイトがjadをアップできないんで、 オープンアプリとかは無理だった。 それにwillcomもOAPもサーバ側の設定いじらないとだめっしょ?
設定といっても別に大掛かりな事でもないけどね 借りたディレクトリに.htaccess置かせて貰える鯖ならいけるよ 無料のHPスペースなんかは対応してない所が殆どだね 趣味でやってる個人鯖ならメールでお願いすれば犯せてもらえるかも
犯して!
アプリ内にあるjpeg画像を データフォルダに任意の回数、または限りなくコピーできるような Sアプリを作る方法ってありませんか?
>>168 へたにコンシューマをやるよりは儲かりますな
>>176 ある、としか言いようが無い。
もっと調べて実際に組んでみて、それで出来なかったら
出来るだけ具体的に質問して頂戴。
携帯の課金って通話料と一緒に請求だから心理的障壁が低いんだよな
安いしね。むしろ安過ぎて業界的にはマズイ 開発者としては「この金額で文句言うな、悩むな、買え」と思う けど1ユーザとしては「こんなので300円も取るのかよ」なんて思う どこの途上国人だよ俺・・・
開発してると感覚にぶるが、1ユーザーは500円程度までしかコンテンツに金払いたくないのが基準らしいよ 占いサイトやちょっとした趣味のサイトに200円。 ちょっと奮発して300円。 あとは無料ゲームとか。 結構食い込むの大変なんだよな
開発はごく数名の少人数で数ヶ月規模というじゃないか 違法コピーされることも殆どないし、結構バランス取れてるんじゃないかね? 特にiアプリとかJavaベースだと輸出も楽々だろうし
181の言うように、大手が財布を独占してるからいまいち 大手にとってはバランスとれてるのかもな
>>182 iアプリだとDojaだから海外にもってくなら
作り直さないと駄目。
むしろ海外アプリならOAPとかWillcomでそのまま動くと思うw
>>184 そりゃ知っとるけど
BREWなんかよりよっぽど良いはず
現行のBREW端末って海外にも無いんじゃない?
186 :
185 :2008/04/16(水) 01:06:30
今ちょっと調べたらnokiaもBREW対応端末出してるのな 知らんかった・;(`ε()゙
BREW4のは知らんけど、BREW2.1あたりのは 海外のアプリを国内に移植した事あるけど、 結局問題になるのはKDDIの検証項目だなw 海外のJavaを国内に持ってくるのでも、 向こうの端末は画面サイズとかバラバラだったりして 結構面倒だったりした覚えはある。
OAPは画像が240pxまでだったり変な制限が色々あるので まともに動かないことのほうが多いはず。3D等も未対応。 海外アプリだとNokiaの拡張APIを使ってることもある。 M3GとかOpenGLも実装依存が多いしな。
そもそも日本の端末はjarが1M以内っていう制限があるから海外のはインストールすら出来ないのがあるな。
俺がやった移植のでソース見た感じだと、 海外のでもDocomoの503みたいな画面サイズのもあったっぽいけどな。 そういや、確かにNokiaの拡張とかあったw 機種毎にフォルダ分けてたりして、 海外の人も多機種対応で苦労してるんだと思った。
191 :
176 :2008/04/16(水) 12:02:40
>>178 あるんですか。
資料やサイトをいくら探してもアプリ内の画像を本体に
コピーするAPIがないので、何を使えば良いか教えてもらえませんか?
192 :
デフォルトの名無しさん :2008/04/16(水) 13:29:48
それだけじゃ分かんないと思う。エラーコンソールの出力をkwsk エミュレータのオプションが原因のような気がするが。 > m(_ _)m パソ通時代のAAかよ、懐かしいな。初心者・・・
MIDP 標準機能程度しか使わないアプリなので 一つの jar で機種判別しながら細かい差異を吸収したいのですが 機種判別の方法はありますか?
System.getProperty("microedition.platform") とか・・・
196 :
192 :2008/04/17(木) 11:51:13
すいません。 自己解決しました。 エミュレータ内に3Dのデモがあり、動作確認できたので、 こっちで勉強しようと思います。 お騒がせしました。
197 :
194 :2008/04/17(木) 12:57:56
>>195 仕事中なので試せてないですけど、それでいけそうです。
ありがとうございます。
>>197 古い機種だとj2meしか返って来ないけどね
最近javaを始めたばかりのものです。。。 WTK22のエミュレータのサイズを240*240に変えたいのですが 参考になる資料など置いてある場所をご存知のかた、教えてください。。。 なんかデフォルトがやけにでかいんですよね。。。
240*268が標準サイズだから
>>200 これはお恥ずかしい。。。
エミュレータいじってたら元に戻せなくなったのでインストールし直しました
240*268から240*240にはどうしたらできますか?
なんかちゃんといじらないと、クラスファイル作るときに変な影響出るんですね。。。
読み込んだ画像が表示されなくてビックリしましたよ
DefaultColorPhoneを例にすると wtklib\devices\DefaultColorPhone にある DefaultColorPhone.properties の screenPaintableRegion.height を240に書き換える ちなみにデフォは292だった気がするが
>>202 レスありがとうございます
書き換えてみたところ、しっかり設定されました
まだどんなゲームを作ろうとかいう段階ではありませんが
とりあえずRPG用のマップチップを読み込んで分解して
自由に配列できるようにするところまでいきたいと思います
また詰まったらこちらにお邪魔するかもしれません。。。
TiledLayerがあるだろ。javadocも読んどけ
すいません質問です。。。 ソフトバンクのJavaアプリを作ろうと思って、 作成したものを某どこぞのテストサーバにアップして 実機でダウンロード確認したんですが、 終了ボタンを押すとエラーが発生して終了するんです。 MEXAのエミュレーター上で電源キーを押しても何もおこらないので、 pauseの時点で止まっていたり、落ちている気がします。。。 全然気付かずに色々と作業したあとなので、ソースもかなり大きなものになっていて、いつからそうなってしまったのかわかりません。。。 誰か心当たりのある人はいらっしゃいますでしょうか?
pauseApp()に何も記述しないようにすればいいんじゃない?
MIDPの仕様でもpauseApp()などは速やかに制御もどせってことになってる。
エミュレータのコンソールに例外が出てないんだったら マルチスレッドのタイミングの問題かも・・・ 終了時に開放したメモリをどこかで参照してる可能性が高い
209 :
デフォルトの名無しさん :2008/04/23(水) 10:50:57
すいません。 助けてください。 Sアプリでspf(元はMIDI)とmmf(元はwave)を同時に鳴らそうとプログラムしたのですが、何故か鳴りません。 例えばspfだけ、またはmmfだけなら鳴るのですが、両方を鳴らそうとすると駄目です。 正確には、spfを一度鳴らすと、その後、mmfだけを鳴らそうとしてもなりません。 また機種によっては、spfだけもしくはmmfだけでも鳴らないものもあります。 ネットで検索したら、 「spfファイルとmmfファイル同時再生に対応する端末は、SoftBankの開発サイトの端末仕様ドキュメントで、「サウンドメディアの多重再生:4channel SMAF/Phrase + 1channel SMAF/Audio」って書いてる機種だけ」 とありました。 ソフトバンクの開発サイトは登録しないと仕様が見れないようになっていて、先日、手続きをしたのですがまだ返事が来ません。 ですので、資料を見ることも出来ないのです。 これって機種依存なんでしょうか? どなたか、分かる方がいらっしゃいましたら、お願いいたします。
今、個人会員で登録してきたけどメール来ただけで すぐに資料見れたよ? ちょっと見た感じ、サウンドメディアの多重再生の所が 機械によって違ってたみたいだから 機種依存だと考えるのが普通だと思う ・;(`ε()゙
211 :
デフォルトの名無しさん :2008/04/23(水) 13:47:12
>210 情報ありがとうございます。 こちらはメールがまだこないです。 もう一度、個人で登録しなおしてみますね。
このスレたまにフリーズするね・;(`ε()゙
>>209 前に同じことをやろうとして、それできなかった。
ただし、midiとwavならできた。
BREWなんかでもあるけど、同時再生できる組み合わせが 機種によって違うからだな・;(`ε()゙
ネオポケでSEを再生するたびにBGMが初めから再生される現象を思い出した KCP+端末はマルチスレッド(?)らしいから、うまく同時再生してくれそうだ
マルチタスクだろうが音源の仕様以上のことは出来ないと思うがな
217 :
デフォルトの名無しさん :2008/05/02(金) 19:43:37
218 :
デフォルトの名無しさん :2008/05/05(月) 23:09:56
GameCanvasとFormは同時使用できない?
同時は無理 切り替えは随時可能
221 :
デフォルトの名無しさん :2008/05/06(火) 12:05:11
J2ME Wireless toolkit のエミュレータで FileSystemRegistry.listRoots() を呼び出すとエミュレータ画面に xxx はローカルファイルシステムから読み込もうとしています。ファイルを読み込んでもよろしいですか? という表示が出て、コンソール側には ストレージのルート DefaultColorPhone で実行 警告: ネットワークなどは commandAction() ハンドラとは別のスレッドで稼動して、デッドロックでオペレーションがロックする可能性を回避する必要があります。 と出力されるのですが、この時にエミュレータが終話キーまで含めて無反応になってしまいます。 実機の 702NK II, 705NK では似たような画面が表示されますが選択すれば進めますし、 au のオープンアプリプレイヤーでは結果こそ空っぽですが警告画面自体がでないので エミュレータ固有の問題のようなのですが、解決策はありますか?
Wireless Toolkit以外でもSunのMIDPを使っている 機種では(国内機にはないはず)デッドロックする可能性があります。 解決策は警告文に書いてある通りです。
223 :
221 :2008/05/06(火) 23:34:51
>>222 レスありがとうございます。
警告文の意味がわからず少し悩んだのですが、
commandAction() ハンドラ(やキー/ペイントハンドラ等)でネットワーク(やローカルファイルシステム)を使用すると
デッドロックする可能性があります。
そういった操作は別のスレッドで稼動して、デッドロックする可能性を回避する必要があります。
という意味なのですね。
別スレッドに処理をわけたところ上手く行きました。
ありがとうございました。
912SH向けの待ち受けS!アプリを作ろうとしてるのですが、ResidnetMIDIlet を使おうとうると、セキュリティエラーがでて起動すらしてくれません。 Webを探し回っても解決策見つからず、どうすればいいのか教えてください。 エミュレータで実行すると、次のエラーが出ます。 java.lang.SecurityException: com.j_phone.midlet.ResidentMIDlet was denied java.lang.SecurityException: com.j_phone.midlet.ResidentMIDlet was denied at com.jblend.security.midp20.SecurityManagerImpl.checkPermission(+185) at com.j_phone.midlet.ResidentMIDlet.<init>(+15) at sample.OshiraseResidentMIDlet.<init>(+4) at java.lang.Class.runCustomCode(+0) at javax.microedition.midlet.MIDlet.createMIDletInstance(+22) at javax.microedition.midlet.MIDlet.main(+105) jadファイルには次を記述してます。 MIDxlet-API: MEXA MIDxlet-Resident: S MIDlet-Application-Security: Y MIDlet-Permissions: com.j_phone.midlet.ResidentMIDlet,com.j-phone.system.DeviceControl.read
CLDCとかMIDPのバージョンをjadで指定してみれ
>225 Mnifestフィルにあった次の記述を、jadファイルにコピーしました。 MicroEdition-Configuration: CLDC-1.1 MicroEdition-Profile: MIDP-2.0 あと、念のため次もjadファイルに追記しました。 MIDlet-OCL: JSCL-1.2.2 それでも、まったく同じエラーで起動できません。 ほかに何かないものでしょうか。
MicroEdition-Configuration: CLDC-1.1 MicroEdition-Profile: MIDP-2.0 上記2つはjadファイルには必要ない。あっても問題ないけど。 MIDP2.0では ×MIDlet-OCL: JSCL-1.2.2 〇MIDxlet-API: JSCL-1.2.2
MIMEじゃねえの
>>224 jadファイルには
MIDlet-Permissions: com.j_phone.midlet.ResidentMIDlet
MIDxlet-API: JSCL-1.2.2
MIDxlet-Resident: S
を追加する。
MEXAエミュレータのプロジェクト→端末設定→MEXAオプションのUnit1+Unit2の所にチェックを入れてるか?
アプリのインストール時にTrustedを選択しているか?
思いつくのはこれくらいなんだが…
231 :
224 :2008/05/19(月) 20:50:40
みなさんのアドバイスをもとに試行錯誤して、なんとか待ち受けアプリを エミュレータで起動することができました。 問題は、MIDlet-Permissions に「com.j-phone.system.DeviceControl.read」を 入れていたことでした。 MIDlet-Permissionsには、カンマ区切りで複数のセキュリティパスが書けると 思ってたのですが、ダメなのかも知れません。 とにかく、次のjadファイルで、待ち受けアプリ起動しました。 MIDxlet-API: MEXA MIDxlet-Resident: S MIDlet-Permissions: com.j_phone.midlet.ResidentMIDlet ※MicroEdition-Configuration: CLDC-1.1 MicroEdition-Profile: MIDP-2.0 MIDlet-Application-Security: Y の3つは無くても軌道には至りました。 あと、>230 のアドバイスのように、インストール時には、trustedでインストール する必要もありました。 とにかく解決しました。ありがとうございました。
232 :
デフォルトの名無しさん :2008/05/20(火) 16:02:27
すみません。 初心者です。教えてください。 S!アプリではBASE64って使えないんですか? JavaDocの中に見つからなかったんですが・・・
sunのRI使ってればcom.sun.midp.io.Base64が使えないわけでもない
javax.microedition.lcdui.game.Layerのコンストラクタをパッケージプライベートからpublicに変えてほしいよね。 クラス自体はpublicなんだし。 独自のレイヤ機能を実装したい場合にはSpriteはいらない機能が多い。
235 :
232 :2008/05/21(水) 18:22:32
>233 ありがとうございます。 BASE64のロジックを JAVAでガリガリ書いてあるソースをひろってきて、 コピペすることで解決しますた。
まあbase64のエンコード・デコードくらい仕様に忠実に実装してもそんなサイズじゃないよ。
シャープのVGA機解像度上げるとオフスクリーンの取れるサイズが減るって 糞仕様どうにかなんねえのかなあ
RAMケチってるからどうにもならんだろ
239 :
デフォルトの名無しさん :2008/05/27(火) 19:32:09
812SHでweb(http)からテキストを取得しようとしています。 エミュレータでは動作するのですが、実機で実行すると java.lang.SecurityException: restricted url. と出て接続できません。 jadは MicroEdition-Profile: MIDP-2.0 MIDxlet-API: JSCL-1.2.2 MIDlet-Permissions: javax.microedition.io.Connector.http MIDlet-Network: Y MIDlet-Application-Security: Y にしています。 googleで検索してみても同様の状況は見つからず困っています。 対処方法をご存じの方教えてください。
S!アプリのMIDP2.0対応端末編part6を見て思ったのですが、ファイルサポートの対応プレイヤーでPNGがMIDP2.0/JSR135に対応しておらず、MEXA/JSCLに対応している端末があります。 その端末ではImage.createImage()でPNG画像を生成できないと考えて、MEXA/JSCLのPngDataを利用すべきなんでしょうか?
241 :
デフォルトの名無しさん :2008/05/29(木) 01:37:12
すみません、初心者ですが教えてください 開発環境 jdk1.5.0_14 wtk2.5.2 V-appli_SDK_121 で、Vodafone向けのVアプリを作ろうとテスト用のソースを作って以下のようにビルドしたら jarファイル作成時に次のようなエラーが出ました。 set CLASSPATH=C:\WTK2.5.2\lib\midpapi10.jar;C:\V-appli_SDK_121\lib\stubclasses.zip javac -source 1.3 -target 1.3 -encoding SJIS -g:none -d tmpclass -bootclasspath %CLASSPATH% test.java preverify -classpath %CLASSPATH% -d classes tmpclass jar cvfm test.jar test.mf -C classes . エラー java.io.IOException: invalid header field name: ?>>>?MIDlet-Name ... すみませんがこのエラーの原因と対処法がわかる方がいたら教えてください。 よろしくお願いします。 以下mfファイルの記述 MIDlet-Name: test MIDlet-Version: 1.0.0 MIDlet-Data-Size: 10000 MIDlet-Application-Range: 0,0 MicroEdition-Configuration: CLDC-1.0 MicroEdition-Profile: MIDP-1.0 MIDlet-1: test,,test
>>241 >MIDlet-Name
ココ。どうせShiftJISでベタベタと書いたんだろう?
243 :
デフォルトの名無しさん :2008/05/29(木) 19:16:52
>>242 無事解決しました
ありがとうございます。
S!アプリについての質問なんだけど
>>244 ミスった
S!アプリについてなんだが
ブラウザ起動時のMIDlet-Versionは完全一致じゃなきゃ駄目なんだろうか?
具体的には
MIDlet-Version: 1.xとか2.xぐらいの大まかな分け方でアプリとHTMLを切り分けたい
初歩的な質問ですみません。。。 pngの透過についてですが、以下のように32*32のマップチップを3つ横に並べた画像の読み込みです for(i=0;i<3;i++){ image[i]=Image.createImage(32,32); image[i].getGraphics().drawImage(imgPic,-32*(i%3),0,Graphics.LEFT|Graphics.TOP); } こんな感じのプログラムなんですが、表示させてみると透過に設定した部分が白く表示されてしまいます おそらく32*32で準備した後にのっけてるからだと解釈していますが。。。 どなたか解決策をご教授していただけると助かります
>246 Image.createImage(32,32)によって素で白いImageが作られて、 そこに元が透過PNGであるimgPicというImageを描画したら、 透過部分に白が透けて見えるって状況だよね。 正常な動作じゃん。何を質問したいんだい?
俺は透過なんて機種依存強そうで使った事無いけど 環境ぐらい書いてみたらどうだろう?
249 :
246 :2008/05/31(土) 02:21:43
>>247 あ、かなり説明不足でした。。。
>>246 のプログラムでいうとimage[2]に格納した画像(キャラ)に透過が設定されていて、
image[0](床)の上にキャラを表示させたいということです。。。
>>247 透過なしでRPGなどのキャラが動かせるのでしょうか…
まだエミュで実行させてるだけの段階ですが、
Vistaで、Wireless Toolkit 2.5.2 for CLDCを使っています
Graphicsがgだとすれば for(i=0;i<3;i++){ g.drawImage(image[i],0,0,g.LEFT|g.TOP); } じゃないの?
251 :
247 :2008/05/31(土) 04:53:39
>249=>246
>
>>246 のプログラムでいうとimage[2]に格納した画像(キャラ)に透過が設定されていて
残念だがそうはならん。
元が透過PNGのImage(ここではimgPicか)は、
他のImage(やCanvas)に描画する時点で透過が反映されるが、
描画されたImage(ここではimage[n])は透過情報を持っていない。
また、image[n]に対して「白を透過させろ」なんて設定するメソッドはない。
>249で思ってることをやるには、例えば、
image[0](床)に対して、imgPic上の目的の領域を直接描画する。
多分、こういうことを聞きたいんだよな?w
252 :
246 :2008/05/31(土) 13:15:48
>>251 レスありがとうございます
やはりこの方法では透過は無理なようですね。。。
ググってみたら、画像の一部を表示するdrawRegion()というものがあるのですね
こいつを使って直接描画させてみようと思います
254 :
デフォルトの名無しさん :2008/06/01(日) 13:27:33
作成済みのEZアプリを携帯に入れたいんですが webにアップする以外の方法はありませんか
どこでもセーブ対応のjavaエミュレータがあればいいのに
StorageConnection sc = (StorageConnection)Connector.open(path); OutputStream os = sc.openOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os); として、書き込み処理を終えた後にすべてをclose()するものなのでしょうか? それとも一つをclose()すればいいですか?
不要ならば開放すると良い
258 :
256 :2008/06/02(月) 09:51:08
レスどもです。 ためしにStorageConnectionだけ開放しても、SDカードのアイコンの点滅が止まりませんでした。 やはり不要になったら開放しなくては駄目ですね。
携帯javaならStringオブジェクトだろうと使い終わったら nullでも代入して初期化してやるのが良いかもしんないよ
レコードストアの内容ってMIDlet削除したら消えるんですよね アプリをダウンロードし直してもハイスコアとか保持できないですか?
>>260 アプリがマスター、RSがスレーブ
と考えればそんな質問は出てこない筈
web鯖とかSDとか外に出しな
Other documentsあたりに置きっぱにしとくとマズいんだっけ?
東芝・;(`ε()゙
大きな画像をループでスクロールさせたい場合は分割したほうがいいですか? クリッピングがまともな実装であれば、そのまま画像を並べて描画したほうが速い と思いますが、特定の機種で遅くなったりしないでしょうか
>>264 機種別の仕様が書いてあるpdfに高速で描画可能なImageの最大サイズが書いてあるよ
それ参考にして最適な画像サイズを割り出せば
>>265 >>264 じゃ無いけど、そんな細かい仕様まで公表してるメーカーってあるの?
それともそのpdfは一般人には見れない代物?
>264-266 まずソフバン端末なのかau端末なのか明確にしてから話そうや
268 :
デフォルトの名無しさん :2008/06/06(金) 19:36:55
ユーザシェアからして分けた方がよくないかそろそろ
>>268 プログラマのシェアで考えるべきだろう。
スレを分けると不便になりそう。 ソフバンもauもウィルコムも、CLDC+MIDP(+キャリア拡張)という形には変わりないから、 共通で参考になる情報が分散したり、逆に同じ質問があっちでもこっちでも…というのはうまくない。 質問者も回答者も、キャリア依存・機種依存の問題だなと思ったら、 そこをまず確認するように気をつければ、このスレ1本で問題ないと思う。 例えば>264には「ソフバン?」「例えばどの機種?」とか一言投げてやればいいし。
そもそも日本がMIDPで統一されてないのは問題だな
このスレには開発環境もろくに書かずに 皆が自分の思考を共有しているかの様な前提で 質問する人が多いから 次のテンプレには書き込みには対象のキャリアを 明示するよう一言付け加えてはどうだろう
273 :
デフォルトの名無しさん :2008/06/07(土) 23:39:51
SBなのですが、大きいデータなどを読み込む時に 「ローディング中」みたくアニメーションさせる方法って具体的にどうやっているんでしょうか? 昔からゲーム作りでずっと疑問になっていてでそういうことをしているサンプルコードも見たことなかったものですから お願いします
>>273 データを読み込むスレッドと「ローディング中」をアニメーションさせるスレッドの二つを用意すれば?
>273 このスレで、ダウンロード中のプログレスバーの表示はどうやるかって話が 何度か出たから過去ログ探して読んでみれ。それで答えになる。
>>275 昔の端末でそれやると、アニメの方コマ送りになって使い物にならなかったが
今のはそんなにきれいに動く?
>>277 ローディングを示すアニメーションを滑らかにする必然性ってあるの?
アプリが止まっているわけじゃないとユーザーに認識させられればOKだろ
滑らかに動くならそのほうがいいだろ。
>>278 のUIは、悪くはないけど良くもないって感じのものなんだろうな。
簡単にやるなら、絵を100枚読む場合、1枚読むごとにアニメを更新するって手もあるな。 ちょっとカクカクするけど、そこがまた「読み込んでるって感じ」が出る
プログレスバー更新時はローディング処理をスリープさせるってのはどうだろう ローディング自体遅くなるだろうけど綺麗にアニメーションするはず あと、バーは画像よりdrawLineの方が軽そう
ひどい話だ
本末転倒
なにか前にも見た流れが・・
>>282-283 携帯程度の処理能力に無理して複数スレッド同時処理させるよか
プログレスバー描画の更新の束の間の間だけロード処理を止めた方が
効率が良い場合も往々にしてあるのだよ
>>285 そもそもプリエンプティブにスレッド処理されてねーから、描画スレッドの駆動中だけ
転送スレッド止めても意味ねーのよ。
>>280 の方が余程綺麗に動く。
もっとそれらしく見せるなら、各段階の初期化の所要時間を実測してバーの進捗に
反映させる。 機種毎にイメージが遅かったりサウンドが遅かったりするから、
デフォルト値固定でなく、学習するようにすれば尚可。
278 のように要点押さえて設計した方がよいと思うがね
ローディング画面が滑らかだとしても、ほとんどの人はろくに見ていないという、、、
フリーズしていないことさえわかればいいものだからな
ローディングの話でここまで盛り上がるとは・;(`ε()゙
ていうか前にも同じ流れがあったっちゅーねん・;(`ε()゙
だったらそれを貼れば良かっただろアホか・;(`ε()゙
バーじゃなくてアニメgif置いとけばいいじゃんwwwwwwwwwwwwwwwwwww
>>293 お!その手があったか。
お前超馬鹿じゃね?
別にシステムじゃない分けて正確な進捗を描画する必要もないし オペレーティング システムでもどころかそまそも未来のことを" 正確"に把握するなんて不可能な訳で、適当な落とし所で 割りきれば良い話だよな 読み込み処理を分割して、処理済み/分割数で1/分割数読み込む毎に 描画を更新するのがセオリーじゃね? 別にバーは時間に対しての割合である必要もないし、 読み込んだ数に対する割合なら嘘にもならんし、 滑らかにする必要もないし、 読み込み単位でAPIでブロックされるから求める制度にも限界あるし、 フリーズしてない事と待時間の目安が提供出来れば十分だし。
裏で先読みロードを繰り返す某RPGの様な 待ち時間無しのシステムを作れば良い 携帯の処理能力と300k制限の中でな・;(`ε()゙
>>295 リアル鬼ごっこ並みの日本語だが最後の二行は理解した。
298 :
295 :2008/06/11(水) 08:08:02
>>296 携帯の処理能力よりも、300k制限よりもヒープが足んねえので却下
win mobile機でJBlend積んでたら余裕だな。 レジストリいじればヒープ9Mまで使える。
>>296 それドラクエだったっけ?
WiiやX箱とかだとLoading画面に制約があるとか聞いたな。
3秒以内に画面の一部を更新しろとか。
でもそんなの関係ねえ!でもそんなの関係ねえ! おっぱっぴー・;(`ε()゙
WiiとかX箱みたいなコンシュマー機はハードの応答速度にバラつきがほとんどない (かまたは一定にできる仕組みがある)からいくらでも対応できるのよ・;(`ε()゙
>>302 多分違うよ
>>296 が言ってるのはM$のダンジョンシージに違いない
あのゲームは例えマルチプレイ時でも、
ゲーム起動時以外はロードが存在しない
別にFF7だってドラクエ7だって先読み満載じゃねーか
ローディングが画面として存在するかしないかの話だろ 流れ読めよ・;(`ε()゙
>>306 は先の先。いわゆる400レス目あたりの話をしているんだよ
自作javaアプレットのオープンアプリへの移植を考えてるんだけど floatとかの実数型を使いまくってる状況です やっぱ重いだろうか? float多用したACT/STGの類の開発経験が有る方、 体感速度とかどんな感じでした?
そんなもん気にすんな。
突然ですが質問させてください。。。 キーイベントについてです。 keyPressdメソッドと、keyRepeatedメソッドの処理を全く同じにしたところ、 キーを押しっぱなしにしたときのキャラの移動が、押した瞬間に動いたあと、一呼吸おいて移動します。。。 「→、、→→→→→」 イメージとしてはこんな感じでしょうか。。。 この移動を滑らかにするには、どういう方法で対処できるのでしょうか。。。
>309 1フレーム描画に何千回も計算するような箇所は固定小数点に置き換えたほうがいい。 ベクトルの正規化を多用する場合もsqrtの逆数は自作すべき。 float精度のニュートンラプソン法の初期値を一発で求めるトリッキーな方法がある。
>>312 いえ、使ってないと思います。。。
なにせjavaを始めたばかりで無知なもので。。。
いろいろとググってみて、分からなかったらまた質問させていただきます。
即レスサンクスでした。
>>311 keyRepeaedの意味はわかってるかな?
押しっぱなしにされたとき、一定間隔で呼ばれるものだ。
2chに書き込む時、キーボードのキーを押しっぱなしにすると
「あ、、あああああああああ」
って感じになるだろ?
同じもんだ。
keyPressedで押されたというフラグを立て、keyReleased(Repeatedにあらず)でフラグを解除。
という処理だけつくり、実際にキャラを動かすのはゲームスレッドで行なう。
ゲームスレッドでは、時間で定期的に処理を進める
GameCancas#getKeyStates を使うのが楽だと思う ゲームキーしか取得できないが。 Softbank専用で数字キーとかの状態を調べたかったらDeviceControl使えばいい。
DeviceControlってソフトキーも取得できるけど、端末によって左右が違ったりするの?
318 :
309 :2008/06/16(月) 01:05:48
>>313 やっぱ置き換えた方がいいよね
実機である程度の体感速度が得られれば良いんだけど
もう面倒くさいから実数型のままで移植してみる
オープンアプリ対応機って今のところ速度差無さそうだしな ソフバンも3Gになってからは、解像度差による描画レート以外そんな変わんないよな? 海外だとMIDP2.0/CLDC1.1でも凄いスペックのがある 画面128x96とかヒープが512kとか、そんなんに実数演算させんなw
機種ごとに差がないんだから、とりあえず実数で組んでみて速度確かめたらいんじゃね? 2行目以降は、「ところでよ」って話で確かに分からんな。すまん
SoftBankでタッチパネル対応機種の一覧ってありますか? 独自APIじゃなくてpointerPressed()とかで座標を拾えるんでしょうか
ヒープが足らないって落ちじゃないだろうな?
すみませんが、エミュだと試せないので、 FEPControlについて教えて下さい。 初期表示される文字列を、 クリアキーで全て削除して、 さらにクリアキーを押した場合は、 getInputText()から何が戻ってくるのでしょうか? String str = "テスト"; FEPControl fc = FEPControl.getDefaultFEPControl(); str = fc.getInputText(str,TextField.ANY,100,false);
>>322 SoftBankでタッチパネル対応機種なんてなかったと思うけど・・・(Xシリーズ除く)。
Vodaの時代にも無かった気がする。
Jの時代にはパイオニアが出してた気がする。
うん。適当でごめん。
327 :
311 :2008/06/17(火) 23:40:26
>>315 亀ですいません。。。
なるほど、そういう方法があるんですね!
キーが押されて離されてなかったら、押しっぱなしということですか
ありがとうございました!
エミュと実機ではキーの反応・動作が大分違う場合があるから気をつけるんだ
>>325 P5,P6で、null がかえってきた記憶がある。
はじめっから null が来ても "" が来てもおkなように作っときゃ問題ないけどね。
330 :
325 :2008/06/18(水) 13:01:34
>>329 レスありがとうございます。
""とnullの処理を入れて、3Gの実機を持っている人に試してもらったところ、
端末によって挙動が違うようでした。
・初期表示の文字が全部消えると、クリアキーは無効。文字入力処理は続行してます。
・クリアキーでFEPの入力画面が消え、getInputText()から戻って来ない。文字入力も出来ない。
2番目はハング状態のようです。getInputText()の引数で回避できるのでしょうか?orz
331 :
325 :2008/06/18(水) 14:05:08
自己レスです、解決しました。 getInputText()で、クリアキーを押下した際に、 RuntimeException が発生する事が分かりました。 これを、catchしてなかったのが原因のようです。 お騒がせしました。
>325 解決してるようだけど、自分が知ってることを書いてみる。 P5のアプリを作ってた頃の調査結果。 FEP起動後、編集操作中にユーザーが[取消]を押すと 「編集内容を取り消すか? YES/NO」のダイアログが出る。 そこでYES(編集取消)を押すとFEPは例外エラーを発生して終了する。 クリアキー押下でも何でも、とにかく編集を中断したら例外エラーが出る。 従ってFEP起動処理はtry-catchでくくるようにする。 ついでに、編集確定でFEP終了したのか、キャンセル操作で終了したのか、 フラグを立てておくとその後の処理で役に立つかも。
333 :
325 :2008/06/19(木) 18:39:37
>>332 javadocの getInputText()には、
IllegalArgumentException の記述しかなくて、
RuntimeException が発生していたとは、なかなか気が付きませんでした。
検索しても情報が少なく orz
>とにかく編集を中断したら例外エラーが出る。
>フラグを立てておくとその後の処理で役に立つかも。
との事なので、FEP起動処理はtry-catchでくくり、
キャンセルされたら、元の文字列に戻すようにしました。
どうもありがとうございました。
335 :
323 :2008/06/20(金) 02:55:19
>>334 やはりOtherDocumetだと暗号化は必須でしたか。
リソースの取得方法を再度検討してみます。
ご返答ありがとうございました。
Dojaの話で悪いが、某◯貝獸物語のリソースがSD-BindingでJARだったから、普通に解凍して取り出しが出来た。SD-Bindingはピュア バイナリぽいね。 必要があれば暗号化かければ良いけど、単純なジャミングならInputStreamとOutputStream辺りを継承して、上位と下位の4bitを入れ換えて取り扱うStreamクラスを作るのが楽なんじゃないかな。
Dojaなら専用スレあるだろ....
>>337 上の話は余談で下の話が実際言いたかったことじゃないの?
Sアプリのレコードストアが3Mにアップしたね
それに引き換え32kbの
ソフトバンクの動向とか見てると 自由度の極端に低いauの糞仕様も 新OSの普及と共に緩和されそうだね
OS?
国内でも流行り出したWindowsMobileとか 新OSのAndroidの事を指してるんでしょ多分 どっちもjava動くし実現度・自由度だって高いはず
AndroidはOSじゃないし 、WMはスマートフォンが主だから活躍の場が違うと思う 普通に住み分けがされるだけじゃないかな
Androidは開発環境がJava SE5.0+αだからME関係ないな。 スマートフォンにはCLDC+MIDPじゃなくてCDC+PP積んでほしい。できればAGUIも欲しいが。
Java SEのライブラリは使えないよ 開発環境やコンパイラを流用して最後に実行コードをDalvik用に変換するだけ ずるいと言えばずるい
質問があるんですが… WTKのfillTriangle()はJavaSEのawtと同じ仕様なんですが MEXAエミュレータでは右下方向に1pixel拡大されるようです 手持ちの実機でも同様でした これはSoftBank共通仕様と考えていいんでしょうか?
351 :
350 :2008/06/27(金) 02:22:50
すみません。自己解決しました WTKのエミュレータでは隣接する三角形のエッジを共有せず、MEXAは共有する仕様のようで どちらもMIDPの実装としては有りのようです 両方に対応するため、起動時にテスト描画してエッジの色を調べることにしました
アプリゲットが2G対応を2007年10月末に終了させていたことに、 今更ながら気づいたぜ。 これって、 もはや一般クリエータは2G端末(P4,P5,P6)向け配信を (既存アプリ含め)一切できないってことだよね?
354 :
352 :2008/06/28(土) 02:38:17
アプリLiveもとっくに終わってるものだと思ってたけど、 一応ゲームチャンネルとしてまだ残ってたのね、、thx
最近DocomoのAPIを分けるやり方が一番賢い気がしてきた 無駄に制限だらけのauとSoftbankなんて潰れてしまえ・;(`ε()゙
海外MIDP端末とwillcomは自由だぞ
S!アプリを作っているのですが、703SHにてOutOfErrorが出てしまいます。 OutOfErrorなのでリソースを削るのが定石だと思うのですが、 実機でRuntime#freeMemory()とRuntime#totalMemory()を使ってメモリ状況をモニタリングしていると、 突然freeMemory()が増える(使用メモリが減る)タイミングがあります。 起動時に大きくリソースを読み込み、4MBのヒープの3.7MB前後をしばらく推移し、 その状態でリソースを読み替えの場面を行き来するとOutOfErrorが起きやすいのですが、 freeMemory()が増えたあとは2Mあたりを推移し、上記場面でのOutOfErrorは今現在発生していません。 freeMemory()が増えるタイミングまちまちで、大きくリソースを読み込んだ後1・2分程放置することで基本的になります。 この時に起きているであろう解放を明示的に起こす方法はありますでしょうか? 読み込み時は1ファイル毎にSystem.gc()を読んでおりますが、効果はありませんでした。 MEXA Emulator及び905SHでは、大きくリソースを読み込んだ後から既に2Mあたりを推移すると言う状況です。 何かご存知でありましたらご教授をお願い致します。
358 :
357 :2008/06/30(月) 21:01:04
MicroEdition-Profile: MIDP-2.0 MicroEdition-Configuration: CLDC-1.1 MIDxlet-API: JSCL-1.2.2 を対象に開発を行っています。 他不足情報があるかもしれませんが、恐れ入りますがよろしくお願い致します。
GCの実装の問題だからどうしようもないと思うんだけど。 リソースのサイズ減らすしかないんじゃない?
んだね あとは自分の実装を見直してみること gc呼んでも全く効果なしなら別に原因があるとも考えられる
1ファイル毎など生ぬるい。毎フレームだ。
そんなことしてもだいたいキューに溜められるだけなんだが
何作ってるか知らんが一度に数メガ単位のリソース読むなんて非常識
待ち受けとかノベル系のアプリ作っててふと思ったのですが、長時間キー操作がないとアプリの処理速度って遅くなりません? で、関係ないキーとか押してみるとまた速度が元に戻る…の繰り返し。 これを解決するには一定時間ごとにアプリ側に制御を渡すような処理が必要なんでしょうか?
電池馬鹿食いの待ち受けになりそうだなw
ノベルゲームってキー待ちじゃないの 入力がない間に処理が遅くなるってわかるの?
>>366 キャラがアニメーションしてるとかじゃねーの?
携帯電話の本質から考えると当然の仕様じゃないかと思う 参考までに現行の一般的な携帯の初期設定だと、 数十秒操作がないとバックライトも消えて低電力モードに移る しかし勝手アプリでその辺りの制御をできるとは考えにくい 素人に電池馬鹿食いアプリ作られて困るのは各キャリアだからね
? バックライトの制御くらい普通にできるんじゃないの?
実装はどうあれ、10ms以上ならsleep()入れてくれさえすりゃいいんだが なんでループぶん回すかな、みんな…
>>369 バックライトやバイブの制御などは簡単に出来るのですが、それでアプリ側に処理を移したつもりでも、描画速度がガタ落ちしてるんですよね。
ループで延々と描画を続けるアプリはみんなこんな感じなのかな…
>>371 繰り返す処理の内容にもよるから一概には言えない
可変FPSにして余った分sleepしてる
>>369 少し言い方悪かったね
分かりやすく言うとCPUの省電力動作の移行に関する操作までは
できないということ
でも省電力移行する程の期間で出力が必要な実装なんて
個人的にはあまり聞いたことが無い
375 :
371 :2008/07/06(日) 14:30:40
>>372 シューティングゲームを作っているんですが、whileでぶん回しながら
自機、敵機の描画し、Thread.sleep(50)でウェイトをかけています。
通常ゲーム中のキー操作がある場合は速度が遅くなる事はないのですが、
ステージ間のアニメーション(敵機が決められた軌道上をスクロールする)
が長い箇所の場合20秒程あるんです。
要するにユーザがキー操作をせず描画処理だけが続く時間が最大20秒ほど
あるという事です。で、この時に徐々に速度が遅くなっていき、最後らへんには
見るも無残な速度になってしまいます。
途中、関係のないキーを押下してみたりしてアプリ側に処理が移ると速度が
元に戻ります。
>>375 上の人も言ってるけど
ユーザビリティ的に考慮する必要は無いと思うよ
携帯のゲームやったことあるなら分かるでそ?
377 :
371 :2008/07/06(日) 18:09:29
>>376 なるほど…。
という事は勝手アプリを作る上で、数十秒程度のアニメーションは難しいという事ですよね。
色々ありがとうございました!
軽いモーションならまだしも、数十秒もあるアニメーションならムービーにして再生したほうが早いんじゃねえの
>>376 携帯使うときって基本バックライトが消えそうになったら
適当なキーを押すという使い方が一般的だからな
もちろんマニアックな設定をしてる人以外で
しかしそう考えると、ゲーム開始前で決定キーの 入力待ちの状態とかってあるじゃん。 アクションゲームとかそこでデモっぽいのが 流れてたりするけど、あれも放置してると速度が 遅くなるって事なのかな? あんま携帯ゲームしないからよく分からないや。
携帯ゲーの場合デモ自体流さないな。 容量の関係とかで。 せいぜいタイトルで選択アイコンが点滅かアニメするだけ。
色々試してみたらdoja端末だとバックライトが消えても処理は重くならず OAP端末だと暫く待つと重くなる。適当なフリーアプリをDLしてみても同じく。 特にRPGで常に手足がてくてくなってるアプリを見てたら明らかに手足の 速度が遅くなってワロタ(笑) まぁ機種による可能性大だが…。
>>371 ガベージコレクションを自動的な発生に任せていると重くなる事があるけど、それかな?
適当な所でSystem.gc()してみ?
BREWは動作遅くなるのが仕様 Docomo、Softbankならおかしい
AOPはJBlend on BREWだからなぁ
本当にBREWはビチ糞だな。
個人的にはゲリじゃなくて便秘の方かな。
System.gc();は毎フレームやれってばっちゃが言ってた。 東芝の場合はしらんって怒られました
softbankで famiJSCL 使ってる人に質問 rom の内部読み込みはうまくいくけど 外部読み込みで「romの読み込みに失敗しました」 となります 対処法をご存知の方お願いします
390 :
389 :2008/07/08(火) 23:14:52
ちなみにMEXA_EMULATORのコンソールには 起動エラー: java.lang.SecurityException: com.j_phone.io.Connector.StorageConnection.read was denied と表示されます
famiJSCLって何? Trustedでインストールしてないとか?
ググったけどスレ違いすぎる
393 :
389 :2008/07/09(水) 01:18:36
やはりここもスレ違いでしたか 失礼いたしました ちなみに Trusted でインストールしたら無事起動しましたが 実機ではやはりエラーが出ます
>famiJSCL www.geocities.jp/v904shmania/#famiJSCL --- 引用 ファミコン&ディスクシステムえみゅ
スレ違いで悪いけど、famiJSCLやゲームギアのって音有りになってるが 音源はどうやってエミュレートしてるのか気になる spf?mmf?MIDI?
デコンパイルしてソース読めば?
>>396 そのつもりだったけどfamiJSCLのダウンロード先が見つからないんだ・・
>>397 smaf-phrase
"famiJSCL"でググったら最初に見付かるサイトの最後の方にzipあるよ。
399 :
357 :2008/07/09(水) 22:44:49
今さらですが、取り合えずはなんとかは出来ましたのでご報告致します。 エミュや実機の動作の差分を見ていたところ、 703SHではゲーム用インナーのコンストラクタに入るところで急激に増えていました。 このクラスのメンバには一番多く変数が定義されており、 コピーコンストラクタで変数を大量に生成した後には703SHでは増えている感じでした (エミュ・905SH・813SHでは約900KBに対し703SHでは約2MB)。 コンストラクタに入ったときにGCを呼んでも解放されなかったため、 new byte[Runtime.getRuntime().freeMemory()] を2回呼ぶことで空きメモリが必要である事を主張し解放を促しました。 これにより前記の領域を解放させることが出来ました。 タイミングによってはOutOfMemoryErrorが出るので、安全策として、 ここの部分でのみErrorをcatchしています。 Errorの性質上、かなり気持ち悪い実装となりましたが、 現状ではこの方法で回避するとこが出来ました。
400 :
357 :2008/07/09(水) 22:45:46
>>359 そのGCの実装の差異を何とか吸収出来る様なテクニックがあればと思いまして。。。
>>360 GCで解放されているものもあり、全く効果が無いわけではありませんでした。
ただ、もっと解放して欲しい領域には及んではくれませんでしたが。
>>361 1フレームに1ファイル読み込んでGCを呼んでおります。
>>363 リソース自体は300K程度で、
SH問題で動的なものもあり、
起動時に読み込むのは200K程です。
と言うわけで、怒鳴られてしまいそうな実装ですが、一応解決したました。
どうもありがとうございました。
(´∀`) スパーン!
⊂彡☆)´Д`)っ
>>399
この流れでエミュエミュ言うから、うぜぇと思たら… でもこれは駄目だろ 703shの実装以前に、何かが決定的に間違ってるはず 何がどれだけメモリを食ってるのかちゃんと調べたのか?
循環参照でもして、メモリーリークしてるんじゃね?
いくらなんでも弱参照カウンタくらい実装してるだろVMが。 マーク&スイープだったりするぞ。
バグでガベコレがうまく働かない機種があったけど それが703shだったかは忘れてしまった
>>404 いまどきの、コンパクションすら行わない速度だけを求めた糞VMが、そんなことしてるかね?
アプリが終了するときはしっかりやってそうだが。
S!アプリのJSCL-1.1.x以降はメモリコンパクションをサポートしているらしいが?
>>357 はキャンバススレッドにベターッと全てを実装してたりしてなwww
409 :
400 :2008/07/11(金) 01:12:44
>>402 自分のコードに絶対的な自信を持っているわけではありませんが、
ただ、元々Dojaからの移植でDoja版は問題なく動作をしており、
納品済みで公開されております。
Softbank版ではクライアントの方でチェックされている中で703SHのみ
OutOfMemoryErrorが出ると言う報告のものでありました。
なので、元のコード自体に決定的な間違いがあるとは思い難いと思っています。
最も、メモリ容量の推移についてを先方にチェックしてもらっているわけではないので、
報告が無いことが703SHと同様の動作をしてないことと等価では無いとも思いますが。
703SHは一旦の対応で返却してしまったため、次の機会に"何"が"どれだけ"
食っているかを調べたいと思います。
今回は大幅に増えるタイミングタイミングがメンバ変数の初期化子しか
無い状態だったので、また対応の時間もあまり無く、深く追うことができませんでした。
>>403 メンバ変数はint等の値型の多次元配列がほとんどで、
メンバに参照を保持するようなメンバは持っていません。
また、メンバ変数の配列はコンストラクタ等で生成した後は解放しないで、
新たに作ることなく使いまわしているので、リークしそうなものがほとんど無い状態です。
J2MEで巨大な多次元配列とな
いまどきのKVMならコンパクション実装してるぞ。
>>411 そうなの?
少なくともDoCoMoは昔は実装してたのに、901あたりから一切コンパクションしなくなった
速さ優先のもよう
聞きかじった情報を信じるほど怖いことはない
>>409 プロならカバレッジ取るなりしてちょっとは自分で考えろ
たかが数100kのソースコードだろ
>>413 明記されてんのは知ってるよw
だが901か902からは全社コンパクション未対応だよ
FPS60出す化け物携帯にコンパクションなんて対応してねーっての
メモリー潤沢だからコンパクションが必要な場面はほとんどないけどな
>>416 ソースは?
60FPSってどのアプリよ
SHの画像メモリはちゃんとコンパクション
されているみたいだが
どっちが本当かは知らんけど、ドコモの902以降だったらマリオくらいだと60FPS出せるね
コンパクションするかどうかは、プログラムを組んで確認してみればわかること。
コンパクションしてるかってどうやって検証すんの?
1M 10KB 1M 10LB
1M 10KB 1M 10KB って確保してうめうくしたあと、GCして、その後2Mとろうとしてみればいいんじゃね?
■■■■■■■■ ■=new int[1048576/4] ■□■□■□■□ □=null System.gc() new int[2097152/4]
なるほと理解した
ろれつが回らない口調が流行ってるのか?
解放しちゃらめぇ〜
427 :
デフォルトの名無しさん :2008/07/17(木) 08:09:58
はーいたらちゃんです
プログラマーは赤ちゃん返り
429 :
デフォルトの名無しさん :2008/07/19(土) 11:18:15
現在、ソケット通信を行うS!アプリを作成中です。 エミュレーターでは動作しサーバープログラムと通信できるのですが、 実機(921SH)では下記の記述部分でSecurityExceptionが発生してしまいます。 Connector.open("socket://[IPアドレス]:[ポート番号]"); jadファイルとMANIFESTファイルには MIDlet-Permissions: javax.microedition.io.Connector.socket と記述しています。 エラーの内容は javax.microedition.io.Connector.socket was denied です。 原因をご存知であれば、ご教授お願い致します。
>>429 Socketアクセス出来ればメールも詐称しまくり送りまくりだよねえ。
フリーソフトにマルウェアとして仕込めば自分の手を汚さずに。
socket通信はできないんですか?
>>431 そういうことをやりたいならS!なんて忘れることだ。
434 :
デフォルトの名無しさん :2008/07/19(土) 13:59:36
TCP/IP直叩き出来るようになる。
許された人達には
>>432 お前みたいなヒヨッコがクラッカー気取りで変なもの組もうとするから
規制がアホみたいに厳しくなるのですよ
>>436 あまりにもアレすぎて、ほとんどの人たちは許されませんでした
一部の公認アプリのみがsocket通信可能ということですか?
>>437 もともと禁止されていたんです。
私のせいで規制されたような言い方はやめてくださいw
>>439 こんなところで質問する暇があるなら職場の先輩にでも聞くといい
ググれカスで十分だ
socket通信?仕様書も読めないのか? 日本語とgoogleの使い方から勉強しろよ。
ググれカスがわからないからgooできいてきました
クマー!!
446 :
デフォルトの名無しさん :2008/07/22(火) 21:06:19
TextSS
>>439 そういうことです。
sに相談してくださいな
Softbank端末で、S!アプリからモーションコントロールセンサーを使いたいと思って調べてみたんだが、 そのAPIに対応している端末が904SHしか見当たらない。 センサーそのものは搭載していても、MEXA経由でアプリにインターフェース公開しているのが 904SHだけしかないって理解でOKですか? だとしたらなんとも残念だ。
>>そのAPIに対応している端末が904SHしか見当たらない。 センサーそのものを搭載している端末で出来なかったの? どういう情報で"見当たらな"かったのだろうか
>>449 Softbank開発者向けのサイトMobile Creation(
ttp://creation.mb.softbank.jp/ )で
「端末情報 MIDP2.0対応端末編 PartXX」のPDF資料を一通りさらったんだけど
「モーションコントロール対応可否」という項目が×ばかりだった。
たとえばセンサーは確かに搭載されているはずの921SHでも×になってた。
451 :
デフォルトの名無しさん :2008/07/28(月) 23:17:52
MEXAエミュレータでソフトキーを押すと、keyPressのほうにも通知がくるのはバグ?
>>451 バグではないよ。
ただ、実機だと端末によってキーコードが違うんじゃなかったっけ?
違うよ
454 :
デフォルトの名無しさん :2008/07/30(水) 10:51:15
iアプリのcom.nttdocomo.util.Phoneにあたる機能って S!アプリにはないんですか? USIMのIDが取得したいんですけど。
>>454 無い。
というかDojaだってUSIMのIDなんて取れない。
そのものじゃないけど、それに準じた固有IDは取れるじゃん。
準じとらん。 USIMのIDと端末のIDじゃ根本的に別物だろう。紐付くわけでもなし。
>>457 ?
紐づいてるよ?
契約者ごとと端末ごとの2種類とれるよ?
単に元の値が類推できないようにはなってるけど。
S!アプリ(メガアプリ)からmexaの移植の話があるんだが、 ぶっちゃけコンパイラだけ変えて通せばOKなわけ? そのままだと、折角だから品質向上させろとNGにされるんだろうけど...
>>461 Javaなのにコンパイラ変えてどうする
eclipseのコンパイラとか?
ぶっちゃけコンパイラっていうコンパイラがあるって話だろ
SDKと言いたいのだろう? わざわざmexaにコンバートしないでも、jsclのまま出しときゃいいじゃん。 それとも最近のは下位互換性なかったりするの?
eclipseでJConnector使いたいんだが、パス通してもNoClassDefFoundError: JConnectorがでで強制終了。何が悪いんだ?
469 :
デフォルトの名無しさん :2008/08/07(木) 17:35:08
>>468 JDKが新しいと、デフォルトパッケージの指定が出来ないので、
JDK1.3にするか、オプションつけるかなにかして対応しないといけないと思います。
(オプションで回避できるか、要調査ですが、無理だったような気もします。)
>>467 どっちもMIDP
コンバートなんて御大層なことは無い
JSCLの一部はMEXAでもUnit1に入ってるから
下位互換性があると言えばあるけど中途半端
すごい初歩的な質問なんだと思うんだけど、 そもそもMEXAエミュレータって stubclassesに含まれているクラス以外を 参照してもNoClassDefFoundErrorになるのかな? 環境はEclipse 3.4、JDK1.4.2、MEXAエミュ2.1
>>471 イミフ
stubclassesに含まれて無いのならどこに含まれてる?
自分で定義したのならともかく
定義していないならそもそもコンパイルエラー
今、S!アプリで拡大縮小機能を自作していようと思い、作っているのですが なかなかうまくいきません。以前、Cで同じメソッドを作ったのでそれを参考にしたのですが、そのときはchar型のポインタ配列を、freadで画像から読み込ませて 変形させたら何とか出来たのですが、Imageクラスの中身が何なのかわからないのでどうやって ほかの型にデータを渡して変形させればいいのか皆目見当がつきません。 アドバイスをください。お願いします。
>473 MIDP2.0のAPIリファレンスくらい読みましょうよ そしたら皆目見当がつかないなんてことないから
>>473 Cとかcharとか言ってるとこを見ると、
Imageオブジェクトの中の人に生でアクセスしたいんだろうけど、
それはムリ。
それができないようにクラス設計されてるんだし。
>474 のいうように、まずはリファレンス見てから考えれ。
・・というか、MIDPだけではムリじゃなかったっけ。
>>473 RGBの配列を取り出して、変形して、描画すればよい。
Image.getRGBで取得すればいい んで、Graphics.drawRGBで描画 ただ、速度は遅いけどね
あれ、、、MIDPってリフレクションとかできないの? どうすれバインダー。
そもそもリフレクション使う場面がない。設計からやり直せ
>> 479 J2SEで作ってたものを移植しようとしてたんだけど 即効でつまづくね。。。 ディープコピーとかも どうすんだこれ、、、
482 :
デフォルトの名無しさん :2008/08/15(金) 19:21:31
すいません質問させてください。
下記のリンク先にあるサンプルプログラムを実行したのですが、レコードストアがうまく動いていないようなんです。
サンプルプログラムではハイスコアを保存するようになっているはずなのですが、次回起動時にはその値がおかしくなってしまいます。
例えば570点を取っても、次回起動時には58点となってしまいます。
http://appget.com/contest/au2007/lecture/lesson7.html 実行環境は同URL内の「第2回 はじめてのオープンアプリ(Java)の作成」に従って、
JDK 1.5とJ2ME Wireless Toolkit 2.2を使用しました。
原因もしくは対処法をご存知でしたら是非教えてください。よろしくお願いします。
>>482 byteで保存しているからだね
Intでやろう
484 :
482 :2008/08/15(金) 20:16:09
>>483 無事解決しました!
ありがとうございました。
うーん、サンプルプログラムさんとしては、その辺は自己解決するように
仕向けているような気がするのは気のせいか。
ということで
>>482 はなぜbyteでは58点になってしまうのかレポート提出すること。
486 :
482 :2008/08/15(金) 20:52:43
>>485 byteは1byteしか保存できないから256以上だと切り捨てられてしまうってことでいいんでしょうか?
今回の場合だと
570 - (256 * 2) = 58
ってことでしょうか?
>>481 ディープコピーなんて自前に決まってるだろ。
というかSEのプログラムをどうやってCLDC+MIDPに移植するんだ?
CDC+PPならともかく。
SEにあってCLDCにないものは基本全部自前だぞ。
・;(`ε()゙
>>486 OK。分かってしまえば簡単なことなんだけどな。
490 :
デフォルトの名無しさん :2008/08/19(火) 07:49:46
前からdev.java.netになかったけ?
WTKのエミュで動かせなかったのでw-zero3で動かした。 とくに問題はなかった。
オープンアプリの実行環境についてなんだけど KCP端末とKCP+端末では性能が格段に違ったりする? KCP+端末しか持ってないので旧機種との性能差が気になってる 10fpsも違ったりすることは無いよね? 知ってる方情報よろすこ
KCPってそもそもソフト側のプラットフォームじゃなかったっけ? 速度とかはのっけてるチップの問題だろ。
>>494 組み込みだからソフトっちゃソフトもだろうけど
デュアルコア採用だとかグラフィックにATIのチップセットだとか
言う噂を聞いたもんだからさ
そもそも基幹部分のチップセットはKCP時代からqualcomm製で統一されてるんでない?
>495が正しい。 チップセットのMSM7500(ARM9+ARM11のデュアルコア+IMAGEON(ATI))があり、 それに最適化したOSがKCP+。 KCP+世代内でもチップセットが進化する可能性はあるかもしれないけど。 で、KDDIはKCP+はKCPに比べて10倍早い!とか言ってた気がするけど、 たぶん3Dグラフィックについてのことだろう。 2Dのみのオープンアプリでそこまで速度差があるとは思えない。 でも某アプリ製作者のブログ見てたら結構な速度差があるとは書かれてた。 10fpsてのは基準が分からんし何とも言えないけど。
>>493 ハード性能は格段に上がってるけど、
OSやKCP+部分が足引っ張って、プラスマイナス0
って、だいぶ前に中の人に聞いたよ。
そんなにオーバーヘッドがあるのかそれともただの屑なのか・・・。
499 :
493 :2008/08/26(火) 00:48:30
>>496-497 d
劇的に性能が上がってる分けでも無いのね
auはオープンアプリを拡張しないだろうし
ATIのチップ乗ってても一般人は恩恵に与れないわけだ
ファミコン版の三国志みたいなやつを 通信対戦できるようなゲームを作ろうと思う。 需要あるかな。
作り始めて技術的な問題が出てきたらまたおいで
>>500 そういうのはコーエーにやらせとけばいいの。
HTTP通信するアプリなんですが、実機で動作させると、下のソースの c =(HttpConnection)JConnector.open(url, JConnector.READ); でjava.io.IOExceptionになります。 POSTメソッドだとネットワークに接続しますか?と聞かれて通信がうまくいくのですが、GETメソッドだと聞かれず、IOExceptionとなります。 何か知ってる人がいたら助けてください。ちなみに実機は910Tです。 try { try{ c =(HttpConnection)JConnector.open(url, JConnector.READ); }catch (Exception e) { // TODO: handle exception info=e.toString(); } c.setRequestMethod(HttpConnection.GET); in =c.openInputStream(); out=new ByteArrayOutputStream(); rc = c.getResponseCode(); if (rc != HttpConnection.HTTP_OK) { info2=Integer.toString(rc); throw new Exception(); } while (true) { size=in.read(w); if (size<=0) break; out.write(w,0,size); } out.close(); in.close(); c.close(); return out.toByteArray(); }
>>503 情報が足りないので予想だが、
close()の記載がここだけだとするとclose()されてない可能性があるかと。
//修正ソース
try{
c = Conector.open();
in = c.openInputStream();
in.read();
}catch(Exception e){
System.out.println(e.getMessage());
}finally{
//例外が発生してもしなくても最後に必ず実行される
if(in != null) in.close();
if(c != null) c.close();
}
こんな感じでfinally{}内でclose()したらどうだろ?
すでにしてるようならわからん。
>>504 改行制限のため省略しましたけど、closeはちゃんと行ってます。
現状として、ビジネスプロバイダforS!アプリのサーバにアップしてるのですが、そこで配布してるJConnector.classを使うと実機でGETメソッドがうまく使えなくなります。
Connectorを使うならGETメソッドでもうまく通信できるのですが、これだと通信と個人情報取得の両方の利用ができなくなります。
だれかここら辺の事詳しい人いませんか?
過去ログpart5に出てた。この人はこれで解決してる。 ビジネスプロバイダforS!アプリの基準では >アップロード時の設定ファイルに接続先ドメインを書かなければならない
>>506 設定ファイルには接続先ドメインを書いてます。
書き方が悪いのかな?けどそれだとなぜPOSTメソッドの場合だけ成功するのかがわからない。
そのJConnectorの開発元や配布元へは質問出してるの?
>>509 もちろん読みましたよ。
そんじゃそっちに質問してみます。
511 :
デフォルトの名無しさん :2008/09/08(月) 15:45:43
以前もここで聞いた事があるのですが、オープンアプリの実行中に一定時間キー入力が なかった場合、描画速度が極端に落ちてしまいます。 whileでループさせてpaintに飛ばして画面に描画…という単純なプログラムです。 同じ仕組みのアプリでも、DoCoMo端末、SoftBank端末では一切速度が落ちません。 で、前回質問させて頂いた際、DoCoMoとSoftBankは大丈夫だけどオープンアプリは 仕様だから仕方ない、という結論を頂いたのですが、最近mo○oゲームのオープンアプリ版 をダウンロードしてみた所、どれだけキー入力しても画面上の描画速度が一切 落ちていない事に気付きました。 一体どんなテクを使っているのでしょうか?? 本人に質問できないチキン野郎ですみません。
伏字すぎてなんのことだかわからん そもそもなぜ伏字にする必要がある?
アプリからネイティブプログラムの操作をして 音声通話の発信が出来そうなのですが 通信状態の判断をして場合によっては切断することは可能でしょうか? 音声通話の発信をして相手がすぐに出れればそのまま通話 もし相手側が話中だったり電話に出ない状態が15秒くらい続けば 一度切断して10分位してから再発信させたいです 通話しているときはアプリはサスペンド状態らしいです 通話が終了すればレジュームすると記載されていました ということは通話状態なのかそうでないのかは判断できるってことですよね 発信から15秒後にアプリがサスペンド状態でなければ 切断して待機して10分後に再発信というのが理想です Q.1通話状態の判定 Q.2発信していた音声通話を”切断”する(アプリがアクティブであればですが) どなたかよろしくお願いいたします
アプリから電話なんてかけられたっけ?・;(`ε()゙
>>513 どこまで調べたのかもう少し詳しく
あと、キャリアはどこか
docomoでの実現をを目指していましたが docomoに電話で確認したけどわからないままです ていうか「作ろうiアプリ」のページに記載されていないことは答えませんってことでした 調べたところDoJa-2.0でネイティブ機能の呼び出しが出来るようになりましたが 当時はバックライトの点滅だけでした しかしDoJa-3.0になって音声通話機能の呼び出しにも対応したようです 手持ちのMIDP解説本にはダイヤラを呼び出して音声通信の発信までは解説されているのですが ”状態判定”と”切断”については記述されていません ネイティブ機能の呼び出しはNativeCanvasクラスで呼び出すと記載されています iアプリ対応解説本にはネイティブ機能はPhoneSystemクラスで呼び出すと記載されています (iアプリ対応の解説本は少々古いのでバックライト点滅などしか解説していないのですorz) しかしdocomoのサイトでダウンロードして見れる技術解説には DoJa-3.0以降のバージョンで音声通話機能の呼び出しも可能になったと記載されていました ダイヤラを使って発信は可能なのですが切断がわかりません 実現できるのであればキャリアはsでもauでも構わないです よろしくお願いいたします
Docomoはスレ違いだが・;(`ε()゙ 多分電話かけるのは公認コンテンツプロバイダじゃないと無理。 会社として企画書持ってDocomoへGO! BREWならできると思うけど、それも会社として企画書持ってauにGO! 他のキャリアはそもそも無理だと思うが、芋場あたりはシラネ。
SoftbankならPhoneConnectionクラスで ・電話をかけること ・通話が終了した理由の取得 はできるが、切断は無理かと
>>517 >>518 レスありがとです
アプリでは無理なのかもしれませんね
私が実際に普段使ってるソフトはパソコンと携帯をusb接続して
パソコンから携帯を制御し発信→状態確認→通話もしくは切断、再発信してるんです
やっぱりパソコン接続から切り離すのは難しいのかもしれませんね
パソコンソフトで発信切断できたので携帯単体での動作を目指したのです
もし何かわかりましたらまたお願いします
ありがとうございました
>私が実際に普段使ってるソフトはパソコンと携帯をusb接続して >パソコンから携帯を制御し発信→状態確認→通話もしくは切断、再発信してるんです なんでそんなかけ方してるのか、の方が興味ある
>>520 人に聞くときは自分から言えよ
あなたのやり方をまず聞いてから答えるよ
それともネタ聞き出すだけの泥棒くんかw
土曜にiアプリスレで似たようなことを書き、ワン切り業者と認定されたヤツがおった
住人に用途を書けと言われたら「お前が先に書け」と答えた↓
472 :デフォルトの名無しさん [↓] :2008/09/06(土) 18:25:14
パソコンにUSB接続したドコモ携帯をパソコンから制御して電話をかけたいんです
相手が話中であれば指定時間間隔で一定回数、再発信したりできるのがいいです
j2meでphonesystemというクラスを使うと出来るようなのですが
phonesystemをググっても電話発信の方法はよくわかりませんでした
詳しい解説ページまたは解説本(日本語希望)ご存知の方おられましたら教えて下さい
知人から譲って頂いたソフトで電話はかけれるのですが
少々バグがあるので知人を通じてソフトハウスに改めて製作依頼したところ
「そのプログラムを作った本人は退職して、もう連絡が取れない状態です。
同じようなソフトは作る予定はないです」ってことでした
仕方ないので自分で製作できないものか模索中です
どうぞよろしくお願いいたします
481 :デフォルトの名無しさん [↓] :2008/09/06(土) 23:22:52
>>477 >>478 教えてもいいけど
教え損は嫌なので
あなたも同レベルの何か教えてくれますか?
本気で知りたいのならステアドどぞ
但し情報はそちらが先に教えてください
価値のあるものなら私も正直にお教えします
私は横取りだけするようなことはないです
仲良くしましょう^^
それで? それ私ですが何か? あなたのように泥棒君じゃないのは確かですねwww
>521 3行丸ごとアンタのことじゃんw 自分こそ、なぜそんな変わった使い方をするのか書いてから質問してみな。 大体、自分から言えよも何も、電話のかけ方なんかで何か言うことあるのかよ。 自分はケータイで電話するなら普通に電話かけるだけ。 PCとの接続も、アプリからの通話切断、再発信も必要ないんでな。 だから興味を持ったんだよ。 ほら、言ってやったぜ。でもアンタはもうなんだかんだ言って応えないんだろ? 「興味がある」に対する反応が過敏なのも不思議だよね。 普通なら「いや、ちょっと教えられないんで」で済むのに 「人に聞くときは自分から言えよ」とか、まさにアンタが情報クレクレ君だな。 >522 こんな特徴的な人、2人もいないよなぁw
あぁそういうこと聞いてたの? 電話をかける理由を聞いてたの? 私は電話をかける方法が他にもあるのかと思ったよ かける理由はプログラムには関係ないだろ 先のスレで私にスレ違いだって言ってた人が居たけど まさにあんなたのことだよw 教えて欲しいのなら情報交換が基本でしょ あなたのは”情報”ではないよね ただのお馬鹿発言ですwwwww プログラムの話できるようになってから解答者になってねwwwwwww
>525 うん、わかった。 プログラムの話にはついて行けないから黙ってるよ。 引っ張ってスマソ>スレ住人
527 :
デフォルトの名無しさん :2008/09/09(火) 15:54:29
SアプリでLocationAPIを使えている人はいますか? ビルドは問題ないのですが、エミュ実行時にLocationAPIの部分で 「java.lang.NoClassDefFoundError」が出てしまいます。 クラスパスなんかは問題ないようなのですが・・・
LocationAPIってCLDC/MIDPのオプションパッケージにもあるんだが。
>>525 >教えて欲しいのなら情報交換が基本でしょ
そっくりそのまま返してやろう。
最初に質問をしているのはお前だ。
ならば用途くらい述べても差し支えなかろう。真っ当な用途ならな。
iアプリスレも見てるが、お前の過剰な反応の仕方からしてどうせロクな用途じゃないだろ。
盗撮してたのがバレて顔真っ赤にして否定してる中年オヤジみたいだ。
ついでだから回答してやるよ。
お前のやろうとしていることは「できない」。
そもそも勝手アプリでそんなことできたら、勝手に電話かけまくるウイルスアプリが簡単に作れちまうわ。
スルー力ないな
531 :
522 :2008/09/10(水) 01:21:50
俺にも数年前にはそんな時期があった 一度このスレ保存しといて3年後に見てみ 匿名といえど恥ずかしさがこみ上げてくるよ
>>532 1108781476 の 584 とか、
ヤなもの思い出してしまったじゃねーか ;(`ε()゙
皆さんはレコードストアを使用する時、MIDlet-Data-Size以外の部分で ソース内で何か明示的に領域を確保したりしています? 実は現在制作中のゲームでスコアや名前をセーブする機能を搭載して みたんですが、端末によってはレコードストアへの保存を失敗する場合が あるみたいなんです。 しかも同じ端末でもアプリを削除→再ダウンロードすれば失敗しなく なったりして、何が原因なんだろうと試行錯誤しています。 もしかしたら、保存領域の確保などがソース内で必要なのかなと思って 質問させて頂きました。 ちなみにエミュレータや自分の端末では一切失敗しないんですよね。。
>>534 MIDPの仕様で、レコードストアを管理するためのヘッダ情報の量は不定となっているけどそれは考慮している?
32バイト使いたいからって、MIDlet-Data-Sizeに32を指定すると失敗するし、
なんとなく「倍とっておけばいいだろ」とかで決め打ちしてると、ヘッダ情報を多めにとる端末でエラーになったりするぞ
536 :
534 :2008/09/16(火) 23:20:32
String型の文字列の保存が結構あるのでMIDlet-Data-Sizeには かなり多めの3000を指定しています。 これが多すぎてエラーを起こす場合もあるという事でしょうか? でも、全く同じ状況で全く同じ端末でも、アプリを削除→再ダウンロード すると正常に保存出来たりするんですよね、、
MIDlet-Data-Sizeは機種によって上限がある。そこを調べるんだ。
http通信で得たjpgのbyte列dataをImage.createImage(data,0,data.length);ってやってイメージを作成したいんだが 実機でやると、IllegalArgumentExceptionを返されてしまいます。 SoftBankの開発者資料を見たらjpgは対応はしてるみたいですけど 何が悪いか分かる人いませんか?
>>538 そのbyte配列に正しくJPEGデータが入ってるかどうか確認してみたら?
通信の段階でこけてるかもしれないから
最初の10バイトくらいをdrawStringで表示してみれば分かると思う
ソフトバンクの911SHを使ってます。 グーグルマップがストリートビュー対応になって羨ましい限りで、 何とか動かないかとやってるのですが、起動してロゴが出て読み込 んでるところで止まってしまいます。 ネットワークに接続できません。 このアプリケーションではデータ通信用の接続が必要です。 自動的に再試行します。 電波の状態を確認してください。 MIDlet-Permissions: javax.microedition.io.Connector.httpの記載は jadにもしてるのですが、どうも通信しないようで。 PCでMEXAでは問題なく動くのですが。 やはりソフトバンクの普通のSHとかでは動かないんでしょうか? 試しているのはストリートビュに対応した2.3.1です。 tp://www.google.com/gmm/apps/v2.3.1/L1/gmaps-231-m2_L1.jar
携帯のブラウザで非同期通信とかできるの? 間にservletかませるとかどうよ
あの、auでswf(データフォルダから実行するタイプ)のゲーム作ろうかと 考えてるんですけど、どうしたらいいですか? ちょっとスレ違いしてきました;
>>538 MIMEだな。
.htaccessでもおいとけばおk
>>542 >あの、auでswf(データフォルダから実行するタイプ)のゲーム作ろうかと
>考えてるんですけど、どうしたらいいですか?
>ちょっとスレ違いしてきました;
スレ違いってわかってるのに書き込むその神経と
その程度のことすらわからないのにこれから
どう作成していくかをkwsk
今後のために言わせて貰うと
わからないことを丸投げするようなら
ゲームは作るべきじゃないと思う。
まずはflash lite2.0の仕様を100回くらい読み返すことをおすすめするよ
>ちょっとスレ違いしてきました; 一文から察するにスパゲティープログラムを書く素質は十分にありそうだ
一週間くらい、チマチマとToolKitで開発して 久々に実機で動かしたら オープンアプリエラー(7F)で動かず・・・ やっぱ実機でチョコチョコ動かしていかんとダメっすね。 このエラー詳細解る方います?
起動直後にエラーコード128なら、MIDletのコンストラクタか、 startApp()で例外が起きてるかもしれない。 例外をキャッチして、画面に表示するようにしてみれば、何か 分かるかも?
128じゃなくて127だた。
どうせ拡張API使ってるとか言う話
遅レスだけどヒントありがとう とりあえず、コメントアウトしつつデバッグしてみました。 シューティング風ゲーム作ってるんだけど 敵のクラスを配列で呼び出したらエラーになるみたい 一個や二個ならエラーでないんだけど、5個以上になると実機でエラー メモリ使いすぎみたいっすね。 仕様から見直すことにしました。
>>553 一度に使用するイメージサイズがでかすぎるんじゃない?
もしくはよっぽど下手な実装してるか
555 :
553 :2008/09/30(火) 19:41:34
>>554 カラフルな画面でやりたくて
見た目にこだわっちゃったからかも
あと背景をスクロールさせるのに
240*268の同じ一枚絵を三枚呼び出して
ループさせたりしてたからコレが原因だと思うw
実装に関して「おまえなにやってんだバカwww」
って感じだとおもう。
動きのある背景は配列で処理するに限る
いまどきの携帯なら240*268を3つくらいなら余裕だと思うけどね 敵のクラスにイメージとか持っちゃってるんじゃない?
敵キャラも背景も、プログラムを呼び出したときとかステージ開始時とかに 纏めて読み込んでおくデータモデルクラスを作って、 さらにそれを継承する各ステージクラスを作ってそれのコンストラクタで内部のイメージコレクションを初期化、 クラス内では static final int ENEMY_ZAKU=0x0; static final int ENEMY_GOUF=0x1; ってな感じで定義して public Image getImageAt(int num); って感じでイメージを取得するのが良いらしいと聞いた。 敵キャラクラスの持つ情報は極力stringかintかだけにするべきだとも。
ファクトリメソッド的な感じかな?
560 :
デフォルトの名無しさん :2008/10/08(水) 16:20:30
携帯アプリでbluetoothの機能を利用したいんだけどそれってできるの? 具体的にはbluetooth同士で接続してチャットするみたいなアプリ機能なんだけど… 携帯アプリ作ったことないからわからんのでおしえてくだしあ><
>>560 softbankなら、ちかチャットってアプリがデフォルトで入ってる
bluetoothを使ったチャットアプリ。
あれ青歯だったのか赤外線かと思ってた。
赤外線のチャットアプリって冷静に考えてマヌケすぎると思うんだが・・・w
atan2が無いよ! atan2が無いんだよ!
atan2って自分で計算すりゃ良いんじゃないの?
それよりもpow
powこそ自分で計算すりゃ良いんじゃないの?
一番有用なのはrsqrt 異論は認めない
加算と減算さえあれば何でも求まるだろ 常識的に考えて
減算すらいらんよ
572 :
デフォルトの名無しさん :2008/10/16(木) 19:25:26
MEXAエミュレータでのカメラ機能使用時の障害について教えてください。 コードは以下の通りです。 --------------------------------------------------------------- 01 cc = (CameraConnection)Connector.open("camera:"); 02 cc.capture(); 03 String filename = cc.getFileName(); 04 System.out.println(filename); 05 cc.close(); 06 StorageConnection sc = (StorageConnection)Connector.open("file://" + filename); 07 image_data = new byte[(int)sc.getLength()]; 08 InputStream is = sc.openInputStream(); 09 is.read(image_data); 10 is.close(); 11 sc.close(); --------------------------------------------------------------- 上記コードを実行すると以下のように「NullPointerException」が 6行目で発生します。 コンソールの表示は以下の通りです。 C:\SOFTBANK_MEXA_EMULATOR21\resource\ms\Pictures\test2.jpg [UIEvent] Uncaught java.lang.NullPointerException occurred in key event (3) callback of Main どなたか解決方法をご存知でしたら、お教えください。 よろしくおねがいします。
ガッ!!
>>572 C:\SOFTBANK_MEXA_EMULATOR21\resource\が不要じゃね
576 :
572 :2008/10/17(金) 09:55:38
>>575 6行目を以下の通りにしても駄目でした。
StorageConnection sc = (StorageConnection)Connector.open("file://test2.jpg");
577 :
デフォルトの名無しさん :2008/10/17(金) 13:59:49
578 :
デフォルトの名無しさん :2008/10/17(金) 16:27:07
すみません。 実機(923SH)で System.out.println()の中身を追跡する機能は無いのでしょうか? iアプリだと「トレース情報」で表示できますけど。 どなたかご存知の方お願いします。
579 :
デフォルトの名無しさん :2008/10/17(金) 18:19:34
実機でのJConnectorを利用したHTTP通信に嵌っています。
エミュレータでは動作するのですが、実機でNGな状態です(Apacheのログで確認)。
セキュリティに引っかかっている感じですが、そもそも以下のJADファイルは有効でしょうか?
-------------------------
MIDlet-Name: Sample01
MIDlet-Vendor: Test
MIDlet-Version: 1.0
MIDlet-1: Sample01, , Sample01
MIDlet-Jar-URL: Sample01.jar
MIDlet-Jar-Size: 6975
MIDlet-Permissions: com.j_phone.io.Connector.CameraConnection.capture,com.j_phone.io.Connector.StorageConnection.read
MIDxlet-API: JSCL-1.2.2
MIDlet-X-AllowURL-1:
http://www.example.com/ -------------------------
MIDPの実機は標準出力はない
>>576 端末内のパス指定は
file:///ms/フォルダ/ファイル
のはず
今回の例だと
file:///ms/Pictures/test2.jpg
582 :
デフォルトの名無しさん :2008/10/19(日) 20:39:57 BE:102222443-2BP(34)
実機での検証を行うため、開発中のアプリを「Trusted MIDlet」にしたいのですが、 手続きとか審査があるのでしょうか? スパイシーのビジネスプロバイダを使っています。
>>582 やりたいことがよく分からん…。
例えばFeliCaなんかを使っているアプリはTrustedでなければ公開できない。
Trustedにしたかったらソフトバンクと公式契約し、アプリにソフトバンクの署名を付けてもらった上で
ソフトバンクのサーバにアップしなければならない。
「スパイシーのビジネスプロバイダを使っている」時点でTrustedの機能は使っていないと思われるので、
「アプリをTrustedにしたい」という意味が分からない。
584 :
デフォルトの名無しさん :2008/10/19(日) 22:52:13 BE:76667033-2BP(34)
>>583 カメラ機能で撮影した画像をHTTP(S)で第三者のサーバへ送信するアプリです。
585 :
582 :2008/10/20(月) 20:13:51 BE:477036487-2BP(34)
>>583 自己解決しました。
MIDlet-Permissionsの設定だけで行けました。
エミュだとTrustedにしないとエラーが出ていたもので。
586 :
デフォルトの名無しさん :2008/10/22(水) 15:23:46
すみませんスレ違いかもしれないですが、 ビジネスプロバイダって初期費用5000円払ったら ずっと開発Cコース無料で利用できるってことですか? それともまた3か月後に支払うんですかね? 問い合わせにメール投げてもかえってこなくて。。
PDAでMIDP使ってアプリを作る予定なんですけど PDAは容量制限とかあるのでしょうか? 書くとこわからなかったんでここに相談します。
589 :
588 :2008/10/24(金) 09:58:26
PDA向けアプリを作るって事ですすみません。
591 :
586 :2008/10/24(金) 13:57:06
回答ありがとうございます。 初回契約時に払えば、あとは無料って解釈でよかったんですね! ありがとうございます。 また質問になりますが、ビジネスプロバイダって 使用が制限されるAPI機能の詳細とか載ってないですよね? おおまかな感じで個人情報と通信のAPIが使えるとは書いてはあるけど。。 具体的にどういったことが出来るか知りたいんです; 一度5000円払って登録しないとわかんないんですかね^^; 登録されてる方で何か知っている方がいたら教えてくださいませんか? よろしくおねがいします。
592 :
デフォルトの名無しさん :2008/10/24(金) 20:17:05
「S! Appli MEXA Emulator 2.1」でHTTPSの実験をしようと考えています。 証明書をインストールしなければいけないそうですが、 「Readme_CertStoreTool.txt」を読んでもなかなかうまく行きません。 手元にあるファイルは、認証局から発行されたcrtファイルです。
593 :
582 :2008/10/25(土) 01:38:27 BE:306667049-2BP(34)
>>591 個人情報や通信のAPI位なら制限はない様子。
他になにかしたいことがあれば、電話してみてはいかがでしょうか?
電車の中とかイベント会場では面白そう
使い方工夫すれば広がる物もあるんだな。 貯金箱とかだって、良く考えれば銀行に預金した方が良くね?って話だしw
598 :
デフォルトの名無しさん :2008/10/28(火) 20:05:08
S!アプリで、JADファイルにパラメータを埋め込んで、
それをアプリから取得することは可能でしょうか?
やりたいことは、以下のアドレスのように、
JADファイルに'addpram1: param-x'などと記載して、
String addparam = System.getAppProperty("addparam1");
で取得する感じです。
http://urana.info/mobile/midp/addparamtojad.html どなたかご存知の方、アドバイスお願いします。
>598 最初の2行が質問で、続く4行がその答えで、自己解決では。 addparam1ってのがその何らかのアドレスを格納したパラメータで、 それをアプリから取得する記述例ってことでしょ、これ。 だったらそのアドレスのパラメータを他のパラメータに置き換えればいいだけだよ。 引用したURLで紹介してるのはそれをPHPでやってるってこと。 JADに直接記述するならPHPは関係ないな。
600 :
デフォルトの名無しさん :2008/10/29(水) 13:25:09
>>599 >続く4行がその答え
その方法、BREWの方でのサンプルで、
同じことをS!アプリで行うとヌルポで落ちます。
やってダメなので質問しました。
601 :
600 :2008/10/29(水) 13:32:08
すいません。 × BREW ○ オープンアプリ
>600 S!でもオープンアプリでも関係ないよ。MIDPの仕様だから。 実際、自分はS!でもオープンアプリでもできてるし。 System.getAppProperty()は文字列の取得に失敗するとnullが返る。 try-catchでくくってエラー対策するのは当然として、 JADがUTF-8で記述されてないとダメ。 パラメータ書き足した後、SJISで保存し直しちゃってないか確認。 (それだとダウンロード自体できないかな?)
603 :
600 :2008/10/29(水) 14:30:07
>>602 ありがとうございます。
↓のようにJADファイルの最後の行に渡したいパラメータを追記しました。
----- JADファイル -----
…
…
MIDlet-Application-Security: Y
addparam1: 12312341234
-----------------------
で、アプリの方で以下のようにコーディングしました。
import javax.microedition.midlet.MIDlet;
public static String tel = new String(System.getAppProperty("addparam1"));
コンパイルが通らないです…。
importするクラスが悪いのでしょうか?
エラーログ見せるんだ!
getAppPropertyはMIDletクラスのメソッドだろ
コンパイル通らないなら完全にソースに問題ありじゃん
607 :
600 :2008/10/29(水) 15:14:35
>>604 >>605 すみません。以下の方法で行けました。MIDletクラスのメソッドでした。
ありがとうございました。
public class Sample extends MIDlet {
…
public String tel = getAppProperty("tel");
public String url = getAppProperty("url");
…
}
>>602 値の取得ができました。ありがとうございました。
ところで、コンテンツアグリゲータとの関係で、
JADファイルの動的生成はやはり難しいでしょうか?
PHPで動的生成できると面白いのですが…。
608 :
600 :2008/10/29(水) 15:18:29
>ところで、コンテンツアグリゲータとの関係で、 >JADファイルの動的生成はやはり難しいでしょうか? >PHPで動的生成できると面白いのですが…。 S!アプリでの話です。オープンアプリの話ではないです。
602だけど 「System.getAppProperty()は〜」はコピペで混乱させてスマン。>605の通りです。 でも上手くできてよかったな。 >607-608は、できないよ。
テキストビューワ的なオープンアプリってないよね? しおり付きのテキストビューワがkjx時代にあってお世話になったから作ってみようと思うんだけど、 まだ仕様すら読んでないんだけどできそうかな?
端末内のファイルにアクセスできないからテキストファイルを容易するだけで一苦労だよ
>>612 jarを作る段階でtxtから文字列を抜き出してjarに埋め込もうかと思うんだけど、どうかな?
なんか仕様も読まずに尋ねちゃってる時点で作れないと思うよ
615 :
おでん :2008/10/30(木) 23:36:11
ソフトバンクアプリを作成中ですが、なぜGameCanvasから引き続いたクラスの keypressed関数が呼び出されないのですか?
au用オープンアプリなんて言ってる時点でだめじゃん・;(`ε()゙
なんで?
au以外にOAP採用してる国内端末あるっけ? 元々java環境のsoftbankとdocomoにOAPといってもピンと来ないな
オープンアプリってのは
OAP上で動くアプリのことなんで
かららずしもau用って訳じゃあないけど
>>618 の言いたいことはよおくわかる。
>>610 は仕様嫁ってことですね
>>619 OAPはいわばJVMなんだし、○○用って表現自体怪しいけどな
でも言いたいことはよおくわかるよ
本人はよく分からずに書いてるみたいだけど、 ニュアンスは伝わってるんだからそんな揚げ足とってツッコまなくてもいいやん・;(`ε()゙ >jarを作る段階でtxtから文字列を抜き出してjarに埋め込もうかと思う これもやろうとしてることがイマイチ分からないけど、 抜き出して〜とかしなくてもtxtファイルを直接jarに含めればいいよ。 ということで後はリファレンス読んで頑張れ。
622 :
デフォルトの名無しさん :2008/11/02(日) 19:51:36
上の方で同じ質問があったかもだけど、俺も実機でアプリを動かそうとしたら オープンアプリ7Fエラーが出て超困ってる。 特に端末依存なAPIは使ってない。何が原因か分からん…メモリは結構使うタイプのアプリだけど、起動直後に落ちるとか意味分からん。タイトル画面を表示する段階では何も生成してないっつの。 各端末によってクラスァイルの数とかに制限があるのだろうか。こういうところで詰まったことのある人ヘルプ!
前7Fエラーで詰まってたものだけど 別ファイルで作ってた敵とか自機のクラスで GameCanvasを継承させてたのが原因だった。
それが原因ならエミュでもエラー発生すると思うんだが何でだろう 不思議だ
設計によっては難しいだろうけど コメントアウトとビルドを繰り返して実機で検証していくのが 一番手っ取り早いかと 例外取れてそうなら起動時にデバッグ用コマンド入力で 前回検出された例外を出力してみる
626 :
デフォルトの名無しさん :2008/11/03(月) 18:29:39
イーモバイルの端末H11Tで Playerクラスで次々に音ファイルを読み込んでrealize()していくと5個目でRuntimeExceptionがでる。 仕様では一度にprefetchやstart状態にできる数には制限があるが、realizeだけならできるはずなんだが、、。 このおかげで音をはじめに5個以上ロードしておくことができないんだけど、 同じエラーでこまった人いない? ちなみにイーモバイルのほかの端末は試してない。
OutOfMemErrじゃなくて?
628 :
626 :2008/11/04(火) 15:13:38
小さいサイズのmidファイルで試してみたけど、変わらず。 具体的なエラーコードは java.lang.RuntimeException: Error code: -8 です。
上の方でatan2が無いって困ってる人(俺も困った)がいたんでコード書いてみた //tanを格納しているテーブル。配列のサイズを変えれば解像度が変わる private static double[] tanTanble = new double[360]; static{ for (int i = 0; i < tanTanble.length; i++){ //tanテーブルの初期化(範囲は90度) double tan = Math.tan(((0.5f / tanTanble.length) * i) * Math.PI); tanTanble[i] = tan; }} public static double atan2(double x, double y){ double absX = Math.abs(x);//90度で計算するので絶対値に変換 double absY = Math.abs(y); int angle = tanTanble.length;//角度 if (absX == 0)angle = tanTanble.length;//90度の場合 else if (absY == 0)angle = 0;//0度の場合 else{ double tan = (double) (absY / absX);//タンジェントを求める for (int i = 0; i < tanTanble.length - 1; i++){ if (tan >= tanTanble[i] && tan <= tanTanble[i + 1]){//角度テーブルの指定範囲内に収まっていたら angle = i;//角度決定 break;}}} if (y >= 0 && x >= 0)angle += 0;//0~90//座標変換 else if (y >= 0 && x <= 0)angle = (tanTanble.length - angle) + (tanTanble.length * 1);//90~180 else if (y <= 0 && x <= 0)angle += (tanTanble.length * 2);//180^270 else if (y <= 0 && x >= 0)angle = (tanTanble.length - angle) + (tanTanble.length * 3);//270~360 double result;//ラジアンに変換 result = (double) (angle) / (double) (tanTanble.length * 4); result = result * (2 * Math.PI); return result;} 疑似atanだから、多分本物のatanよりも早いよ。精度は悪いけど。
>>629 精度が必要でjava.lang.Math全部必要ならVisual Numerics IncのJMathもある
自力でfdlibmを移植してた俺って…
>>626 風の噂で4個までと聞いた気がする、試してないからわからないけど
>>631 サンクス
やっぱりそうなんだ、、。こちらの実機での状況と符号する。
技術情報だと、イーモバイルで現在javaが最初から入ってる端末はH11Tしか出てないんだね。
Playerクラス自分も使ってるけど 5つだけ配列確保してその中で1つをMIDIに、その他をWAVEにしてる 使い物切り替えるときはその場その場で再ロードだなぁ 他に方法有るかもしれないけど…
634 :
デフォルトの名無しさん :2008/11/09(日) 14:35:49
サウンド周りでMA7端末とMA3端末の両方で開発をしています。 SmafPlayerでMA3サウンドを再生中にsetVolumeで音量設定しても 即座に反映しない問題で悩んでいます。 しばらく時間がたってからボリュームがチャンネルごとに少しずつ反映 するような感じ。 PhrasePlayerのsetVolumeは問題ないです。 エミュレータではちゃんと動いてるんですが、実機(823SHなどサウンドがMA3 の端末)だとだめです。 pause(); setVolume(); resume(); とすれば反映しますがフェードさせたいので これじゃだめなんです。 回避方法とかあるんでしょうか?
ない
636 :
デフォルトの名無しさん :2008/11/11(火) 14:19:26
JSCL1.2.2で通信のテストをしています。 スパイシーソフトさんのビジネスプロバイダを使う都合で、 ConnectorクラスでなくJConnectorクラスを用いざるをえなくなりました。 SCLのエミュレータ、MEXAのエミュレータとも動作しました。 (当方初心者ゆえ、100%正しい動作とは断言できませんが。) しかし、実機では動作しません。 JConnector.openを囲ったtry節をつくり、エラーを調べましたら java.io.IOException でした。 実機で動かない、という状況が、579さんと同じであることと、 エラー内容が、579さんへのレスと思われます580さんの 「MIDPの実機は標準出力はない 」に関係していそうで、 どなたか、 580さんの「MIDPの実機は標準出力はない 」が、 579さんに対してどういうヒントだったのか、ご説明いただけないで しょうか。 宜しくお願い致します。
>580は>578だと思います
638 :
sage :2008/11/11(火) 15:03:18
637さん、有難う御座います。
jar内のリソースファイルの改変を検知する良い方法は無いでしょうか? 海外向けのアプリで、広告などに差し替えられるのを防ぐ目的です。 バイナリの総スキャンや独自に画像等を展開するのは 処理時間の面から避けたいと思います。 hashCode()でリソース固有の値が得られれば良かったのですが もちろんオブジェクトの値なのでこれも不可でした。
>>636 ビジネスプロバイダからダウンロードしたアプリは
接続先を1箇所しか指定できなかったと思うけど、
その辺は大丈夫?
CRCというか、拡張子変えてごまかした後に頭かお尻に適当なバイトくっつければよいだけの話のような。
てか、勝手アプリの改造みたいな真似してまで 広告埋め込もうとするのか?海外の業者は
644 :
636 :2008/11/12(水) 10:59:39
640さん、有難う御座います。接続先は1つにしています。 根本的に何かを間違えていて、 たまたまエミュで動いてしまっているのかもしれません。 たとえば、JConnectorクラスの代用としてConnectorクラスが働いてくれているとか。 そういうことがおこりえるのか分かりませんが。 あまりに突拍子もない発想でしたらごめんなさい、パニくっています。
wirelett toolkit 2.5.2で operamini 4.2 beta動かせない・・・
646 :
636 :2008/11/13(木) 15:49:06
度々すみません636です。 エラーや進行をこまかくSystem.out.println表示させ、 JConnector自体は正しく動いている様子であると確認しました。 また、実機でも、JConnectorのイニシャライズまでは動いているようです。 (実機はV705SH。ボーダフォン時代のものです。) そのあと、エミュですと「Is it OK to use airtime?(JSCL1.2.2の場合。 MEXAエミュでも同義っぽいメッセージが出ます。)」と画面がでまして、 Yesと答えますと動作します。 しかし、実機ですと、その問いかけが出ず、 java.io.IOExceptionエラーとなってしまいます。 問題が複数に起因している可能性もあるのですが、 まずはこの、「問いかけが出ない」件を解決したく。 どなたか、ご教授いただけないでしょうか。宜しくお願い致します。
647 :
おでん :2008/11/13(木) 15:49:35
GameCanvasから継承させたクラスを用意しました。 アプリ(MEXA)は方向キーと数字キー両方とも対応しなければなりません。 現在としては方向キーイベントはgetKeyStates関数で、数字キーイベントは keyPressed()関数で処理していますが、GameCanvasをこのまま継承しながら すべてのキーイベント(ソフトキーは例外)の処理を一箇所で行う方法などは ありませんでしょうか?
定数にキーの値を入れて、方向キー数字キーどっちのキーイベントが発生しても 同じメソッドにキーの値を渡せばいいんじゃない?
>>636 とりあえずぐぐると、ほぼ同様の症状の報告とそれについて原因と思われる
レス(ただしそのレスが正しいかどうかは不明)が参照できるのですが、
それについては確認しましたか?
650 :
おでん :2008/11/13(木) 19:29:27
648さん〜 有難うございます そういう方法もありますよね。 今BREWで作成してたBREWアプリをソフトバンク向けにコンバートしていますが、 どうしても数字キー7,9押下してもkeyPressed関数が呼び出されないですね。 元のBREWアプリは数字キーすべてを使っていますが、GameCanvasを利用しては そのイベントを処理するのはできませんか? またcanvasにする場合は数字キー7,9の押下の処理が可能ですか?
キーコードが間違ってるんじゃないの 出力してみればわかるけど79っていうか数字キーは全部KeyPressedで拾える
>>650 ソフトバンクはgetKeyStates()だと7、9がGAME_A_PRESSED、GAME_B_PRESSEDに対応してるからだと思う。
全てのキーをkeyPressed()で取得したほうがいいんじゃない?
getGameAction()使えば方向キーとファンクションキーも取得できるよ。
MIDP2.0の考えとしてGameCanvasはあくまでゲーム作成に特化したCanvasだ。 ゲームってのは方向キーと決定キーで操作するもので、 数字キーはゲーム機のパッドに付いてないだろ?って考えで設計されている。 アプリを動作させるハードが携帯電話に限らないわけで、 だからABCDボタンといった呼び名に抽象化されてたりするわけで。 その考えに乗れないアプリ(数字キーで数字入力をしたいアプリなど)は GameCanvasで作るには無理が出てくる。 ここは割り切ってCanvasを使うよう設計変更した方がいいと思う。 GameCanvasと言ったってCanvasをラッピングしてるだけだし、 MIDP1.0のときはGameCanvas相当のことをCanvasでやってたんだし。
654 :
おでん :2008/11/14(金) 11:37:59
651,652,653さん〜 有難うございました。 653さんの指摘の通りにCanvasを使うように再コーディングしました。 後もよろしくお願いいたします。
655 :
636 :2008/11/14(金) 14:36:29
649さん、ありがとうございます。ググり方が悪かったのか、そういうのを見かけませんでしたが、再度挑戦してみます。
656 :
636 :2008/11/14(金) 21:18:08
ググるなどしましたが、分からず。この板の503さんと同じなのかも。 しかし503さんの答えがなし…。
画像についてですが、 pngファイルでエミュレータならうまくいきますが 実機だと表示できないものがよくあります。 何か条件や注意すべきところははあるんでしょうか?
>>657 色数。
256色以下のpngじゃないと、正常に表示できない機種があるよ。
フルカラーになってたりしないかチェック。
>>658 なるほど・・。
早速やってみます。
レスありがとうございました。
PNGGauntletとか使ってると落ちる実機とかあったな。 なるべく正確なヘッダを出力するツールを使うこった。
661 :
おでん :2008/11/15(土) 11:07:59
ソフトバンクアプリでソフトキー押下処理時の質問です。 public void commandAction( Command c, Displayable d ) { if (cmdL == c) ...左ソフトキー押下時のゲーム処理 else if (cmdR == c) { ...右ソフトキー押下時のゲーム処理 } } 上のコードでエミュ(MEXA2.1)ではうまく動作しますが、実機でよく効かないときが 多いです。(効く時もあります) 上のコードを int key = devCtl.getDeviceState(DeviceControl.KEY_STATE); の形へ変更しなければなりませんでしょうか? 変更する場合は実機でうまくいくかは分かりませんが、エミュでうまく行きません。 エミュ用、実機用にコードを別々に作成しなければなりませんか?
662 :
おでん :2008/11/15(土) 11:54:03
GameCanvasじゃなくCanvasから継承されています。
>661 そのcommandAction()の記述自体は問題ない。 ・プログラムの他の部分に問題がある。 ・「ゲーム処理」に問題がある。 後者は、通信開始、保存領域へのアクセス、再描画など、時間のかかる処理は避ける。 commandAction()はあくまでキー押下検出のメソッド(状態遷移のトリガとするメソッド)なので、 フラグを立てたり、変数に値を代入したりといった処理だけにして速やかに抜けること。 DoJaのprocessEvent()を参考に言うならば、commandAction()の処理は1秒以内を目安に。
他に考えられるのは、メインの処理ループをウェイトなしでやってると 割り込みが処理されにくいってこともあるかも。 試しに10msくらいウェイトを入れてみるとか。
jadまでのリンクは出来たのですが 実機でDLしようとすると 不正なファイルです。ダウンロードはできません と出てしまいます。 これってどんな原因が考えられますかね? ちなみにアプリゲットのテストエリアで、他の掲示板にupさせてもらった時はjarまでDLできました。
jadだけ書き換えたりしてるんじゃねえの あとはMIMEくらいか
Image.createImage(byte[], 0, byte[].length); でPNGデータが読み込めません… IllegalArgumentExceptionがでます。 JPGはうまくいくのですが・・・。 Image.createImage("/file.png");だと普通に通ります。 エミュ(MEXA2.1)では普通に動くのですが実機だと エラーを吐きます。 どうすれば解決できるでしょうか・・・お願いします。
>667 IllegalArgumentExceptionは引数が不正って意味。 (byte[], 0, byte[].length)のどれかがおかしいってこと。
IllegalArgumentExceptionはファイルそのものが不正ってことじゃねえの
ファイルそのものが不正かどうか、エラーメッセージはそこまで言っていない。 敢えて言うなら、 第1引数に正しいPNGデータが入っていないのでは? 第3引数が0以下の値になってないか? とかだな。
671 :
667 :2008/11/16(日) 14:28:19
解決しました。 第三引数の値が、(data.length - 1)になってました…。 jpgは読み込めたみたいですが、pngはだめだった見たいです。 javadocの「imagedata.length - 1」を見てたのですが勘違いだったみたいです。 レスいただいた方ありがとうございました。
質問する人はさ、解決してもしなくても 結果くらい書いてもバチは当たらないと思うんだ。 有益かどうかはともかく、それ自体1つの情報なんだから。
開発環境も書かずに機種依存系の質問する人も多い中で そんな事言っても分かってもらえないと思うよ
674 :
おでん :2008/11/17(月) 15:30:57
>663 663さん〜 回答ありがとうございます。 確かにcommandAction()はほとんどソフトキー処理ですから状態遷移処理のためイメージロード部分がありました。 フラグを立ててこの関数をすぐ抜いたらソフトキーの反応がよくなりました。 (まだ全機種についてのテストは済んでいませんが)
675 :
デフォルトの名無しさん :2008/11/18(火) 16:10:37
S!アプリって以下の認識でいいんでしょうか? ・アプリは特定サーバからしかダウンロードできない ・ダウンロードしたアプリからは他サイトのデータ取得可 ・ダウンロード済みアプリの起動は他サイトのコンテンツからでも可
676 :
おでん :2008/11/18(火) 21:32:07
eclipse3.3.2/MEXA2.1で javax.microedition.lcdui.Graphics.setFont(Font)関数についての質問です。 文字列描画のごと設定しなければいけないのですか? paint()関数が呼び出される時 Font font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL); g.setFont(font); のようにフォントを設定して文字列を描画すると意図したフォントで描画されますが、 一度だけフォントを設定して描画したらデフォルトのフォントで文字列が描画されます。
>676 paint(Graphics g)で渡ってくるgは毎回別物。 だから今回g.setFont()しても次回はフォントが設定されていない。 CanvasやMIDletではなくgに対してフォントを設定してるんだしな。 「Font font = 〜」のfontを破棄せず取っておいて、 paint()ごとに毎回g.setFont(font)だね。
678 :
おでん :2008/11/19(水) 15:49:02
>677 回答ありがとうございました。 「paint(Graphics g)で渡ってくるgは毎回別物」とは初めて分かりました。 それ以外の不具合修正にも役に立ちそうです。
679 :
おでん :2008/11/19(水) 16:00:19
eclipse3.3.2/MEXA2.1でソフトバンクアプリを開発しております。 電話受信、メール着信、メッセージ着信などはどのように感知するのでしょうか?
>679 「S!アプリ開発ガイド MEXA/JSCL利用編」を「着信」で検索。 com.j_phone.systemにそれらしきListenerがあると分かるので あとはAPIリファレンスを見て判断する。 Option Unit2だから実装機種少ないかも? 知らんけど。
681 :
おでん :2008/11/19(水) 19:27:36
〉680 ありがとうございます。 お教えの通りにMailListenerを次のように実装してテストして見ましたが exceptionが投げられています。 class A extends GameCanvas implements CommandListener,Runnable, MailListener { 。。。 コンストラクタ関数で DeviceControl.setMailListener(this); 。。。 public void received(String name, String address, int detail) { } 。。。 exception メッセージは次の通りです。 java.lang.SecurityException: com.j_phone.system.DeviceControl.read was denied java.lang.SecurityException: com.j_phone.system.DeviceControl.read was denied at com.jblend.security.midp20.SecurityManagerImpl.checkPermission(+40) at com.j_phone.system.DeviceControl.setMailListener(+17) at Canvas3D.<init>(+625) at Mickey3D.<init>(+30) at java.lang.Class.runCustomCode(+0) at javax.microedition.midlet.MIDlet.createMIDletInstance(+22) at javax.microedition.midlet.MIDlet.main(+105) 何かエミュで確認する方法はありませんでしょうか?
682 :
680 :2008/11/19(水) 20:49:58
エラーメッセージはパーミッションの設定がされてないか何かみたいだけど、 エミュレータにこれをエミュレートする機能があるかどうか自分は知らんです。
683 :
おでん :2008/11/20(木) 12:42:34
> 682 パーミッションを設定する方法を教えていただけませんか? また開発アプリが待ち受けアプリですからMidletから継承されていたのをResidentMIDlet から継承させましたが、下のようなexceptionが投げられます。 java.lang.SecurityException: com.j_phone.midlet.ResidentMIDlet was denied java.lang.SecurityException: com.j_phone.midlet.ResidentMIDlet was denied at com.jblend.security.midp20.SecurityManagerImpl.checkPermission(+40) at com.j_phone.midlet.ResidentMIDlet.<init>(+15) at Mickey3D.<init>(+4) at java.lang.Class.runCustomCode(+0) at javax.microedition.midlet.MIDlet.createMIDletInstance(+22) at javax.microedition.midlet.MIDlet.main(+105) これもパーミッションが設定されていないからでしょうか?
>>683 SecurityExceptionはパーミッションの設定漏れ。
685 :
おでん :2008/11/20(木) 15:47:03
> 683 自己解決しました。 JADファイルに MIDxlet-Resident: S MIDlet-Permissions: com.j_phone.midlet.ResidentMIDlet を追加してエラーが投げられないようになりました。
書き込む前にちょっと調べりゃ分かるだろ中国人
過疎ってんだし初心者の質問ぐらい大目に見てやれよメキシコ人
前も質問させてもらったんですが解決できないので もう1度お願いします。 jadファイルを実機でDLしようとすると 確認中 の画面のあと 不正なファイルです。ダウンロードできません。 と出るんでこれはjadが悪いんでしょうか?それともjarでしょうか? jadファイルの内容なんですが MIDlet-1: Amain, aaa.ico, Amain MIDlet-Jar-Size: 48412 MIDlet-Jar-URL: Amain.jar MIDlet-Name: Amain MIDlet-Vendor: Unknown MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC-1.1 MicroEdition-Profile: MIDP-2.0 クラス等の名前は変えていますがこんな感じです。 どうすればDLできるでしょうか?
>>688 ・jarのサイズとjadに記載されているMIDlet-Jar-Sizeは完全に一致してる?
・マニフェストファイルとjadの共通パラメタの内容は一致してる?
690 :
デフォルトの名無しさん :2008/11/21(金) 23:28:42
MIME JADを単体で書き換えた など
それは一致してますね。。 アプリゲットのテストエリアなのでMIMEは設定されてると思うのですが、問い合わせてみようかと思います。 ありがとうございました。
拡張使っているというオチ
aaa.ico これが変だと思う
ホントだw アイコンはpng画像にしましょうね…。
Java言語によるモバイルゲーム開発 というのが発売されたようですが、皆様の感想は如何な物でしょうか・・・?
697 :
デフォルトの名無しさん :2008/11/29(土) 11:08:51
単語とか記憶するためのアプリを作ろうと思ってるんですけど、躓きました。 単語自体はtxtファイルに記述して、それを読み込んで使おうと思ってます。 しかし、そのtxtファイルを読み込ませることができません…。 というより読ませる方法がまったくわからないという…。 ちなみにauのオープンアプリです。 どうすればtxtファイルから文字を読み込むことができるのでしょうか? また、txtファイルを検索して、任意の位置の文字を表示させることは可能なのでしょうか? 回答お願いします。
>>695 如何なモノかと言われても、11月27日に出版されたばかりの本なんてまだ誰も読んでないと思うよ…?
著者は無名の人っぽいけど、ケータイゲーム開発の本自体が希少だから価値はあるんじゃないかな。
パラパラっと読んでみたいけど、田舎の本屋には入荷しないだろうからなぁ…。
>>696 指摘のとおりだと思う。
試してみればヨロシ。
>>697 躓いたというか根っこの所を全く勉強されていないような気がするんですが気のせい?
サーバにtxtファイルを置いて通信で取得すればOK。
txtファイルを検索ってのがどういうのをイメージしてるのか分からないけど、
サーバに置いた複数のtxtファイルから検索したいってことなら、サーバサイドも作らないとダメ。
>697 通信して取得するのでないなら、 テキストファイルをリソースに含めておいて、それを読み込んで使う。 「midp リソース 読み込み」でググれ。
>>695 今日買ってきました。
MIDP/DoJaそれぞれについて、画面表示、キー入力、HTTP通信などの解説がされています。
ただ、サウンドについての記述が皆無なのが残念!
701 :
デフォルトの名無しさん :2008/11/30(日) 00:09:47
>698 通信でやる方法もあるんですね。 でも難しそうで私には無理です… ご指摘通りほとんど勉強してないかもしれないです… 申し訳ないです >699 ググってみました。 良いサイト見つかりました。 これで先に進めます! また質問来るかもしれないので、その時も優しくしてくださいね。 お二人ともありがとうございます。
702 :
デフォルトの名無しさん :2008/11/30(日) 23:46:21
みんな画面サイズってどれくらいを想定して作ってます? 240x320くらい?
想定じゃなくて決めて作ってる 相対で配置すればサイズ変わっても対応簡単だし
企画に相対配置なら全機種対応できますが VGA端末が強引に引き伸ばして見た目が汚くなったりするかもしれないから とりあえず全機種チェックは必要かもしれないって言ったら 240x240固定で良いってさ。
705 :
702 :2008/12/01(月) 12:56:45
AUのオープンアプリは240x268固定みたいですね。 S!アプリをつくるのですが240x240だとちょっと縦がもったいなすぎる感じがするので240x268でいこうと思います。 ありがとうございました!
240×260がオススメ! ソースは俺
>>705 1行目と2行目が繋がってないとおもうんだけど・・・・
そろそろVGAが主流になってほしい
俺の開発してるソフトはVGA専用だぜ
sアプリでメールのバックアップ(pcもしくjはSDカードに保存)は可能ですか? 920scなんですが、メールのパックアップ機能がなくて・・・・
ドコモのStarはVGAがデフォルトさねぇ。
ソフトバンクは(最近特に)端末スペックをケチってる気がする。
8XXシリーズなんて3Dチップ削られてるのが多数だし…使ってる人少なそうだけど。
なわけでVGAが主流になるのはもうちょっとばかし先ですかね。
>>705 ソフトバンクのミニマムスペックは
>>706 も言っているように240*260。
240*268で作っちゃうと、動かない機種いっぱいありますぜ…。
>>710 それは無理ですのぅ。
Cavasクラスの keyPressed とRepeatedとReleased の3つを併用することはできますか? オープンアプリですが動かなくて・・。
>>710 Sアプリではメール読んでSDに保存はできるよ
でも、920scがその機能を使えるかはわからん
>>712 併用って、どういう意味?
ちゃんと順番に呼び出されてますけど。
715 :
636 :2008/12/03(水) 19:49:14
636です。悩み続けて約1ヶ月。その間勿論他の事をしていましたが、 気になって仕方ありませんで、本日久々の再挑戦で無事解決に至りました。 解決のきっかけは、506さんの残してくれた「設定ファイル」でした。 設定ファイルの意味をjadと勘違いしていました。 ヒント等をくださった 503さん、506さん、640さん、649さん 有難う御座いました。
>>712 OAP開発用ToolKitに付属のエミュは標準ではキー周りの動作が実機と一部違う
まったく動かないならただの実装ミス
>>710 >>713 スイマセン言葉足らずでした。
S!アプリにはオプションAPIとしてメールを読み込む機能が用意されているけど、
920SCはそのAPIに対応していないので無理…デス。
>>715 問題が解決したのならば後の人のためにも情報残しましょうよ…。
過去ログを読むに、設定ファイル(.vappliファイル)にアクセス先を登録してなかったんですかね?
オープンアプリをS!アプリに移植しており、TextFieldで数値を入力するという箇所があるのですが 入力すると入力画面から戻れない エラーもなんも出ないので原因がわからないのですが、どっかおかしいですか? textbox = new LocalizedTextField("時間", Integer.toString(time), 3, TextField.NUMERIC); append(textbox); で設置したTextFieldです コンパイルも通ってるし、問題なく起動もします LocalizedTextFieldをTextFieldにしても同じでした
720 :
719 :2008/12/05(金) 22:31:35
自決しました くだらん質問してすんません
721 :
デフォルトの名無しさん :2008/12/06(土) 07:16:43
イ`wwwww ネタなのかマジなのか分からんけど自己解決を自決と略すのは マジでウケるわw今年の略語大賞に決定でいい
フイタw
>>721 叩き回避の目的で「吊って来る」って自虐発言をする人がいるけど
それの新しいバリエーションなのかもしれん
724 :
デフォルトの名無しさん :2008/12/08(月) 21:48:04
だれか助けてください>< ezアプリつくろうと思うのだけど おすすめ入門サイトおしえろよ豚ども あ、ちなみに私は女です^0^
本でも買ってゆっくりやれ。
ゆっくりやっていってね!!
おやおや?まだ春になってないのに、面白い子が湧いてるぞ。
ビッチは氏んでくださいね
729 :
724 :2008/12/15(月) 16:25:31
おい、完成したぞカスども! 公開方法くらいテンプレいれとけよ! つかえねースレだな… 直ちに解りやすく説明してくださいねキモヲタくん^^ あ、ちなみに私はカワイイってよく言われます^0^
誰か構ったげて
スルー耐性ない人の練習台なので
下手にかまって向こう数年間スレに居座られても知らないよ
本でも買ってゆっくりやれ。
おまいら、カワイイ子には優しいな。 さすがだな ・;(`ε()゙
736 :
デフォルトの名無しさん :2008/12/17(水) 12:30:46
auのオープンアプリつくってます。 jadファイルのダウンロードはできて、jarファイルのダウンロードもできたんですけどインストールが必ず失敗してしまいます。 何が問題なのでしょうか?
ダウンロード成功=インストール成功じゃないの? おそらくjad単体を更新したか、MIME設定だと思う
ダウンロードとインストールは別物だろJK
自分も>736の指すインストールが何の処理なのか分からないな。 自分は>737と同じ考えなんだけど、この理解は間違ってるのか? ダウンロードが完了してjarが端末に保存されている状態を 「アプリがインストールされた状態」だと認識しているんだけど。 従って「インストール」という言葉を使う場面はまずないとも思ってるんだが、 分かる人、説明頼む。
ダウンロードはjarを端末のどこかに置く作業。 インストールはJAM管理下のストレージに置く作業。 Midlet-NameとIDで管理されてる。 アンインストールのときはIDで指定する。 ダウンロードの失敗とインストールのそれとではJAMが返すエラー番号が違う。
741 :
739 :2008/12/17(水) 17:36:45
ありがとう。理解した。
742 :
736 :2008/12/18(木) 00:06:42
自己解決しました。 jadファイルのバージョンの記述方法が誤っていたようです。 x.x.x と書くところが x.x になってました。
エミュレータでエラー吐かなかったの?
744 :
736 :2008/12/18(木) 00:45:50
エラー出ませんでした。
エミュレータはWTK?
746 :
736 :2008/12/18(木) 01:57:39
WTKですけど,ネットビーンズのIDE使ってるんでそれ関係しているのかも知れません…。
>>736 その状況なら次のどちらかになります。
1. JADとJARファイル内のMANIFESTの属性値が一致しているか?
2. MIDP仕様で必須の属性が書かれているか?
分からなければ、JADのMIDlet-で始まる属性の一覧を晒して。
>747 >742
ああjadダブルクリックしてインストールしないと直接エミュで実行しちゃうからね。
750 :
デフォルトの名無しさん :2008/12/18(木) 13:20:15
C言語でソラリス上で動くゲームが既にできてるんだけどこれをVアプリに移植するにあたってどんなことを気をつければいい?
Sアプリの開発ガイドを読んでSアプリの仕様を理解できるか。 JavaのCLDC1.1/MIDP2.0って何なのか調べて理解できるか。 APIリファレンスを読むことができるか。
CとJavaは違う言語だということに気を付けざるを得ない
オープンアプリ作ってます。 notifyDestroyed()などを使わずにソフトを終了させる方法はありませんか?
notifyDestroyed()を使わない理由って何?
755 :
753 :2008/12/19(金) 02:38:28
上手く説明できないんですけど・・・ メニュー項目があって、その中の終了を押したときに終了させたいんです。 (コマンドのメニューではありません。) そのプログラムがあるのがGamecanvasを継承したクラスなんで、notifyDestroyed()が使えないです。 それでそれを使わないで終了させたいんです・・・
そのGameCanvasからnotifyDestroyed()呼び出せばいいじゃない
757 :
753 :2008/12/19(金) 02:41:53
呼び出せません・・・>< どういった形で呼び出すんですか?
Test.java MainCanvas.javaゲームキャンバス //Test.java MainCanvas c = new MainCanvas(this); //MainCanvas.java Test test; MainCanvas(Test test){ this.test = test; } としておけば test.destroyApp(false); test.notifyDestroyed(); で呼び出せるでしょ
759 :
753 :2008/12/19(金) 03:01:27
できましたーー ありがとうございます≧≦ 申し訳ないんですけどまた質問良いですか? できるようにはなったんですけど、仕組みが理解できていません>< TestとMainCanvasを結合した、みたいな感じなんですか?
ここで細々質問するより一度javaの解説ページ読んだほうが理解できるよ
761 :
753 :2008/12/19(金) 03:17:17
わかりましたー 本当にありがとうございました
762 :
デフォルトの名無しさん :2008/12/19(金) 21:51:33
只今、プログラミングのできる人材を急募しています。Javaが使えれば(専門学生でも可能な範囲)どなたでも対象となります
仕事内容を簡単に説明すると、携帯アプリを開発する事です。報酬、勤務日数・勤務時間、勤務地などは直接お会いしてご相談させて頂くこととし、極力ご都合に合わせて柔軟に対応してまいります。ご相談時にお会いする場所としまししては都内の六本木とさせて頂きます
少しでも何か質問・興味がごさいましたら下記のアドレスまでメッセージをお待ちしてます。宜しくお願いします
[email protected]
>>753 >仕組みが理解できていません><
「Javaの絵本」って書籍読んでみると
その辺り理解しやすいかもよ
つーかマジにやっているなら自社のホームページに導くべきだろ。 それが無いならせめて自社ドメインのメールアドレスを用意するべき。 少なくともフリーメールなんてありえないw
とりあえずマルチだからスルーしようぜ
メアドググればわかることさ
オープンアプリを開発してるんだけど、デバッグでステップ実行する方法は無いですか? 今使ってるwireless toolkitの開発環境ではどうやらできないぽい ステップ実行させるならeclipseとか使う必要があるのかな?
770 :
pl45.opt2.point.ne.jp :2008/12/27(土) 23:59:21
MIDP2.0開発時のソースコードの文字コードについて ご質問させてください。 会社ではWindowsなのでSJISでソースを書いてるんですが、 自宅では、Linux系なので、UTF-8で書いています。 KtoolBarでビルドしてますが、ソースはUTF-8で統一したいなと。 どこかで設定できそうなのですが、見当がつかず、こちらに書かせていただきました。 情報をお持ちの方、いらっしゃったらご教授願います。 ktools.propertiesに記述してできませんかね?
そんな設定なかった気がするがwinでUTF-8で書けば済む話だろ。メモ帳でコード書いてるのか?
>771さんレスポンスありがとです。 UTF-8で書いたソースをWinの環境でビルドすると 「警告:この文字は、エンコーディング MS932 にマップできません。」 のワーニングがたくさん出て、日本語の文字列の部分が文字化けしてエラーになっちゃうんです。 同じファイルを、SJISにすると問題なく、ビルドできます。 設定はないんですね。 なるほど。
javacを直接扱ったことがないとこんなこともできなくなるのか
Eclipse+EclipseMEが幸せになれる気がする。 レスポンスとか言ってる奴まだ存在したのか。 てかjava触ったことないのに会社で作らされてるとかか?
710〜717の話と関係あるかもしれませんが、
「S!アプリ開発ガイド [ MEXA/JSCL 利用編 ] Version 1.0.6」を読むと以下のようにすればメールが読み込めると書かれています。
// 受信メールリストオープン
ReceivedMailBox rb =
(ReceivedMailBox)PhoneDataConnector.openPhoneData("ReceivedMailBox",0);
// メールデータを1 件取得
DataEnumeration de = rb.elements(0, 1, SORT_ASCENDING);
MailData md = de.nextElement();
// メール本文を取得
String body = md.getString(BODY_INFO, 0);
しかし、アプリゲットに載っているAPI一覧ではPhoneDataConnector.openPhoneDataはオフィシャル作者登録しても利用禁止となっています。
メールを読み込む方法は他に代替手段があるのでしょうか。
利用可能API一覧(要パスワード)
http://ac-admin.appget.com/member/api.php
絵を描くときってどうやってますか? エミュは表示できても実機じゃ表示できずにとまってしまうんですが・・・。 自分のやり方は ペイントで書いたのをpng形式で保存→Vixで256色に減色し、透明化して保存 って感じです。 皆さんのやり方を教えてください。
実機で透過pngのαは何bitまでサポートされているか確認
>>775 MEXAにはDojaでいうところのトラステッドAPI(公式アプリのみが使用できるAPI)がありません。
なので、勝手アプリで使用されると困るAPIはコンテンツアグリケータの方で規制しているのかと。
結論としては代替手段は無いと思われますし、
あったとしても、メールを読み込むアプリはアプリゲットの規約に引っかかるハズなので公開できません。
>>776 Vixというソフトは使ったことがありませんが、
減色→透明化(パレット内の1色を透明にしたということ??)した後のパレットは
ちゃんと256色(8bit)になってますか?
エミュで表示できて実機で表示できないのであれば、
おそらくパレットか画像のヘッダがおかしいかのどちらかだと思いますよ。
779 :
775 :2009/01/04(日) 01:45:03
>>778 レスありがとうございました。
ということは、上のほうで(
>>713 )メールが読めると言っているのは、
携帯内のメールではなくて、外部のメールのことですかね・・・。
メールの検索ができなくて不便だと思ったので、検索ツールを作ろうとして、
半分くらい作ったところで、APIが使えないことに気づきましたorz
ネットワーク機能との組み合わせじゃなければOKにしてくれればいいのに。
勝手アプリで使えないだけで Sアプリでは携帯内のメール読めるってことかと ビジネスプロバイダー for Sアプリでは使えるんではないかな?
781 :
デフォルトの名無しさん :2009/01/09(金) 16:39:42
ws011shでゲームアプリを作成中でちょっとお聞きしたいことがあります。 ws011shのキーボード入力をGameCanvas#keyPressedを使って 取得しようとしたのですが、keyCodeに値が入ってこなくて困ってます。 ちなみにFormクラスを使うやり方ではなく、Canvasクラスを使って キーボード入力の値を取得する方法はありませんでしょうか? よろしくお願いします。
004だがGameCanvas#keyPressed()で拾えるけど最低限のコードで試した?
あーごめんごめん。キーボードからの入力か。 MIDP2.0はハードウェアキーボードの入力は想定されてないからキーボードの入力は拾えないよ。 IMEを半角英数にしたときenterと数字キーだけ反応する。 ハードウェアキーボードをサポートするのはMIDP3.0から。
784 :
デフォルトの名無しさん :2009/01/10(土) 00:19:47
783さん、返答ありがとうございました。 MIDP2.0では、やっぱり無理なんですね。 実装方法を再検討することに致します。 ありがとうございました。
785 :
デフォルトの名無しさん :2009/01/15(木) 18:09:56
A:カメラで撮影しピクチャフォルダに保存。 B:保存された画像を、storageConnectionで取り出しbyte配列化しBASE64エンコード。 C:HTTP通信にてPOST送信 以上のS!アプリを作っているのですが、始めにそれぞれの機能を別で作成し動作確認が出来たので、 それぞれを一つのアプリにまとめたところ、アグリゲータからJConnector使う指示があったので、 指示通り、Connectorを全てJConnectorに置き換えて下記の様に初期化も追記して実行みたところ、 エミュレータ:強制終了 / 実機:一瞬だけアプリ起動時の画面が出るがエラーが発生したと出て強制終了 どうしたら良いのでしょうか…困り果ててます... public class TestAppli extends MIDlet { static MIDlet midlet; static TestAppli canvas; public TestAppli() { midlet = this; canvas = new TestAppliCanvas(); Display.getDisplay(this).setCurrent(canvas); } public void startApp() { JConnector.init(this); //JConnectorの初期化 } 開発環境は eclipse 3.4 です。 vappliファイルはビジネス配布基準通りに設定してあります。 JConnector.classは.zip化しビルドパスを通しています。 .zip化が怪しいとは思うのですが、パスの通し方がよくわからなかったので、 stubclassの見よう見まねでやってみました。 何卒、御教授いただけますよう、宜しくお願い致します。
Sアプリ知らないけどこのへんなんか怪しくね static TestAppli canvas; canvas = new TestAppliCanvas();
787 :
デフォルトの名無しさん :2009/01/16(金) 09:11:50
>>786 さんレスありがとうございます。
>>785 の書き写し間違えでした。正しくは、
public class TestAppli extends MIDlet {
static MIDlet midlet;
static TestAppliCanvas canvas;
public TestAppli() {
midlet = this;
canvas = new TestAppliCanvas();
Display.getDisplay(this).setCurrent(canvas);
}
public void startApp() {
JConnector.init(this); //JConnectorの初期化
}
…です。宜しくお願い致します。
ReadMe.txt、読みました?
789 :
デフォルトの名無しさん :2009/01/16(金) 12:01:37
>787 と、いいますと? 一応目は通しましたが。
>>785 JConnectorのzip化がアヤシイとのことですが、それでビルドはエラー無しで正常に行えてますか?
俺の場合はsrcフォルダにJConnector.classをつっこんでます。
この状態だとeclipseではソースのJConnector使用部分でエラーになっていると思うけど、
バッチとかAntとかでビルドしてやれば問題ないハズ。
JConnectorも相当古いブツがそのまま提供されているので、
せめてパッケージングしたバージョンくらいは用意して欲しいですよねぇ…。
791 :
デフォルトの名無しさん :2009/01/18(日) 09:23:36
>790さんレスありがとうございます。 JConnectorをzip化し、stubclass.zipと同じ C:\Program Files\SOFTBANK_MEXA_EMULATOR21\lib下において ビルドパスを通しimportしたところ、エラーは出ませんでした。 やはり、eclipseのみではコンパイルできないのでしょうか… パッケージングしたバージョン…欲しいですよね。 あと、eclipseでの開発も正式にサポートして欲しいところです。。。
792 :
デフォルトの名無しさん :2009/01/20(火) 15:06:02
>>790 俺の場合はsrcフォルダにJConnector.classをつっこんでます。
この状態だとeclipseではソースのJConnector使用部分でエラーになっていると思うけど、
バッチとかAntとかでビルドしてやれば問題ないハズ。
↑この時、resフォルダにpng画像も一緒にコンパイルするbuild.xmlファイルの内容を
教えて頂けますでしょうか?
次(
>>792 )の続きをどうしたら良いかわからず、困っております…
793 :
デフォルトの名無しさん :2009/01/20(火) 15:08:31
>>792 <?xml version="1.0" encoding="UTF-8"?>
<project name="PictTrans" default="compile" basedir="./">
<property name="compile" value="./Classes"/>
<target name="directory">
<mkdir dir="${compile}"/>
</target>
<target name="compile" depends="directory">
<javac srcdir="src" resdir="res" destdir="${compile}" excludes="build.xml"/>
</target>
</project>
794 :
デフォルトの名無しさん :2009/01/24(土) 09:42:20
>>785 SoftBankのコミュニティに同じような質問があったけどよく分からん。
以下抜粋。
>開発環境はプラグインを利用しての開発であれば、
>出来上がった JAR ファイルに JConnector.class を
>適切な位置に追加梱包してやればいいと思います。
どうやってやんの?
795 :
デフォルトの名無しさん :2009/01/27(火) 13:15:09
>>794 元の foo.jar を解凍
jar xvf foo.jar
↓
解凍した JConnector.class ぶっこむ
↓
jar cvf foo.jar foo
あたりで圧縮
↓
乙
確かこんな感じだった気がする…
796 :
デフォルトの名無しさん :2009/01/29(木) 13:11:02
S!アプリでソフトラベルに画像を表示させる事は出来ないのでしょうか?
そんなこと出来るプロファイルあるの? ソフトボタンを自作するなら出来んでもない。
>>796 フルスクリーンモードにして自前で描こう
799
800
801
SPALMっていう、独自言語でプログラミングできる 携帯用アプリがあるんだけど、 誰かそいつの新型の開発に付き合わね?
>>802 いくらなんでも質が低すぎだ
自作プログラミング言語の作り方。を読みながら丸映ししても、もうちょいまともな言語ができるぞ。
色々アドバイスくれるとありがたいぜ
OpenHSP移植した方がマシだな。
>>803 あれそのままMIDPに持ってきたらjarサイズがデカすぎる。
携帯にOpenHSPとか移植できんの?
HSPLetのiAppli移植なら
面白そうだな
MIDPって今ダウンロードできないのでしょうか?
810 :
デフォルトの名無しさん :2009/02/27(金) 13:02:56
意味がわからない
勘違いしていました。
j2me wireless toolkitなどです。
どこのダウンロードサイト(例えば
http://java.sun.com/products/sjwtoolkit/ja_download-2_2.html )にいっても
-----------------------
General Error
A technical error occured while processing your request. Please contact the system administrator.
Thank you for your patience.
-----------------------
このようなメッセージが出てダウンロードできません。
書いてある通りにシステムの管理者にコンタクトとった方がよいのでしょうか?
今試したらそのURLから先に進んでDLできるけど。 ユーザー登録したか? 以前ブックマークしたDLページに直接飛んだりしてないか?
いえ、1年前くらいにユーザー登録は済んでいて、ログイン状態からのダウンロードで上記のようになりました。 私だけのようですね。 もう一度登録しなおしてやってみます。
ユーザー登録し直したら無事ダウンロード出来るようになりました。 ご迷惑をおかけしました。
Sアプリで、内部で自作のクラスを new すると 固まって戻ってこない端末とちゃんと動く端末がある。 何この症状('A`)
事故解決 作ってるクラスの通信囲ってるtry{}catchの catch( ConnectionException e ){} を削除したら固まらなくなった?
MIDP2.0でS!アプリを作っています。 ブラウザからアプリを起動させるときに引数も一緒に渡してアプリ側で受け取るようにしたいのですがdojaの IApplication.getParameter(str prm) みたいにブラウザからのパラメータを受け取る方法は無いでしょうか?
818 :
デフォルトの名無しさん :2009/03/06(金) 14:58:02
>>816 俺も同じような症状でてるわ。
なんなんだろうね。
アプリを利用した後、
アプリがアプリ一覧の一番上に表示されたり、されなかったりするのって端末依存だよね?
OAPのアプリって少ないのかねぇ・・・
820 :
デフォルトの名無しさん :2009/03/06(金) 15:14:54
midiから変換したmmfってどうやって鳴らすの? AudioPhraseでもPhraseでも こんな感じでエラーが出るんだけど java.lang.IllegalArgumentException: check failed. - check at com.jblend.media.core.MediaBuffer.check(+148) at com.jblend.media.core.MediaStorage.<init>(+40) at com.jblend.jscl.media.phrase.Phrase.<init>(+43) at com.jblend.media.smaf.phrase.PhraseBase.<init>(+11) at com.jblend.media.smaf.phrase.Phrase.<init>(+12) microSDで携帯に入れたら音なったんでファイルに問題はないはず アプリでどうやって鳴らすか教えてください よろしくお願いします。
821 :
デフォルトの名無しさん :2009/03/07(土) 12:57:34
久しぶりにSアプリアップしようとしたら 「署名の付加に失敗しました。」・・・ 前にアップできたデータもこれだった・・・ 何これ。。。
>>818 俺は詳しくは調べてないけど、動いたからいいやって感じw
JADに何か設定が必要とかかね?
ちなみに発生したのは830CA
あと、アプリ一覧のは流石にアプリ側からどうしようもないから、
端末の設定か仕様だと思われる。
>>821 アプゲメンテ中w
2009/3/6:S!アプリのアップロード障害のご報告
現在S!アプリのアップロードにおきまして障害が発生致しております。
復旧に向けて対応中でございます。
ご迷惑をお掛けして申し訳ございません。
復旧まで今しばらくお待ち頂けます様お願い申し上げます。
823 :
デフォルトの名無しさん :2009/03/07(土) 16:32:13
なんとピンポイントなw 今日中には復帰するのかな・・・ 早く復旧してくれないと検証ができない。。。
あの会社週末はお休みっぽいから、 復旧は来週だろうなぁ。 ほんとやる気ねぇよなぁw
825 :
デフォルトの名無しさん :2009/03/07(土) 19:15:25
この障害はよくあることなのですか? たまたまだといいのですが・・・ せめて明日には復旧して欲しいけど。 月曜には復旧しないと技術レベルが・・・ となりそう・・・ほんと困った。。。 代わりの方法など無いのでしょうか?
826 :
デフォルトの名無しさん :2009/03/08(日) 09:42:31
質問です。 ダウンロードの際に下記が出るのですが これは対応していない端末ということなのでしょうか? "Improper data. Cannnot download application." 機種は703SHfです。
827 :
デフォルトの名無しさん :2009/03/09(月) 09:48:01
>>822 俺も830CAだわw
問い合わせしてんだけど、返事がまったく来ない…。
アプゲ復旧マダー?(´・∀・`)っ/凵⌒☆チンチン
明日中にアプゲ復旧しなかったら見切りをつけてiphoneいくよ。 いくらなんでも対応がひどすぎる。
アプゲ復旧マダー?(´・∀・`)っ/凵⌒☆チンチン
APげ復旧まだ〜?(`ε´)
832 :
sage :2009/03/10(火) 21:36:33
APげ復旧キタ━━(゚∀゚≡゚∀゚)━━━!!
アプゲで広報されてる復旧日時間違ってね?w
>>820 resフォルダ内にa.mmfがあると仮定した場合、
try{
InputStream is = getClass().getResourceAsStream("/a.mmf");
Player p = Manager.createPlayer(is, "application/x-smaf");
p.realize();
p.start();
is.close();
}catch(Exception e){
}
で再生できたような…。
うろ覚えだけど、AudioPhraseはwavを変換したmmf、Phraseはmidiを変換したspfしか再生できなかった気がする。
すみません、質問させてください。
mmfを鳴らすサンプルプログラムを作ってみたのですが、NoClassDefFoundErrorが出ておちてしまいます。
mexaに含まれる(sutbclasses.zip)クラスを使おうとすると呼ばれます。
ttp://d.hatena.ne.jp/ntaku/20080226/1204031756 を参考にさせていただき、ライブラリのパスもしっかり通しているはずなのですが・・・
環境は
Eclipce Version: 3.4.2
MEXA Emulator Version 2.3.0
J2RE Version: 1.4.2_19
JDK Version: 1.4.2_19
OS: Windows XP Professional SP3
です。
もし解決方法をご存知の方いらっしゃいましたら、ヒントだけでもよろしくお願いいたします。
何のクラスを読んで落ちてるのかちゃんと書け!
837 :
aa :2009/03/11(水) 21:26:42
Sアプリって画面の大きさを変更してプレイできるのでしょうか? 最近はFWVGAとWQVGAが増えているようですが、 切り替え可能なのでしょうか?
シャープ機はFWVGAサイズに3Dアクセラレータが使用できるImageサイズが付いてこれない
S!アプリで、通信で取得したバイナリの一部が下みたいに63に置き換わって サイズも小さくなります。 こういう現象の原因をご存知の方いませんか? 92 0 0 -96 1 0 0 2 ↓ 92 0 0 63 0 0 63 エミュは問題ないんですが実機(922SH)で起きます。 通信エラーは起きておらず、試しにpngファイルを取得させたら 問題なく表示されました。 MIDP2.0、Eclipse3.2.1で作っています。 よろしくお願いします。
>>839 ? に置き換わってるね。
どこかでテキストとして扱われてて、バイナリ<->テキストの変換で
こんな文字知らねーぞ変換できねーからとりあえず ? に置き換えとけ
ってなってるんじゃねーかと。
どうせFTPでアップロードしたとき化けたんだろ
なつかしのuuencode
某キャリアだけmimeがtext系のデータはどこかのサーバで勝手に書き換えられることがあったりなかったり。
844 :
839 :2009/03/16(月) 15:18:45
>>840-843 レスありがとうございます。
サーバにアップした時点ではデータサイズが変わっていないので
アプリのコードを疑っていたんですが別サーバを用意して試してみます。
ありがとうございました。
「Java言語によるモバイルゲーム開発」を買ってきたよ! HelloWorldのソースすら間違っているってどういうこと?w 付属のCDでは間違えてなかったけどね。 全体的に初心者に優しい作りの本ですけど、基本が出来ている人なら もっと読みやすいかも。
846 :
デフォルトの名無しさん :2009/03/17(火) 20:16:35
スレッド生成してダイアログを出力したら、 なぜかダイアログ以外にソフトキーが表示されるんだけど…。 (ダイアログ生成時にソフトキーは生成していない) どう質問してよいかも分からんし、 困った。 同様の事象でた人とかいない?
847 :
デフォルトの名無しさん :2009/03/17(火) 20:30:06
俺疲れてんな。 こんなエスポーにも分からないような質問してしまうとは。
最近携帯画面でかくなりすぎ、 対応するために新たに画像起こすのか?w それとも引き伸ばし画像?w
MIDP2.0でサーバと通信するコードを書いたんですが、phpからレスポンスを取ろうとすると4行目で
java.io.IOException
が発生します。
String URL = "
http://www.server.co.jp/start.php?prm1=100 ";
HttpConnection c = (HttpConnection)JConnector.open(URL,JConnector.READ,false);
c.setRequestMethod(HttpConnection.GET);
int rc = c.getResponseCode();
サーバに接続する前にgetResponseCode()を呼び出すとIOExceptionが帰ってくるらしいんですが
php以外のファイルは取得できるし、存在しないファイルなら404を返すのでアクセスはできているんだと思います。
MIDPでphpからレスポンスを受けられないなんて仕様は無かったと思うんですが
どうすればphpと通信できるか教えてください。
よろしくお願いします。
アプゲにうpは出来たっぽいんだが・・・・;(`ε()゙
既出でしたね、JADの内容を調べてみます
854 :
852 :2009/04/02(木) 11:26:00
解決しました、アイコンが無かったからでした。 そのサイト、入門サイトなのにアイコンが必要なことについて一切触れてないのはちょっと…。
アイコンは必須じゃない。 jadの記述内容が理解できてなかったんでしょ? アイコンの説明は第2回でされてるし、何でサイトのせいなのw
856 :
デフォルトの名無しさん :2009/04/02(木) 23:19:33
Sアプリから大きなデータをサーバにPOSTすると以下のエラーが返ってきてしまいます。PC上のエミュレータからだと問題ありません。 chunked transfer-encoding forbidden ---------S!アプリ開発ガイド [端末情報 MIDP 2.0 対応端末編---------- 一部端末に、HTTP の POST リクエストでデータを送信する場合のエンコーディングの特徴が制限事項として記載されました。 902T, 903T, 803T, 904T, 705T, 910T, 810T, 811T, 813T, 812T, 911T, 814T, 815T, 912T の場合 * POST データが 2016Bytes 以上の場合は、自動的にヘッダフィールドオプションを「Transfer-Encoding:chunked」にして送信する * POST データが 2016Bytes 以下の場合は、Content-Length を付与して送信する。ただし、flash() をコールした場合はデータサイズによらず chunked 形式で送信する ------------------- 使っている携帯が911Tなのでまさに上記の制限事項が原因に思われます。 ぐぐると、apacheのバージョンを上げれば解決するという対処法がよく書かれていますが、 サーバはxreaを借りているので、apacheは弄ることができないのです。 何か対処方法をご存知の方がいましたら教えて頂けないでしょうか。
ポストするデータに postid=送信するデータに対して一意 seqid=送信するデータのシーケンス番号 isfinish=この電文で終了か でもつければ?
858 :
856 :2009/04/02(木) 23:46:05
>>857 レスありがとうございます。
複数回に分けてPOSTするという意味でしょうか。
CGIが複雑になりそうですね。。。
ちなみに、独自フォーマットの画像データを送信しようとしています。
iアプリからオープンアプリに移植しようとしているんですが runメソッド内でこれ以上変数を定義すると Uncought exception java/lang/NullPointerException が出てしまう状態になってしまいました 何が原因か分かる人いたらお願いします
うんこexceptionはキャストミスによって起こることを覚えておき。
うんこww なんかと思ったよw
>>859 変数にnullを代入してるか、未初期化になってる。
863 :
859 :2009/04/04(土) 11:24:35
>>860 >>862 レスありがとうございます
適当に
int a=0;
とか追加してもそれになる状態なので原因は多分違うと思います。
システムプロパティの電池残量のcom.kddi.dev.powersupplyが電池残量0 (=空),1,2,3 (=満),4 (=充電中) とありますが 実際には899や771等の別の数字が表示されるのですがきちんとした値は表示されますか?
俺もそれで引っ掛かったけどいかんせん資料が少ないんだよね
>>863 > 適当に
プログラマーとしての適正ないから、あきらめるが吉。
× 適正 ○ 適性
>>865 他の人もそうなりますか・・・
簡単な数字が出るはずだけに謎ですね
>>868 Formに文字数制限(1文字)して実機に渡したらぬるぽになったんで分かった。
ドキュメントのミスか実装のミスか
870 :
859 :2009/04/06(月) 01:58:39
今の状態が説明不足だったかもしれないので詳しく言います void b(){} run() { b(); プログラム int a; System.out.println("終了"); } int a;を消すと実行できます。 int a;を消さないとb();で落ちます。b();を消してもプログラムに他の自作メソッドがある時点で落ちてしまいます。
871 :
859 :2009/04/06(月) 02:07:19
ちなみにb()は空のメソッドです
ワラタ
適性以前の問題だなw
874 :
859 :2009/04/07(火) 19:30:56
笑われるほど簡単なミスなんでしょうか・・・ 数時間原因を探したけど全く分からなかったので どなたか教えていただけたら有りがたいです
質問です。 携帯javaを学んでいるところです。 最近は、サーバにアクセスし、スケジュールの確認や登録などを行う アプリが多くあるようですが、そのようなシステムは大抵「JDBCを 使ってDBに接続している」という作り方をしているという考えで よろしいのでしょうか。 それとも、容量やスペック制限がある為、何か別な考え方で 接続しているのでしょうか。 よろしくお願いします。
アプリはhttpで「データくれ」って言ってるだけだと思う。
>>874 それだけの情報では、何が問題なのかは誰にも分からないと思うけど、
デバッグの様子があまりにずさんだからいろいろ言われるのでは?
せめて、どこで例外が起きてるか切り分けるとかしてみたらどう。
878 :
859 :2009/04/08(水) 01:51:20
>>877 System.out.println("OK");
b();
System.out.println("OK1");
どこで処理が止まったかはこんな感じで調べてました。
後空メソッドなどは原因を探る為にプログラムをできるだけ簡略化するために作りました。
一応ソースです。
デバッグ用にプログラムを削りましたがまだ見にくくてすいません。
http://zif.hp.infoseek.co.jp/tmp.zip runメソッド内の変数をどれか削れば実行できる状態です。
ソースを見た人はスレが1本埋まるほどツッコミまくりたいと思うけど、 そこは敢えて触れずにおこう。みんな、約束だヨ! >878 ネットでも書籍でもいいから、hello worldより少し複雑なプログラム、 例えば、画像を表示してキー操作で左右に動かす程度のプログラム のソースをまず探して、よく見て欲しい。 で、自分のソースと比べてみて。 単にプログラム規模の違いだけではない、様々な違いが分かるかい? 例えば、run()内にこれほど多く変数を宣言してるかい? 例えば、キャンバスを設置したあと、スレッドを生成するまでに sleep()を入れてるプログラムを見たことないかい? 自分のソースは何かおかしいって思えてきたら、それを1つずつ直していこう。 何も思わなかったら、しばらく旅に出ろ。
880 :
877 :2009/04/08(水) 10:34:14
>>879 横レス申し訳ない。
> 例えば、キャンバスを設置したあと、スレッドを生成するまでに
> sleep()を入れてるプログラムを見たことないかい?
これ自分も初めて知ったけど、sleep()入れたほうがいいの?
881 :
877 :2009/04/08(水) 12:36:45
キャラ作るの疲れたので普段の文体にします。
無職で時間あるので、
>>878 のソースを実行してみました。
たしかに、変数の宣言を削ったり、空メソッドの呼び出しを削ったりすると
挙動が変わりますね。ちゃんと追ったわけじゃないですが、たぶんメモリを
使い切ってたりするのでは?
あと、Exceptionをcatchしたときにe.printStackTrace()とかすると
どこでコケたか分かりやすいと思います。
> デバッグ用にプログラムを削りましたがまだ見にくくてすいません。
自分で見にくいと思うなら、見やすくしたほうがいいでしょう。
インデントをちゃんとするだけでも、かなり見通しが良くなるのでは。
882 :
859 :2009/04/09(木) 00:58:00
>>879-881 アドバイス有難うございました。
メソッド内の変数が多いのはアプリの容量を少なくするためだったのですが
run()内の変数を少なくすれば落ちないみたいなのでそうしてみます。
>>878 スタックたん ヽ(;´・ω・)ノ
ヒープたん (´・ω・`)
auのオープンアプリでリソース一覧を取得したいのですが制限上できないことなのでしょうか?
リソース一覧てなに? getResource()じゃないの?
おっとCLDCにgetResource()はないな。 getResourceAsStreem()な。
887 :
デフォルトの名無しさん :2009/04/12(日) 13:05:29
>>885 リソース自体の取得はもうできている
res以下のファイル一覧を取得したいと言う意味
jadのプロパティに書いとけば?
リソース内のリソースを列挙する意味は?
>>889 製作中にファイルをよく変えるので
ファイル名をいちいち変えるのは面倒なので列挙できれば選択できるので楽になると思ったのですが
それはつくり方が悪いだけ。
>>891 そうですか
その反応から判断して手段はなさそうなのであきらめますね
920T使いづれぇ、何だコレ('A`)
ソフトバンクのケータイからtelnetで自宅のPC触るソフト作ってみようかなと思いたって、 開発環境揃えてみたんですがソケットの作り方からして全く分かりません。 APIリファレンスJavaDoc版(MEXA-2.3)というのは読んでみたんですがどこにも載ってませんよね? そもそもjava自体触ったこと無いんで色々と手探り状態なんですが、とっかかりとなるキーワードだけでも誰か教えてくださいお願いします。
MIDP2.0 CLDC1.1
>>895 ありがとうございます、リファレンスのページが出てきました。
何とかやっていけそうです。
実機でtelnet端末動かしてんの海外の機種しかみたことないんだけど動くの?
質問。 オープンアプリプレイヤーで開発しています。 resディレクトリに格納している、特定のバイナリファイルを読むことって可能ですか? 画像なら、Image.createImage(filename)で読めるようですが、生のバイナリファイルを 読みたいです。ご教示お願いします。
getClass().getResourceAsStream(filename)だったかな?
>>899 ありがとうございます。スレちゃんと読んでなかった…。
InputStream in = Class.class.getResourceAsStream(filename);
これで実機で正しく動きました。
なぜClassのインスタンスメソッドなのか、凄く不思議ですが動きました。
ありがとうございました。
>>900 丁寧にありがとうございます。
ずっとjava.ioとjavax.microedition.ioの中ばかり探してましたよ…。
オープンアプリでYES_NO選択付きのウィンドウって出せないんでしょうか iアプリのDialog的なものがほしいんですが 検索してもAlertウィンドウしか出てきませんでした。
904 :
903 :2009/04/18(土) 12:50:55
ダイアログウィンドウ出せないみたいなので自作したら 意外と簡単にできたのでもう大丈夫です
905 :
デフォルトの名無しさん :2009/04/21(火) 00:10:12
今アプリゲットうpできない? 署名の付加に失敗しましたエラーになる。
あげちゃった、スマソ
http://www.saturn.dti.ne.jp/~npaka/kvm/midp2/ItemEx/index.html 上のサイトを参考にダイアログ的なモノを作ってみたんですが、
なんだか不自然な挙動になってしまいます。
■以下ソース━━━━━
import javax.microedition.lcdui.*;
//文字列アイテムとイメージアイテムを使う(フォーム)
class ItemForm extends Form
implements ItemCommandListener {
StringItem buttonString1; //文字列アイテム -ボタン1
StringItem buttonString2; //文字列アイテム -ボタン2
//コンストラクタ
public ItemForm(){
super("ItemEx");
//文字列アイテム-ボタン1
buttonString1=new StringItem("","ボタン1",Item.BUTTON);
buttonString1.setLayout(Item.LAYOUT_2|Item.LAYOUT_CENTER);
buttonString1.setDefaultCommand(new Command("",Command.SCREEN,0));
buttonString1.setItemCommandListener(this);
append(buttonString1);
//文字列アイテム-ボタン2
buttonString2=new StringItem("","ボタン2",Item.BUTTON);
buttonString2.setLayout(Item.LAYOUT_2|Item.LAYOUT_CENTER);
buttonString2.setDefaultCommand(new Command("",Command.SCREEN,0));
buttonString2.setItemCommandListener(this);
append(buttonString2);
}
//ソフトキーイベント public void commandAction(Command c,Item item) { if(item == buttonString1) { System.out.println("btn1"); } else if (item == buttonString2) { System.out.println("btn2"); } } } ━━━━━以上ソース■ ※MIDletの継承クラスはサイトの通りに作ってます こいつをエミュレータで実行した場合、 左ソフトキーを押してもbuttonString1かbuttonString2と同じ動作をしてしまいます。 (左ソフトキーを押して動作するのはフォーカスの当たっているボタンの挙動) どうやら生成したCommandクラスがソフトキーにも反映されているようです。 これは、こういった仕様なんでしょうか?
>>908 Command.SCREENの代わりにCommand.ITEMだかCUSTOMだかそんな感じのやつを使うといいかも?
JavaDoc見れないからあやふやですまん。
910 :
907 :2009/04/24(金) 10:49:44
>>909 ありがとうございます。
Command.SCREENの代わりにCommand.ITEMにしてみました。
左ソフトキーにCommandが反映される事象は解決しました。
今度は右側に出るようになりました。
携帯電話が嫌いになりそうです。
911 :
907 :2009/04/24(金) 18:36:02
ダメだ…。 原因が全く分からない。 色々ググって見たところ、こんな事象が出てるのが僕だけっぽいんですが。 なにか回避策ご存知の方居ないですか?
StringItemですら初耳
>>907 狙いは
ソフトキー押しても何も起こらず
StringItemフォーカスしてセンターキー押したら何かの動作
かな?
Command使わずにprocessKeyEventだかkeyPressedだか
そんな感じのキーイベントハンドラで
ごにょごにょしたらダメかな?
914 :
907 :2009/04/25(土) 00:52:41
まさに仰る通りの要件です。 補足すると、 『所定の動作をするとダイアログ(のようなUI)が出力され、 そのダイアログに設置されているボタンを押下すると指定通りの挙動をする。 (ダイアログに設置されたボタン以外を押下した場合の動作は無視する)』 で前任者は設計・実装しているようです。 調べたところ、 processKeyEvent等での実装で解決しそうな気もします。 (まだ試せていないので何とも言えませんが…) ただ、すでにCommandでの実装をしてS-inしているため、 できる限り実装の変更は最小限に抑えたいところです。 もし、Commandでの解決策が見つからない場合は、 processKeyEvent等で解決策を模索いたします。 聞いてばかりのクレクレ君で申し訳ありません。
そんな状態でサービスインしちゃってるのかよ! コワイナー…
サービスインは上とかクライアントの判断だからな。 携帯だとアプリがどんなものかも理解してないド素人が 普通にCPとかやってたりするから別に不思議は無い。
>>907 のコードでは、その動作が正しい。
setDefaultCommandを使えばそうなるよ。
918 :
907 :2009/04/26(日) 12:24:39
僕の上もド素人のようです。
S!アプリ開発歴6日の僕が言えた義理ではないですが…。
>>917 ありがとうございます。
やはり、仕様なんですね。
そうなると、回避策としては
>>913 のような方法しか無いのでしょうか?
ド素人はお前もだろ。
何怒ってんの?
java ME SDK 3.0のCVMとWM6用のCLDC emuがまだ動かないな。
S!アプリを作っているのですが画像を表示してその上から選択肢を表示するにはどうしたらよいのでしょうか?
>>922 画像を描画してから選択肢を描画すればいいよ
流石に釣りだろ。 HSP厨が紛れ込んだのかと思ったぜ。
素人質問失礼します。 今920SHを所有しているんですが、着うたを満足する形(音質OK)で入れることができないので、 アプリつくって何とかならないかなと思い立ちました。 物は、PCで分割したファイルを端末にメールで送信し、ファルダに保存した後、 アプリからファイル操作で結合するといったすごく簡単な仕様です。 そもそも着うたを放り込めなかったのが、softbankが利益目的もしくは著作権保護のために やっていることなのかな?と思ったので、このような猿知恵なんて通用しないんだろうなとも 思っていますが、実現可能でしょうか?
超訳: 自分でやるのは無駄だと思いますのでやっていませんが、かつてそういう 無謀な事を試した人はいるのでしょうか? いたらその結果を教えてください。 誰が答えるかw
ちょっと違う。 畑違いの人間が分厚い仕様読んで出来るかどうかを検討するより、 専門のやつが一言できるかできないか解答する方が生産的なので 教えてください、という意味。 出来るなら作るよ。
>すごく簡単な仕様です。 そう言えるだけの判断ができたのなら、実現可能かどうか自分で分かるだろ
実際の所、容量の大きなデータは鳴らす時点でハード的に容量制約が掛かっている 可能性が高いので、ぱっと聞いた限りではその著作権の有無に関わらず、 大容量の着歌を内部で生成する所までは出来たとしても、それは結局 鳴らせない気がする。 ただDocomoだと、着メロとしては登録できないが、アプリ側でデータを工夫して 鳴らす事によって大容量の着メロをアプリ上で鳴らす技術はあるらしいので、 そういう横道は考えられるが、実際もれも畑違いの場所に生息しているんで、 自分の書いたことが正しいかは分からないw
iアプリでも制限あったりで結局高音質にはならないよ
鯖たててコンテンツキーを発行すればおkと思ったけど、 それができれば苦労しないんだよね。。。 スレチなので帰ろう・・・ありがとうございました。
MMAPIの完全な仕様が実装されてればメモリが許す限り何でも鳴らせるんだけどね。
933 :
デフォルトの名無しさん :2009/05/12(火) 16:39:20
Javaは構造体使えないのが辛いなぁ Vector2Dとか気軽に使えないのが痛い・・・ ところで3GC世代のSアプリってどれくらいメモリ容量(ヒープ領域)使えるんですか? 最低でも、4MBくらいは余裕・・・?
4MBくらいは余裕で使えますん
935 :
デフォルトの名無しさん :2009/05/12(火) 17:45:52
mjd!!!! JARサイズ&レコードサイズとは別物ですよね? 最低〜最高何MBくらい見積もってますか?
SBだったけ?docomoだっけ? 3Dゲーの強化のためにOpenGL ESのver上げてヒープが16Mまで使えるようになったのは。 WM用のJBlendは10Mまで使えるが端末によって最適なサイズが違うみたいだし。
質問です。 BGM再生で、1曲を最初から最後までループ再生するのではなく、 「イントロ」→「ループ部分」→(以下、ループ部分のみループ再生) って感じに再生したいのですが、方法はあるでしょうか? サンプルソース等を探してみたんですが見つからなくて。
ない。ループさせる範囲を定義したファイルを用意して自分で処理する。
ありがとうございました。
すいません。質問させて下さい。 auのオープンアプリで、端末のメールや電話番号は 取得できるのでしょうか? できるのであれば、どのAPIを使うのか教えて頂けませんか。
無理
943 :
941 :2009/05/15(金) 18:40:01
ちょっと修正です。 端末のメール > 端末のメールアドレス です。 お分かりになる方、宜しくお願いします。
944 :
941 :2009/05/15(金) 18:40:45
>>942 無理なんですね。
ご回答、ありがとうございます。
945 :
デフォルトの名無しさん :2009/05/17(日) 14:35:14
>>944 それが出来たら「情報漏洩」しまくり
出来るのは端末番号のみ
946 :
941 :2009/05/18(月) 00:27:38
>>945 ご回答ありがとうございます。端末番号は取れるんですね。
システムプロパティですかね?
ちょっと見当たらなかったので、よかったらクラス名を
教えて頂けませんか。
教えてクンで申し訳ない・・・。
端末番号とは、端末の電話番号ではないぞ? 端末固有のIDのことだ。
オープンアプリで端末番号を取れる方法なんてあったっけ??
ない。HTTPヘッダからなら知らんが
950 :
941 :2009/05/20(水) 14:53:35
>>947 >>948 >>949 色々調べてみましたが、端末を識別するような情報は
取れないようです。
HTTPヘッダからは取れるようですが、
隠蔽設定ができるみたいだし、確実ではなさそうです。
回答頂いた皆さん、ありがとうございました。
FileInputStreamがstubclasses.zipにない…。 どないせいっちゅーねん…。
いろんなサイト見ると メインループでsleep(50)ってやってるけど 60FPS動作させるのってみんなはどうやってるの?
初めから60FPSで動くなんて思ってない。
20くらいだな
書物紹介してください
万葉集
古今和歌集
古事記
MA7のspfを作成するツールってないのでしょうか
YAMAHAに無いならシラネ
仕様公開されてないの?
>>894 なんですけど、ひょっとして生のソケットは作れない、というかひょっとしてHTTP(S)以外の通信って出来なかったりします?
TCPとUDPくらいなら使えるが実装による
964 :
デフォルトの名無しさん :2009/06/23(火) 16:31:36
>>883 Z
z
z
<⌒/ヽ-、___
/<_/____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
965 :
デフォルトの名無しさん :2009/07/06(月) 17:22:50
すみません。 S!アプリにおける、MEXAとJSCLの厳密な違いは何でしょうか?
最大の違いならともかく 厳密な違いを知りたいならドキュメント嫁
最大の違いは名前だな・;(`ε()゙
>>965 てきとーなこと言うと、
JSCL+α(S!アプリ独自仕様)のαがMEXAと思っとけばいい。
αの部分さえ使わなければ、無改修でezアプリにそのまま移植できる。
( ( (MIDP) + JSCL) + MEXA )
970 :
965 :2009/07/07(火) 17:45:14
ご教示ありがとうございます。
>>968 ちょ。適当というかデタラメ教えるんじゃないw
JSCLはソフトバンク(というかJ-Phone時代からのものだが)独自の拡張APIなんだから、
使ったらezアプリにそのまま移植なんてできない。
まぁ今更ezアプリ(Java)を作りたいという人なんてほとんどいないと思うが。
移植前提ならMIDPだけで作っとけ。
MEXAも意外と地味にバージョンアップを重ねていて、機種毎に対応バージョン異なるから互換とるのめんどい…。
レコードストアを読み書きする仮想ファイルシステムの サンプルソースはありませんか? あれば教えて下さい。
外注の中国人に作れって言ったら作ってきた奴がどっかにあったな。 手元には無いが。
レコードストアを読み書きしたいの?vfsを実装したいの?
質問です。 softbank端末について、ファイルが存在するはずなのにgetResourceAsStreamが nullを返すケースってありますか? といいますかエミュレータ上ではきちんと動作するのに、いざ実機上(705SH)で 実行してみると、上記の現象が発生してファイルの読み込みが出来ない感じです。 メモリー不足も警戒しましたが、読み込むファイルは60〜100Kのファイルが 30個近くで合わせて1.5M前後、それのうち大体4〜5個目辺りを読み込んだ 段階で発生します。読み込む直前にはヒープが1.5〜2M前後余っています。 この状態でgetResourceAsStreamの実行時にメモリー不足を起こすものでしょうか?
976 :
975 :2009/07/09(木) 21:29:09
すいません。追記です。 読み込んだファイルは半分がspfファイルでPhaseで登録した後に読み込みに 使用したワークは破棄。残りは単なるバイナリファイルです。画像の登録は 一切行っていません。
コード
MailAgent+MailDataを使用してメールを送信する時に、 本文に改行コード(\r\n)を含めると,、例外(IllegalArgumentException)が発生するんですけど、 本文に改行コードを含める場合は、何か設定が必要なのでしょうかね? それとも改行コード間違ってます? 改行なしだと正常終了できるんですが。。。 こんな感じ↓ MailData mData = DataElementFactory.createMailData(); mData.setString(MailData.TO_ADDRESS_INFO, 0, toAddress); if ( ccAddress != null ) { mData.setString(MailData.CC_ADDRESS_INFO, 0, ccAddress); } mData.setString(MailData.SUBJECT_INFO, 0, subject); mData.setString(MailData.BODY_INFO, 0, body); if ( attachedFilePath != null ) { mData.setAttachedFile(attachedFilePath); } MailAgent mAgent = MailAgent.getInstance(); mAgent.setMailTransportListener(this); mAgent.send(mData);
979 :
978 :2009/07/14(火) 05:05:31
上の件追記です ※TO_ADDRESS_INFO、CC_ADDRESS_INFOは共に指定 ※SUBJECT_INFOには改行なしの文字列を指定 ※BODY_INFOに改行文字列(1行目+ \"\\r\\n\" + 2行目 + \"\\r\\n\")を指定 ※添付ファイルなし エラー内容です java.lang.IllegalArgumentException: format error is body わかる方御願いします。。。。
980 :
978 :2009/07/14(火) 10:49:57
上記改行文字列について修正です ×1行目+ \"\\r\\n\" + 2行目 + \"\\r\\n\" ○1行目+ "\r\n" + 2行目+ "\r\n" 間違えました すいません。。。 宜しく御願いします
\rって使えるの?
982 :
978 :2009/07/14(火) 22:13:31
>981 \r\nがまずいのかと思い\nでも試してみましたが、結果は同じでした スレが終わってしまうまでに解決できればいいのですが・・・
文字コードとか