iモード携帯電話用Java(iアプリ) Part17
テンプレ終わり。
>>1 のまとめサイトは全く使われてなかったので削除した。
3以降のリンク先等はチェックしてないのでリンク切れてたらスマソ
6 :
デフォルトの名無しさん :2008/04/02(水) 22:55:08
GPS機能はトラステッドiアプリのみと書いてあったんですが、
勝手アプリでGPS機能を使う方法って全くないんでしょうか?
ブラウザで↓のリンクを踏むと、アドレスに位置情報が送られるようですが。
<A HREF="
http://アドレス " lcs>
iアプリでGPS使う方法はないでしょうか。
ブラウザ連携でアプリに引数として緯度経度を渡すなら何とか。 アプリ単独では無理なもんは無理・;(`ε()゙
真っ当な方法では無いな。 公式のアプリからトラステッドIDを盗めばできるかもしれんが、 多分不正アクセスで書類送検・;(`ε()゙
10 :
デフォルトの名無しさん :2008/04/03(木) 17:31:52
Java全くわからないのですが、 Webカメラに撮った映像をパソコン経由で携帯のアプリで見ることは可能ですか? 後、携帯の赤外線とBlue toothを使って直でマイコンなどに送受信は可能ですか? 直でなくてもいいんですが・・実現できそうですか? 教えてください。
できそう・;(`ε()゙
12 :
デフォルトの名無しさん :2008/04/03(木) 18:19:04
>>11 すいません。
できればどれを利用すればできるなど、具体的に教えていただけますか?
13 :
デフォルトの名無しさん :2008/04/03(木) 18:33:02
>>12 既に仕事のレベルだから、携帯アプリ作ってる会社に聞きに行くと良い・;(`ε()゙
つーかアプリ使えば今でも出来るだろ。 携帯コンテンツ板にでも行ってこい。
16 :
デフォルトの名無しさん :2008/04/03(木) 19:25:35
17 :
デフォルトの名無しさん :2008/04/03(木) 19:56:48
>>16 さん
すいません。
やはり自作では難しそうですね。
本当にどうもありがとうございました。
>>8 トラステッドIDだけあっても使えん。
あれはID発行時に申請したサーバの特定パスに置かれたjad以外に使用してもダウンロードエラーになる。
>>10 自宅サーバを立てられるなら、ニコニコモバイルの手法でいける。
S!というかMIDPだな
Doja4.0とDoja5.1でデバッグ性能ちがうのか?
22 :
デフォルトの名無しさん :2008/04/04(金) 00:22:30
23 :
デフォルトの名無しさん :2008/04/04(金) 00:37:35
>>18 さん
ニコニコモバイルの手法とはどのような手法ですか?
>>19 失敬。
jad→jamね。
>>23 サーバPC側で動画(この場合はWebカメラの映像)をコマ毎にJPEG画像に変換。
アプリからサーバへリクエスト→画像ファイル(数枚〜十数枚を1ファイルにパックしたもの)を取得。
で、パラパラ漫画の要領で表示。これを繰り返す。
ニコニコ公式の資料で結構詳しく解説してたような気がする。
音声を考えず、対応機種も絞ればアプリ自体は簡単に作れるっしょ。
サーバサイドの知識も必要になるけど。
26 :
デフォルトの名無しさん :2008/04/04(金) 22:44:09
>>24 さん
ありがとうございます。
検討してみます
27 :
デフォルトの名無しさん :2008/04/05(土) 11:33:17
プログラミングしたことないんだけど、とりあえず開発環境は整えた 何をすればいいのか全くわかりません とりあえずゲーム作ってみたいんだけどどうすればいいの?
>>27 とりあえず、サンプルでついてるCarRaceをいじって
何をいじるとどう変るのかを楽しんでみる・;(`ε()゙
だが、このスレで聞くよりも他の初心者スレ探して
聞いた方がいいかもというかそうするべき。
このスレは意外と初心者に厳しいw
いきなりiアプリから入るのか? Javaの入門書を先に読む方がいいと思うぞ
30 :
27 :2008/04/05(土) 11:50:31
>>28 ありがとうございます
あのゲームを作るのにこんなにたくさんのソースを書く必要があると知って衝撃を受けました
コツコツ弄ってみます
>>29 明日図書館で入門書借りてきます
ありがとうございます
俺は言語のみの入門書って殆ど読んだ事無いな。 初めて読んだのも日高徹/青山学なゲームプログラミングの本だし・;(`ε()゙
doja 入門 でググってみるといいかも。 ステップとしてはこんな感じかな。 1.Javaの基本を理解する 2.HelloWorldを実機で動かしてみる 3.簡単なサンプルをいじってみる 4.公式PDFの開発ガイドにざっと目を通す 5.CLDCのAPIリファレンスを何となく眺める 6.DoJaのAPIリファレンスを何となく眺める 7.自分で作ってみる 先は長いだろうが頑張れ!
入門書碌に読まずに人に聞いてばっかでここまで来た俺はきっと危ないコード生産機・・・
>>22 ,25
建前はそうだけど、ほとんどの機種でVMは共通だから、
最近の機種だったら、GCでdisposeされるんじゃないの?
俺の理解では ・GCは浮いている値(どこからも参照されてないメモリ)を解放する=nullを突っ込んでおけば勝手に解放される ・disposeすると次にGCが動いた時に解放される だと思ってたんだけど違う?
VMの実装がどうなってるかによるが、俺はそんな内部の事までは知らない。 そこまで知っている人が居るかも分からんが。
むしろ知らなくていいのがJavaのはずなんだろうけど、現実問題そうもいかないんだよね・・・
そこまでdispose入れたくない理由も無いなら 素直に入れとけば良いって話だが、 dispose入れると容量オーバーするとかなら南無。
>>35 >=nullを突っ込んでおけば勝手に解放される
イコールはさすがに行きすぎの気がする。
disposeは
>>38 と同じ意見かな。
GCは命令を発行しても端末によっては実行されないからな。 ひどい端末になると実際にnewなどで足りなくなった時に初めて実際にGCが実行されるという
最近かどうかは置いといてそういう端末があるのは事実だよ。
>>41 最近の端末は、そもそもコンパクションをしないわけですがw
44 :
デフォルトの名無しさん :2008/04/06(日) 13:16:13
Eclipse3.2を使っているんですが、DoJa3.5SDKを使うと、 Eclipseプラグインが上手く動作しません。 DoJa5.0SDKならEclipse3.2でも動くんですが、 アプリはDoJa3.5の携帯に対応させたいです。 DoJa5.0SDKを使っても問題ないでしょうか? (DoJa5.0の機能を使わなければDoJa3.5SDKを使うのと変わらない?)
45 :
44 :2008/04/06(日) 13:18:07
追記: 実際にDoJa5.0SDKで作ったアプリを、 DoJa3.5の携帯で動かしてみたところ、 普通に動くことは確認しました。
46 :
デフォルトの名無しさん :2008/04/06(日) 18:54:31
>>44 DoJa5.0SDKのビルドの設定でDoJa3.5を選べば大丈夫では??
>>46 float使ってなきゃそれでオケだと思う
>>48 DoJa5.1用だと
設定>エミュレータ環境設定>ビルドの設定>ターゲットプロファイル
>>49 ありがとう><
この設定ってEclipseからの起動でも反映されるのかな?><
51 :
50 :2008/04/07(月) 21:59:30
反映されてた>< ありがとう><
上手くいってよかったな。 後は中学校をきちんと卒業するだけだ。
>>53 それはすごいな
高校の頃からこーゆーのにハマった俺なんかとは圧倒的に差がつくわけだ…
最近の若い人達がむちゃくちゃ出来るのは
やり始めた時期が違うから、なのですねえ
55 :
デフォルトの名無しさん :2008/04/08(火) 16:23:47
iアプリのダウンロードゲームで 「オタマジャクシのようなくねくねした物体が、洞窟の壁にあたらない様に進むゲーム」 って何て言うゲームでしたっけ?
インターネットに触れやすいし、ソフトもあふれてるからねぇ、 後若い方が時間もあるし、勢いがあるよね・・・ 昔の俺もクソみたいな環境でよくちまちま作ってたよ。今は腰が重すぐる
58 :
デフォルトの名無しさん :2008/04/08(火) 16:29:07
>>57 あなた神ですよね?
有り難う御座います。
どっかのSunかなんかのドキュメントで、nullを入れることでGCで回収され易くなることは書いてあったけど、 その為にnullをいれるならコード自体を見直すべきだ、な感じなこともことも書いてあった。
>>59 回収されやすいというか何というか
null入れないとunreachableにならなければ
そりゃ回収されないわな。
逆に、nullにしなくても(スコープ抜けるとかで)unreachableになれば回収される。
CLDCではどうか分からないけど、J2SEのオブジェクトのライフタイムとかそんな 資料だったか、GCで開放されるメモリはある程度段階的で、GCすれば全ての 浮いたメモリが即開放されるわけじゃないって書いてあった覚えがある。 だからこそ内部で半固定的に保持し続けるようなリソースは、開放するための手段が あればできるだけ使ったほうがいいんだと思うなあ。
単純に考えれば a=new A ←→ a=nullなんじゃないの?
disposeも内部ではnull代入だけとか?w
65 :
デフォルトの名無しさん :2008/04/09(水) 17:40:43
デジカメで撮影した画像を microSDでFOMA端末に移して その画像をselectEntry()で選んでサーバに送信するiアプリを作りたいんだけど 1.selectEntry()で選択できる画像の制限に関する情報 2.selectEntry()で選択した画像のデータサイズをcamera.getImageLength()みたいに取得する方法 が分かる方、資料の在り処とかでもいいので教えてください 1.はそもそもバッテン表示で選べなかったり、選んでみてもUIExceptionとエラーが返ってきたりとかして困ってます
>>65 方法1
ImageStore#getInputStream()でInputStreamを取得
ByteArrayOutputStreamを生成する
EOFExceptionが出るまでByteArrayOutputStream#write()にInputStream#read()する
ByteArrayOutputStream#size()がファイルサイズ
方法2
ImageStore#getInputStream()でInputStreamを取得
取得直後のInputStream#available()をファイルサイズとみなす。
試してないし、特に後者は果たしてファイルサイズと評価して良いのか悪いのか、明示されていないのでわからんし。
前者は普通にバイナリを作成してるからメモリを食う。
思い付くところでこんなところ。詳しくはjavadocを嫁。うぷするみたいだし、方法1で良いと思うが
67 :
デフォルトの名無しさん :2008/04/10(木) 00:45:47
iアプリGPS利用しようと思っていろいろ調べたら 位置情報をiモードブラウザでアップしてiアプリからDLすることでできるっぽい!! と意気込んで試したら、、、 LAUNCH_BROWSER_SUSPENDがオプションAPIということに気付く。。。 #P905iで確認 もう一度iアプリ起動してサーバからDLするしかないんですかね? ブラウザの起動でタダでさえ手間がかかるのに iアプリの再起動も必要となるとはorz それとも他に方法があるなら教えてください
>>61 それって世代別GCのこといってるのかな?
だったらその通りだよ。
だけど、さすがにメモリが足りなくなりそうになったら、到達不能なものは全部開放されるよ(full GC)。
ちなみに、CLDCのVMは、世代別GCは搭載されてないとおもう。
>>67 そもそもi-modeブラウザとiアプリを同時に起動できる端末なんて少ないよ。
ほとんどの端末がi-modeブラウザを起動させるときはiアプリを落とさなきゃならない。無論P905iも。
出来るのはN(903i以降)くらいだった希ガス
とりあえず、非トラステッドでもi-modeブラウザとiアプリを使ってGPSを利用してるアプリは少なくないから、まずはその動作の様を確認するべきかと。
サスペンドの解釈を間違えてると思うし、S!アプリみたいな一時停止機能はiアプリでは期待出来ないよ
70 :
67 :2008/04/10(木) 20:17:57
>>69 ありがとう
勝手アプリでGPS使ってるの見つけれんかった。。。
ちょっと考えたけど、ブラウザから再起動させるやり方がベストか
カメラを起動して写真に位置情報つけて読み込むという荒業を試す俺。
com.nttdocomo.ui.GraphicsにgetFontメソッドがないのは 激しく不便な気がするのですが、普通の人はそうでもないんでしょうか。
com.nttdocomo.ui.Fontにあるからいいじゃん
>>70 GoogleMapはそうだよ。
ついこないだトラステッド化したけど、それ以前はブラウザ経由で位置情報取得してた。
>>72 Graphicsにいつ設定したかわからないFontを取得したいと思うのは
そもそも設計自体がどうかと思うかな。基本的にGraphicsは書き込む(set)する対象であって
読み込む(get)する対象じゃないし。
Fontが必要ならメンバとして保持しておけば良い。
FontはdrawStringする前に必ず正しいものをセットするもんだしなぁ。 まぁgetOriginXとか無いのは不便だなーと思うときもあるよ。 だからラッパークラス作ったしw
77 :
デフォルトの名無しさん :2008/04/11(金) 00:54:12
わかりません
>>75 その考え方で設計がおかしいと言い切るのは思慮に欠けていると思う。
俺は逆に、自分の処理でsetして必要な処理が完了したら以前の状態へ戻すべきだと考える。
/** デバッグ情報を描画 */
void drawDebugInfo(){
Font oldFont = g.getFont();
g.setFont(小さなフォント);
g.drawString(デバッグ文字列);
g.setFont(oldFont);
}
/** ゲームメッセージを描画 */
void drawGameMessage(){
g.setFont(大きなフォント);
g.drawString(ゲームメッセージ1);
drawDebugInfo();
g.drawString(ゲームメッセージ2);
// ↑setFontし直す必要が無い
}
この場合drawDebugInfoの内部実装を意識せずに済むというのは
汎用的な機能メソッドとして使えるなどのメリットになると思う。
まあ、これはGraphicsのcopyを作って使ってもいいんだけど、
処理の大きさを考えると、使った分戻すってのが最小限で良いと思うんだ。
てかMIDPにもgetはあるしね。
>>76 うちもラッパー作って最近公開したよ。個人的に凄くタイムリーな話題だった。
あと今更だが、
>>72 はsetFontの対という意味でのgetFontのことを言ってるのか?
それとも
>>73 の意味のことを言っていたのか?どっちだ、不安になってきたぞ。
79 :
65 :2008/04/11(金) 09:09:12
66さんありがとう、方法1で画像のサイズが取れました あと71さん そもそも画像に位置情報埋め込めない端末とか 普通に写真取るときは埋め込めるのに、iアプリから起動したカメラだと埋め込めなくなる端末とか これはうろ覚えだけど、せっかく埋め込んだのに送信時にわざわざ位置情報消してくれる端末とか あったよ
80 :
デフォルトの名無しさん :2008/04/11(金) 09:43:03
>>76 俺はMIDPにあるgetClip〜が無いのが不便だと思ったのでラッパー作った。
実機無いんで分からないんですが Connector.openにGUID=ON渡したらiモードIDきちんと送られますか?
82 :
72 :2008/04/12(土) 00:19:27
>>78 setFontの対という意味でのgetFontのことです。
説明不足ですみません。
java.awt.Graphicsにもjavax.microedition.lcdui.Graphicsにもあるのに
これだけにはないんですよね。
getFontではないにしろ、どうやら他の人も自分と似たような
不便さを感じていたようで。
自分もラッパークラスを作ってみます。
どうもありがとうございました。
>>81 結論から言うとできるようだ。
というか、お前Docomoユーザの友達いねーの?
84 :
71 :2008/04/12(土) 10:56:02
>>79 まぁ、そうだろうとはおもった。
Nではできてるんだけど、他はどれぐらいできのだろうか。
根っこが同じのPぐらいしか無理なんだろうか。
APIにはやれと言わんばかりのメソッドあるのにな。
しーっ!
それがドキュモクオリティー
87 :
デフォルトの名無しさん :2008/04/13(日) 23:30:47
みなさんが低レベルAPIでコンボボックスを使いたいとき どのような実装にしていますか?もしくはしますか? ソースレベルで書いてもらえるとベスト!
(;^ω^)
>>87 ソースレベルでも何も文字列持ってそれ表示するだけじゃねぇか。
何が分からないんだか分からん。
とりあえず本名と所属を言え、まずはそれからだ。
>>87 また、ゆとりを装った仕事を人任せにする人か。
91 :
87 :2008/04/14(月) 01:11:55
>>89 んっと、PanelならListBox.CHOICE使えばいいと思うんですが
Canvasで同じようなことしようとするのに容易な方法あります?
ちなみに、趣味でやってるだけで会社の仕事じゃないどす
無い
93 :
75 :2008/04/14(月) 14:25:22
>>78 その考えも間違ってはいないと思うけど、
必ず戻すことを保証するように作っているかどうかが問題だと思う。
>>drawDebugInfo();
>>g.drawString(ゲームメッセージ2);
ここの部分で、drawDebugInfo();が描画を破壊している恐れがあることを考えると
、g.drawString(ゲームメッセージ2);はそのまま自分の表示したい設定もせずに
描画することが危険であると思える。
実際にメソッド内でどこまでGraphicsオブジェクトが書き換わるかわからない訳だし。
この例で考えるのであればdrawDebugInfo();の引数にFontを渡してやって、
drawDebugInfo()の最後で渡されたFontに復元することを保証するメソッドとして作る
という書き方もできる。その場合は引数は増えるけどGraphicsにsetFontは要らない。
constがないJavaでやっている以上、不毛な議論だろそれは。
95 :
デフォルトの名無しさん :2008/04/14(月) 15:17:56
DoJa5.1でiアプリを開発している者です。 iアプリに関しては初心者です。 今やりたいのが、 文字列と画像(複数)をいっぺんにサーブレットに送信すること。 URLに引数をつけるのは、セキュリティ上アウトなんです。 OutputStreamに文字列もバイナリも含めて送信し (バイナリは文字列として)、 サーブレット側でその文字列を切り分けてみましたが 画像は壊れてしまいました。 (文字列は正しく取得できましたが) そもそも私がやろうとしていることって、 iアプリで実現可能なんでしょうか? 分かる方、教えて下さい。
容量の限界はあるが、可能。 バイナリデータは送信可能。あとはどういうフォーマットで送るかは自由。 失敗したというのなら、送信容量を越えていたか、プログラムミス。
多分送信容量と予想して jguidefordoja5_x_071101.pdf のP115 読んでみ?
98 :
95 :2008/04/14(月) 17:42:32
>>96 >>97 レスありがとうございます。
容量は問題ないので(ちょこっと文字列と画像15KB)、
プログラムミスだと思います。
実現可能だと分かっただけでも嬉しいです。
もうちょっと頑張ってみます。
初心者って事なら、Image#toStringとかして streamに突っ込んだんじゃないの? 元のgifなりjpegファイルなりのbyte配列を送信しないとダメよ。
100 :
95 :2008/04/14(月) 19:20:11
>>99 レスありがとうございます。
iアプリからサーブレットへの接続部分はこんな感じです。
(パート1)
// カメラオブジェクトの取得
Camera camera = Camera.getCamera(0);
// byte[]のimgに撮影画像のバイナリを格納する
InputStream w_in = camera.getInputStream(0);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buff=new byte[1024];
int size;
try {
while ((size=w_in.read(buff))!=-1) {
baos.write(buff,0,size);
}
baos.flush();
baos.close();
w_in.close();
} catch (IOException e) {
e.printStackTrace();
}
byte[] img = baos.toByteArray();
101 :
95 :2008/04/14(月) 19:21:16
(パート2) // HTTP POSTのリクエストボディに格納する文字列を取得 String postData = "key="+strKey+"&img="+ new String(img); // 出力先への接続を設定 HttpConnection w_connect = (HttpConnection) Connector.open(URL,Connector.READ_WRITE, true); // 要求メソッドとコンテンツタイプを設定 w_connect.setRequestMethod(HttpConnection.POST); // 出力ストリームを取得 wo_stream = w_connect.openOutputStream(); // 出力ストリームへ書き込む wo_stream.write(postData.getBytes();); // 接続 w_connect.connect(); どうでしょうか・・・?
new String(img)なんてしたら、データが壊れるだろw 文字列で表現できないバイトが出現した瞬間に終わる 素直に String str = "key="+strKey+"&img="; wo_stream.write(str.getBytes()); wo_stream.write(img); とバイナリのまま送っておけ。 サーブレット側で「xxx=」で自動切り分けする機能とか使っちゃダメだぞ。自前でやれ。
これはひどい
104 :
95 :2008/04/14(月) 20:55:47
>>102 バイナリをStringにしてはダメということでしょうか?
そうすると、サーブレット側もダメっぽいです・・・。
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
try{
/** アプリからの情報を受信 **/
// 入力ストリームを取得
InputStream wi_buffer = request.getInputStream();
// StringBufferインスタンスを作成
StringBuffer w_StringBuffer = new StringBuffer();
// 送信されたストリームを読取
String w_PostData = "";
int w_char;
while ((w_char = wi_buffer.read()) != -1) {
w_StringBuffer.append((char)w_char);
}
w_PostData = (String)w_StringBuffer.toString();
// 画像データの取得
byte[] image = w_PostData.substring(w_PostData.indexOf("img=")+4).getBytes();
こんな感じなのですが・・・。
バイナリをStringにするとかありえないだろ byte配列にして送って、文字列だけStringに変換すりゃいいじゃん
106 :
87 :2008/04/14(月) 21:59:50
>>92 やっぱ簡単には無理ですよね?
一応、簡単そうなダイアログボックスのクラス作ってみたけど、
コンボボックスの考え方もこんな感じで問題ないですか??
まぁ素直に用意されてるDialog使えってのはあると思うけど
自作だと色とか初期フォーカスとかカスタマイズできるんで。。。
ただ、Display.setCurrent()での画面切り替えでちらつくのはどうにかならんかなぁ
class DialogBox extends Canvas{
public void paint(Graphics g){
g.lock();
g.setRGBPixels(0, 0, Display.getWidth(), Display.getHeight(), g_pixels, 0); // 前画面を描画
// ダイアログ背景、タイトル、メッセージ、ボタンの描画
g.unlock(true);
}
public void show(){
g_frame = Display.getCurrent();
g_pixels = (((Canvas)g_frame).getGraphics()).getRGBPixels(0, 0, Display.getWidth(), Display.getHeight(), null, 0);
Display.setCurrent(this);
}
public void processEvent(int type, int param){
if((type == Display.KEY_RELEASED_EVENT) && (param == Display.KEY_SELECT)){
Display.setCurrent(g_frame);
}
if((type == Display.KEY_PRESSED_EVENT) && ((param == Display.KEY_LEFT) || (param == Display.KEY_UP) || (param == Display.KEY_RIGHT) || (param == Display.KEY_DOWN))){
// ボタンフォーカスの移動
repaint();
}
}
}
どうしても文字列で送りたいならBase64にでもエンコードすれば? 自分でエンコードしなきゃいけないし、通信量も増えるけど。
つまり、iアプリ初心者ではなくJava初心者という落ちか。
いつものことさ
仕方あるまい。 Javaをマスターしていればiアプリの質問は出ないだろうし逆も同じだ。 通信周りが違うと言っても、比較的簡単な部類だし。
>>107 BASE64はDoJaにAPIがあった気がするが……
まぁ95は取り合えずjavaの基本から勉強しなおした方がいいな
112 :
95 :2008/04/15(火) 01:59:18
そうですね。確かにJAVAの修行が足りませんね。 何はともあれ、皆さんの助言のお陰で、 どうすれば良いのか分かりました。 ありがとうございました。
どっちかというとプログラミング以前の計算機科学基礎ができないのでは?
自分の世代が8bitパソコンのBASICで試行錯誤しながら基礎を学んだ様に、 いまどきのコンピュータキッズは携帯電話のJavaで基礎を学んでるのかも。
恒例のゆとりVSオジサンですか
お前ら試行錯誤してあと一歩のとこまで来てる初心者を滅多打ちしてんじゃねーよw
>>95 アプリとサーブレット、こんな感じのフォーマットでやってみ。
0-3 バイト 文字列長
4〜 文字列
その後ろに
0-3 バイト 画像ファイルサイズ
4〜 画像のバイナリ
現状 key= とか邪魔。
ちゃんとPOSTでバイナリと文字列送りたいなら、
BASE64エンコードするなりマルチパートで送らないとダメ。
117 :
114 :2008/04/15(火) 12:03:43
>>115 いや、「初心者叱るな来た道だもの」と言いたい訳よ。
118 :
95 :2008/04/15(火) 12:26:42
たった今、動作確認しました。 文字列は文字化けせず、画像も壊れることなく、 ちゃんとサーバに送信できました。 サーブレット側で、 まずは入力ストリームからbyte配列を取得しました。 それから"key="とか"&img="とかをbyte配列にしたものを手がかりに、 入力ストリームのbyte配列を切り分けていきました。 で、文字列情報はStringに直しました。 一応これで、やりたかったことは実現できましたので、 助言して下さった方々に感謝します。
119 :
95 :2008/04/15(火) 12:30:21
あと116さん、惚れました(116=男性という前提でw)。 どうもありがとう。
アーッ!!
ネットで牝アピールとかしないほうがいいよ・・・
おいおい、惚れた掘られたの話は他所でやってくれよ(´ー`)y-~~
123 :
デフォルトの名無しさん :2008/04/15(火) 13:11:10
裏技キタ━━━━(゚∀゚)━━━━ !!
こんにちは。 最近iアプリ開発に携わることになりました。 で、iアプリでもTDDを行いたいと考えているのですが、 どなたかJMUnitをDojaに移植した方はおらっしゃいませんか?
(‘ω‘)
東京ディズニー ダンジョン( ゚Д゚ )
三月磨臼を探すアレか
で、移植したらどうなるっての?
邪神復活
移植して何がしたいのか、返答によってまたコメントが変わるよな。何がしたいか解らない今は言うことないし
ケータイの3D機能って全機種に搭載されているわりにあまり使われてないような気がするのですが、 やっぱり非力だから? 3Dの解説してるサイトや、面白い使い方してるアプリを知ってる方居ませんか?
>>133 非力と思うなら、
最新機種で人気ゲームをダウンロードしてみることだ。
135 :
デフォルトの名無しさん :2008/04/20(日) 01:01:58
面白いかどうかは別としてリッジレーサーにはびびった
>>133 勝手アプリだとOpenGL使えないから厳しい
マスコットカプセルは問題外だし
今の最新機種の3D性能は初代PSの6割くらいはあるよな? それだけの物が作れるかは別として。
>>134 いえ、リッジレーサーや鉄拳やバイオハザードなんかは確かによく動いてると思うのですが、
勝手アプリで3Dを生かしたアプリをあまり見ない(気がする)のはなんでかなーと。
ゲームに限れば、3Dゲームは2Dゲームより操作が複雑になりがち
→ケータイのキーでは操作性が悪い
ってのはあるかもしれませんが。
>>135 P905iにプリインストールされてるヤツですかね?
あれは確かにすごいと思いました。
>>136 勝手アプリはマスコットカプセル以外の選択肢ないですよね?
(ドコモがOpenGLをトラステッドのみに制限する意味もよくワカランのですが)
マスコットカプセルはどのあたりが問題外なんでしょう?
やっぱ、コマーシャルプロダクトに閉じてる点じゃないかな。
>>138 かじれば分かるだろうけど、作りづらい上にろくなもんできないだろ。
少なくとも俺みたいなへたれには
141 :
デフォルトの名無しさん :2008/04/21(月) 01:29:07
java言語の3Dじゃ鉄拳とかリッジレーサーのような動きは出せない 他の言語は携帯端末を破壊する恐れがあるので個人では使用できない
java言語の3D?
キャンバスに自力で書くんじゃね?
じゃあ俺はN88BASICの3D作るわ
あったなー、N88BASIC用の3D 意味も分からずにサンプルソース打ち込んでたの思い出したw >3Dを生かしたアプリ というのがそもそも何かが分からん。
149 :
デフォルトの名無しさん :2008/04/21(月) 10:54:54
>>142 大手ゲームメーカーがjavaでアプリ作ってると思ってるのか?
C言語で作ってるに決まってんだろ
iアプリってのはDoJaプロファイルに従って作成されたJavaアプリケーションのことじゃないの? 何でC言語が出てくるんだ
>>149 大手ゲームメーカーはマシン語で作ってるに決まってる
俺も携帯の仮想マシンで動かせるC言語が欲しい。 誰か頂戴。
つ au
>>153 Java仮想マシン用のバイナリを吐くCコンパイラって、あるんじゃないの?
gccならターゲット定義が簡単だし。
iアプリってSDカード経由でインストールできますか?
>>155 何それ・・・、メソッド全部staticってこと・・・?
質問が終わったらいつものくだらない雑談になると
D905iってjpg偽装ならアプリからデータ吐き出せる? 偽装gifだとデータ壊れるみたいなんだが。
話はループする
過去ログ見ればよくねー?
過去ログ読んだけど結局答え出てなかったなw
gifピクセルに入れればいいって話があったはずだが
バイナリコメントじゃなくて、テキストコメントにすればOKって結論じゃなかったっけか
ぶっちゃけサンプルソース欲しいな よくわかんね
>>165 これくらい分からなくてどうする。
参考ページは幾らでも見つかるぞ。
サンプルソースで考える楽しみを奪うなんて酷すぎる(´;ω;`)
お前ら手厳しいなw
アプリが1MBまでになった今リソースをネットからダウンロードする意味ってあるんですか? 例えば、RPGではマップの配列をダウンロードして使う場合もあると思うんですが もう中に組み込んじゃった方が便利だと思うんです ネットからダウンロードというのは昔容量が少なかったときの苦肉の策で今使う意味は ないような気がするんですが、どうなんでしょうか?
1M超えるデータでも扱えるやん
え?今はスクラッチパッドも含めて1MBだから意味ないんじゃないでしょうか?
何度も通信して落としてきたらいいやん
あーそういうことですか 今言いたかったのは初回起動時に通信してデータをダウンロードする場合の話で 一時的に使うデータをダウンロードするのはそういうのが必要なアプリならいいんじゃないでしょうか
そもそも1回の通信で150kbまでしか落とせないはずだが緩和されたの?
>>175 150kbを何度も繰り返せばいい。
>>174 最初にリソース全部落として、それ以降変更が無いのであれば
リソースに組み込んでも良いと思う。
リソースをVer管理して、認証時に自己照合させる。 リソースVerが違っていたらリソースをDLしなおさせる。 ってやっておくと、全プレイヤーに常に最新のリソースを使わせることができるので便利。
>>169 単に900とか古い機種対応が面倒だから
古い機種にあわせて新しいのも同じ仕様って事だと思う。
少なくともウチはそんな理由。
さすがにまだ903以降のメガアプリオンリーというわけには行かないんじゃないかな 3以降なのにメガアプリ未対応なショボいケータイもあったりするからなぁ
仕様変更とか来たときにスクラッチパッド使用の方が 逃げ場が多いってのもあるかな。 リソース作製側にサイズ制限も伝えやすいし。
182 :
デフォルトの名無しさん :2008/04/25(金) 11:01:11
スレ違いだったらゴメンナサイ。 今、iアプリを作成していて、JARサイズが100Kを超えてしまってます。 ※ProGuardも使用していて、100Kを超えます。 そこで、7zipを使えば良いと聞き、試してみましたが、正常に動作しません。 ちなみに方法は、 ・Jarファイルの拡張子をzipに変更 ・そのzipファイルをいったん解凍 ・出来たフォルダを7zipで再圧縮 ・7zipファイルの拡張子をjarに変更 これをプロジェクトの中のjarファイルと入れ替え、jamファイル内のAppSizeを変更して、エミュで実行させたのですが、 java.lang.ClassNotFoundException: exb と表示され、起動しませんでした。 何が間違っているのでしょうか。 もし、分かる方いらっしゃいましたら、アドバイスお願いいたします。
Windows以外のOSで7zipする
jarg使えば
185 :
デフォルトの名無しさん :2008/04/25(金) 13:41:03
>183 アドバイスありがとうございます。 Windows以外で7Zipすれば良いのですか? 開発環境はWindowsなのにですか? あと、Windows以外の環境がありません・・・。 (Win2000です) >184 ありがとうございます。 jargってproGuardよりもコンパクトになるんですか? 後で試してみます。 でも、出来るなら、クラスファイルの圧縮(→jargやproGuard)以外にも、圧縮できる方法を探しています。
187 :
デフォルトの名無しさん :2008/04/25(金) 14:42:24
>186 ありがとうございます。 もちろん、コード自体の見直しも行います。 (ちなみに現在でも、プリプロを使って定数を数値に置き換え等はやっています) が、さらに小さくする為に7zipでの再圧縮のやり方が知りたいのです。
>>182 ZIP形式で圧縮してる?
コマンドライン版なら -tzip を指定。
189 :
デフォルトの名無しさん :2008/04/25(金) 15:26:17
>188 ありがとうございます。 圧縮形式はZIPを指定しました。 ちなみに、7Zipツールの設定は、 書庫形式:ZIP 圧縮レベル:最高 圧縮メソッド:Defalt 辞書サイズ:32KB 語長:32 となっておりました。 何か間違っていますでしょうか?
レベル:超圧縮 語長:256 とか
Windows上だとファイル名が大文字と小文字で区別しないからおかしなことになる
メガアプリな世の中で、もはや圧縮はべつにって感じ
>>192 費用対効果薄すぎw
jarを30kに収める時代は終わったのだよ
195 :
デフォルトの名無しさん :2008/04/26(土) 00:14:51
質問なのですが、 Eclipse+Dojaで自分で作成したクラスをまとめて オリジナルのクラスライブラリ(jarファイル)として、 次回作るアプリに組み込みたいと考えています。 Doja用のクラスライブラリをEclipse上で作成するには どのようにすればよいのでしょうか?
>>193 >>194 個人でアプリ作るだけなら確かにそうだが、
企業としてはまだまだ30KBアプリも要求されるんだよ・・・。
まぁもう1〜2年すればさすがに30KBは切り捨てられて100KBが最低ラインになるだろうけど。
なってない現場で働いてるから言ってるんだが…。
>>198 ジャンルを詳しく。
最近ダウンロードしたアプリで30KB+スクラッチパッドのなんて見ないぞ。
ただの一般人がiアプリゲームサイトからDL出来るような話では無いと思われ
どこにただの一般人が登場したのだろう?
DoJa5.1でプロジェクトを読み込むときとか、 設定を変えたときとか、ことあるごとに「レジストリの設定に失敗しました」と出るんだけど、 どこをいじれば治る? いまのところ無視すれば一応コンパイルも実行もできるので問題ないんだけど、 設定が保存されなくてめんどくさい。
よほど30KBの安仕事を バカにされて悔しかったんだろうな
30KB叱るな来た道だもの
自演大変ですね一般人さんw
この場合の一般人ってどんな定義? プログラム板に居るのが前提だから、プログラム初心者のことを指すのか?
個人だろじょうこう
趣味でやってる人が一般人と呼ばれてる? なんだか可哀想。
僕、アルバイトォォ!!
般ピ必死すぎ
「505系も対応してください」で普通に30K縛り。・゚・(ノД`)・゚・。
700 とか 701 くらいでも 30K 縛りなんだが……
さすがに505系はもう対応やめさせてホスイ・・ あまつさえD505まで対応。・゚・(ノД`)・゚・。
対応の手間とか、全部考慮して料金請求してるなら問題無いだろ? 505対応ならふっかけとけw
505用にショボアプリ用意しとけばいいんじゃないか? 旧機種用(このアプリはバージョンアップの予定はありません)みたいな感じで
未だに505もとか言い出すCPっているんだな
めんどいからか、どこかで対応しておくことの(嘘の)メリットのみを吹き込まれたか・・・ 何にせよ流石に無能だろ
>>219 アクセスログとれば、505どころか900ユーザも少ないことが分かるのにね。
ライトユーザー向けのミニゲーム集のようなコンテンツの需要もばかにならないんじゃない? そういうユーザーは古い機種の比率高そうだし。
そもそも古い機種使ってるような奴はiモード使わないだろ。 電話とメールしかいらないから機種変しないって層だし。
>>222 古い携帯を使い続けるようなユーザーがゲームをやるとは思えない
そもそも対応してるゲームが少ないの分かってるだろうし
通信も遅いしアクセスしに来ないだろ
この話題何回ループするんだ 学習能力ないのか
前回何時出た話?
まんこまんこー
>>222 バッテリ3回は買い換えてそうな、
そういったユーザもそろそろ705iあたりを買うだろう。
で、いきなりメガアプリ対応w
パケットパック10
>>229 705系ならメガアプリ非対応は結構あるぞ、まぁそれでも100Kだけど
>>226 過去ログも見れない馬鹿は大変ですね^^;
見る気もないと言ったほうが正しい気がする。 どっちにしろ馬鹿呼ばわりで問題ないが。
っつーか、なんで不必要に喧嘩腰なんだよ。 2chだからって無理にギスギスさせんでも。
スレがやたら伸びてると思ったら何やら俺が振った話題で荒れてるようで…。
>>199 公式サイトからダウンロードできる実用系アプリだよ。
サーバ側のCGIでユーザの仕様機種を判別して自動でダウンロードアプリを振り分けるから
ユーザ側で意識することはないだろね。
(30KB用、100KB以上用と作り分けてる。当然100KB以上用のが機能が増える)
まぁ他の人も書いている通り、仕事を発注する大会社のお偉いさんなんかは
「とりあえず30KBも対応しといた方が無難じゃね?」程度の認識で依頼してくるんでしょうね。
俺だって趣味で作る場合は30KB対応させようとか考えたりしないよ...
誤)仕様 → 正)使用 スイマセン
言いたいことも言えないこんな世の中で・・・
正直仕事で503の頃から関わってると、 ここ見る理由は殆ど無いんだけどなw まぁ、過去ログも見れない馬鹿で大変ですが^^;
あああ
CPがmova対応しろって話は前スレで見た気が駿河
g.lock()とg.unlock(true)は数が合わなくても不具合は出ないのでしょうか?
どんな設計にしたら数が合わなくなるのか不思議だが、 問題ない
g.lock()しまくっても最後にg.unlock()さえあれば問題ない
まだg.lock()してるの?
g.lock()せずにダブルバッファリングする方法を教えてください
PCのjavaと同じでいいんじゃね?
(;^ω^)
PCのjava使ったことないの? オフスクリーンイメージに描画してそれをdrawImageするだけ。 てかなんでg.lockなんて便利なものがあるのに使わないんだ?
それ別にPCのjavaに限らんしPCの方なら他にもっと速い方法あるからな。逆にピンと来ない
g.lockを使わない方が・;(`ε()゙に移植しやすい
・;(`ε()゙ってなんですか?
すまん、みっどぴー・;(`ε()゙
いまのところまだBREWには飛び火してないな・;(`ε()゙
ぐぐってもわかりません ・;(`ε()゙って何ですか?
だからあれほどCLDC+MIDPスレタイに入れろと・;(`ε()゙
むしろ、スレタイにDoJaが無いって…
MIDPのGameCanvasは内部でダブルバッファリングするけどさ キー入力が制限されるから結局自前で全部作ることに・・・
g.lock()のせいさんせいを下回る方法を提示されても困る PCのjavaって表現初めて聞いたわ
g.lock()信者きもい
>>196 企業で働いているが、いまどき30KBの仕事なんて一切こない
見た目で劣りすぎてしまって30KBアプリでは売れないよ
最近は100+400KBのFOMA900系も斬る流れ
シーッ また、荒れるw
>>260 終わった話ぶり返してんじゃねえよカスが
>>260 企業や要求仕様なんて世の中色々なんだから、自分の狭い世界だけで
全てを決め付けるようなことを言うな。
もういいかげん、この話題やめよーや。
ごめんね…更新したつもりが更新されてなくて超亀レスになっててマジごめんね
Dojaの技術も枯れてきたし、Docomoもあの状態だと Dojaのバージョンアップも今後は難しいだろうし、 話す事無くなって来るのは当然だな。
話題もなくなってきたし そろそろFD対応の偽装gifのサンプルソース出してくれ 本当に困ってるんです
フロッピーディスク対応ですね。分かります。
今時偽装とかいらねぇし。
270 :
267 :2008/04/28(月) 21:13:19
解決しました! ありがとうございました!!!
ibisでも対応出来てないのに、んなもん都市伝説だろ
private int ってなんですかあ? ただのint で定義してもコンパイルエラーは出ないんですけど 見やすくしてるだけ?
273 :
デフォルトの名無しさん :2008/05/01(木) 21:02:12
アクセス修飾子 カプセル化 でググレカス
すごい低レベルだな
低レベルAPI使ってますよー
276 :
デフォルトの名無しさん :2008/05/01(木) 22:48:08
N904@問題なし なかなかのクオリティだと思うけど戦闘がちょっと遅くてたるい
スレ違い 携帯ゲー板池
プログラムした物の動作確認はスレ違いじゃないだろう 携帯アプリ板にはiアプリ製作スレ無いし
だが、自分は作るだけでDocomoの携帯は持ってない罠(´・ω・`)
でっていう
でっていう
283 :
276 :2008/05/01(木) 23:44:36
なんか荒れてしまったみたいで、すいません。 Dojaは初めてなので、不具合があった時 ここの方なら、聞きやすいだろうと思い 書き込ませていただきました。 よろしくお願いいたします。
いいよ。 このスレはもう用済みだ。 会社に居るときだけログ保存するわw じゃあな、みんなw ↓でっていうwwwwww
初心者や新参者を叩きのめすのが趣味のやつがいるからねぇ。
>>284 お前が今まで用があったほうが不思議なくらいだ。
>>283 いや、なんら問題ないよ
技術的バグとかは、ゲー作板じゃ聞きづらいだろうしな
別にスルーもできるし
動作確認スレでも立ててそっちでやればいいんじゃね? 暇人が集まるだろ
実機で動作確認してほしいなら 携帯電話ゲー板にゲーム作りましたスレ立てた方が確実に人集まるぞw
のちにどこかで有料配信されたら、血相変えて怒るだろうけどw
>>276 バグは見つからなかったけど、枠に文字が重なってたのが気になったかな。
fontascentを使うといいかも。
293 :
276 :2008/05/02(金) 20:39:16
動作報告してくれた方、ありがとうございます。
>>292 さっそく、導入しました、ご教授さんくすです。
そーいえば、BGMはちゃんとループするでしょうか?
今回は、MLDにループフラグ?を埋め込んでます。
普通はMediaListenerで、監視するのが一般的でしょうか?
ループされない@F905i
BGMがなんか聞いたことあるようなのばっかだったんだが、これらってもう 著作権とか何も無いんだっけ?
カプセルってなんですか?
>>296 カプセルっていうのはな。。。
コナみたいな薬が入っててな・・・
国語辞典買えよ
299 :
276 :2008/05/02(金) 23:04:55
>>295 BGMは著作権がきれている、クラシックから選曲してます。
BGMのループの件は、埋め込む値が間違っていたので
再度、修正更新しました。
エミュレータで、ループするのを確認。
アクセスって何ですか? 全然意味が分かりません だいたいひとつのクラスしか使わない
日本語でOK
糞ゲーだねw
>>299 戦闘シーンの表示関係がまだ少しずれています。
1ドットづつくらい左下に移動させたほうがいいかもしれません。
青銅の剣などのコマンド関係は下にのみずらすだけで大丈夫そうです。
304 :
276 :2008/05/03(土) 20:52:04
>>303 ご指摘ありがとうございます、さっそく修正しました。
MIDPとDojaだとfillRectの仕様が、違うのかな
機種によって違うフォントアセントの差分を吸収するワザとか なかったか?
結局は端末を判定して切り替えるしか無いんじゃないっけ?
Font.getDescent()かFont.getAscent()で取得した値を元に、 ベースラインから下駄履かせればいいんじゃないの?
ダウンロードしたiアプリのアイコンの画像を変更するにはどの様にすれば良いのでしょうか?
JAMファイルの仕様書嫁
頼むから公式pdf読んでから質問して。
ちなみに、ドコモの資料の読みやすさはPSやWiiやDSやPSPと比べて格段に見やすいし、分かりやすい
1コネクションでの通信量制限うぜえ rangeも使えないし
DoJa初心者登場か?
>>312 いや、それそもそも比較対象がおかしいから。コンシューマゲーム機の開発資料なんて一般人は読む事ないでしょうに。
比較するならS!アプリやオープンアプリっしょ。
>>309 ダウンロードした後で(アプリ上の操作などで)アイコン画像を変えるのは無理(アプリのバージョンアップしていいなら可)。
何故かと言えばアイコン情報はjamに記載するから。
jamについては
>>310
private int の意味がどうしても分かりません
>>316 Javaの入門書や入門サイトを見た上でそう言っているのなら、
ここでそれを教えてあげるのは非常に困難だと思われる。
「Java スコープ」でぐぐれ。
とは言っても、ちょっと前までのiアプリなら複数クラスを継承したりする事が少なかったから あんまり知らないでも問題は少ないんだよね。 勿論、きっちり分かっていた方が確実に良いんだけど。
class hoge{ private int a; }; class piyo{ public int a; }; hoge h = new hoge(); h.a = 100; //エラー piyo p = new piyo(); p.a = 100; //ok
javaで複数クラスを継承なんて出来るの?
縦に継承しまくれば
いや、インターフェース使えよw
interfaceは継承とは微妙に違くね?
微妙というか全然違うが。
実装を継承するための「複数クラスを継承」ならinterfaceは全然違うが インターフェースを継承するための「複数クラスを継承」ならinterfaceだろ
日本語でおk
子クラスなのに親が一人とはこれ如何に
329 :
デフォルトの名無しさん :2008/05/07(水) 19:22:42
SubClassだから問題ない
多重継承って言葉があってだな
複数クラスにする場合、たくさん変数を受け渡すのに クラス名(変数、変数、変数・・・・・) としなければならないのですか? 複数クラスに共通する変数を定義するとかできないんですか?
でその多重継承とjavaは何の関係が
そこから説明するの
考えるんじゃない、感じるんだ
>>336 え、本気で326わからないの?
釣りかもしれないけど一応説明しとくぞ
「複数クラスを継承する」には2つの場合がある。
実装を継承したい場合と、インターフェースを継承したい場合。
あとは
>>326 これ以上はJava初心者スレか、サイトへ。
× インターフェースを継承 ○ インターフェースを実装
インタフェースとクラスの違いが分かってないかC++から来たのかなw
Javaスレか、オブジェクト指向のスレか、プログラミング言語一般のスレか そういうスレ行けって話だな。 少なくともiアプリ開発スレで議論することではない。
>>326 は少なくとも講師にはなれないな
自己完結型
>>341 ここは多重継承をわかってない子をばかにして楽しむスレです
>>339 ??
継承し、そして実装するものだろインターフェースは。
>>342 分かってる奴相手と仮定した上の説明だからな
いやもういいよ 単にインターフェースも継承の一種だとわかってない奴がお前のことからかってるだけだから
インターフェース=ウルトラマンの着ぐるみ 中の人が正義の味方か変質者かは問わんのです
流れをぶった切って質問 DoJa3.5ツールで画像の一部を切り抜いて表示するGraphics.drawImage()を使ってみたら、 テクスチャ座標の引数が0以外のときに描画位置がずれる 回転させるとさらにずれるので、動作的に平行移動行列に上書きされてるっぽい 実機(当方N905i使用)で表示してみてもずれは生じないし、 4.0以降のツールでビルドして動かしても正常動作してる リファレンスも書き換わってないみたいだし、これって3.5ツールのバグ?
インターフェースを継承(笑)
>>345 > 「複数クラスを継承する」には2つの場合がある。
> 実装を継承したい場合と、インターフェースを継承したい場合。
複数クラスを継承する(笑)
>>347 エミュにはその手のバグあるよ。
特に回転とかと組み合わせると変になるらしい。
実機のが正しい動作。
>>348-349 何がわからないのかきちんと書けよ
あと、なるべくならJava超初心者スレに移動してくれ
>>351 分かってないのはお前
初心者スレに移動してくれ(笑
C++ は言語要素としてのインタフェイスを持たず、 よって implements と extends の区別もない。 インタフェイスのような仕組みは、抽象クラスを継承することによって行う。 この考え方にどっぷりつかっていると > 「複数クラスを継承する」には2つの場合がある。 > 実装を継承したい場合と、インターフェースを継承したい場合。 と書いてしまうんだろ。 Java 的には interface は実装するもの。
Javaのインタフェースとクラスは別物
と書いたほうが
>>351 には分かりやすいんじゃないか
interfaceなんて定数宣言でしか使った事ねーや。 それすらもプリプロセスを使用する携帯Javaだと必要ねーしw
確かにC++には「インターフェースクラス」というものは存在しない。
慣例的に、純粋仮想関数しかもたないクラスをそう呼ぶ。
Javaでもインターフェースを継承する という言い回しはするようだが…?
ttp://msugai.fc2web.com/java/interface.html C++の多重継承をJavaでどうやるの?って質問だったから
(Javaなんだから実装を多重継承する方法は無いのは当然だ。もちろんそれを分かって聞いてるよな?で、)インターフェース(クラス)なら複数継承できるぞ。
って言っただけなんだが、なんでこんなに粘着されるのかわからん。
それまた微妙・・・ Java の interface で出来るのは ・クラスがインターフェイスを複数「実装」する ・インターフェイスがインターフェイスを複数「継承」する Java で継承や実装を説明する際に、インタフェイスとクラスを区別せず 書かれた文章はナンセンスだと思う。インターフェイスクラスなんて無いし。
ああ、やっとわかった。 俺 実装=メソッドの中に動作がかかれている状態 相 実装=implements というキーワードそのもの 俺 インターフェースを継承=メソッドの規約を引き継ぐ 相 インターフェースを継承=interface は implements(実装)するものなので、インターフェースを継承という言い回しは無い! ってことか。 確かにJava的には俺の言い回しがC++的な言い回しなので変なのかもしれんが、最初の質問者がC++よりなんだからいいじゃねーか。
Java厨はJavaのオブジェクト参照を「C++のポインタのようなもの」って言われるとファビョる連中だからな 基本的にJavaしか知らんからC++概念混ぜてしゃべられると意味通じないんだろ
implementが実装って意味だと初めて知ったw
326にケチつけてた連中が「実装を継承」というC++言葉をJava言葉としてどう解釈していたのか気になる
>>350 ありがとう。バグだと思ったけどぐぐってもなかなかヒットしなかったから、
誰かの意見が欲しかったんだ。すごく助かった。
他のバージョンで3.5プロファイル使ったビルドにして対応していくよ。
>>359 インタフェース指摘されてC++厨火病ですね。分かります
どこがおかしいかは説明できないわけですね。分かります
>>362 他のバージョンには別のバグがあったりするから注意なw
>>365 >インターフェースを継承するための「複数クラスを継承」ならinterfaceだろ
これを見てどこがおかしいのか分からないわけですね。分かります
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < interfaceで複数クラス継承マダー? \_/⊂ ⊂_ ) \________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | 愛媛みかん |/
>>367 C++あがりの俺としては、その1行どこを眺めても問題が見当たらないんだが?
強いてあげるなら、「インターフェース」→「インターフェースクラス」くらいか?
話の大元の
>>326 のは
321 名前:デフォルトの名無しさん[sage] 投稿日:2008/05/06(火) 23:00:28
javaで複数クラスを継承なんて出来るの?
への返答なのに、Java厨が勝手に話しに割り込んできて理解できないとファビョってたわけですね
>>366 そうなのか、わかった。こりゃ気苦労絶えないわw
>>370 C++を知らないなら、C++的な観点で語り合ってるレスへ横レスすんなよゆとり
>>372 だから複数クラス継承なんてできねーだろゆとりwwww
>>373 前スレの926も読んでおくといいぞ
>喧嘩してる連中
Javaスレで326みたいなC++言葉でしゃべった俺が悪かったってことで、喧嘩そろそろやめてくれんか
>>375 当たり前じゃん
だから
「複数(実装)クラスの継承はできない。複数(インターフェース)クラスの継承ならできる」ってのが326だろ
まだ理解してないの?
C++的な観点ってどのレスからやってきたの?
>>377 Java厨は実装クラスとインターフェースクラスの違いすら理解できてないってことをまだ理解してないの?
>>378 321が、複数クラスの継承なんてJavaでできないはずだが?って意味なんだから、複数クラスを継承できる言語を引き合いに出されるだろ
ああ、ここでいうクラスは全て実装クラスのことな
>複数(インターフェース)クラス でました都合の良い()
つまり>326を綺麗に書き直すと 実装済み非static関数を持つクラスを複数継承する方法はJavaにはない。 クラスはクラスでも、インターフェースクラスでよければJavaもinterfaceをimplementsで複数持つことができるぞ。 ってことだろ? こんなもん>326読めば自明だと思ってたんだが、Javaしか知らない人にはチンプンカンプンかもな
> 321が、複数クラスの継承なんてJavaでできないはずだが?って意味なんだから、 >複数クラスを継承できる言語を引き合いに出されるだろ この2つの文どうやったら繋がるのか意味不明杉
>>381 321と326はJava以外の言語の経験者同士なんだから、その()は補えて当たり前だろ
知りもしないのに横槍いれて誇らしげにしてた連中涙目だなー
>>321 で「Javaで複数クラスをできないんじゃないの?」といってるにも関わらず
インターフェースで複数クラス継承とか言ってる時点でおかしい
支離滅裂
>>383 「javaで」っていう条件付けしてしゃべってるんだから、それ以外も知ってると考えてしゃべっても罰あたるまい
Javaの言語仕様知りもしないのに横槍いれて誇らしげにしてた
>>384 涙目だなー
326にケチつけてるのは一人っぽいな IDが出ない板はNGできないから困る コテハンになってくれ
>>386 「Javaでできないの?」→「C++ならできるよ」 OK
「Javaでできないの?」→「複数クラスを継承ならinterface」 笑
>>389 やっぱり理解できてねえw
「インターフェースを継承するための」を抜いたら意味通じないにきまってるじゃねーかw
一人でも2人でもいいから、さっさと出てってくれ。スレ違い甚だしい
まさか
>>323 が自分を正当化するためにここまでファビョるとは
>>391 だからJavaクラスとインターフェイスは違うだろ
いいかげん理解しろよ
interfaceを継承してできるのはinterfaceです もちろん多重継承はできません 多重実装はできます これでOK
C++的な多重継承をしたいなら、interfaceをimplementsして関数の中身コピペしか手がないんだから「インターフェース使えよ」はある意味正しいよ >318 iアプリなら複数クラスを継承したりする〜 >321 複数クラスを継承なんてできねーだろ? >323 インターフェースのことだろw ってのが大元の流れじゃねーの?
>>394 そこのカタカナのインターフェースは純粋仮想関数の規約ことだろJK
わざわざそのあとJavaのインターフェースはinterfaceって書いてあるんだから
>>340 で警告したのにC++の方は理解していただけなかったようで・・・
スラングで会話してるのにつっかかってたのも悪いし スラングで会話したのも悪い ってことでいいじゃねーか
C++すら知らない底辺プログラマを叩かないで!><
C++上がりが悪いんじゃないよ
自分の間違いを認めない
>>323 がかわいそうなだけでw
(‘ω‘)
C++方言だったとわかったあとも騒いでる馬鹿が一番始末に終えん
いい加減スレ違いだからよそでやれって。
C++方言わろす JavaとC++の違いも分からずに後付キタコレ
C++という単語が出てきたのは
>>340 からだっけ?w
つまり(ry
408 :
デフォルトの名無しさん :2008/05/09(金) 16:14:51
けっこうです
>>321 だが、なんか物凄いことになってるなw
俺は複数クラスの継承はc++なら出来るが、javaは出来ないだろ? iアプリはjavaなんだぜ。
って言いたかっただけなんだ、すまん
ぬるぽ
C++知らないもんだから誤解して噛み付きまくってた連中だけだよ悪かったのは
ということにしたいんですね
(笑)とか書きながら煽ってた奴以外誰が悪いってのか
C++(笑)が自分の間違いに気づかず初心者スレいけとか煽ってたのが悪いのか(笑)
>>413 Java知らないもんだから誤解して噛み付きまくってた連中だけだよ悪かったのは
よそだとインタフェースを継承するという表現をすることがあるけど、Javaでは実装するとしか言わない。 C++にインタフェースは存在しない。
>>413 classに対してextendsを付けるのとimplemetsする際の挙動の違いを知らないで、implemetsに複数のインターフェースを書けることを『複数継承できる』と言っていた阿呆共が理解できてないだけかと。
extendsに書けるのは1つだけだから
>>321 の言いたい事に対しては『出来ない』であってる。
>>326 みたいな用語を理解していないのか勘違いをしているのかわからない奴らがファビョってたのだから
>>413 は悪くないかと
420 :
419 :2008/05/10(土) 02:44:56
もういいだろ。「あぁ面白かった」で流してやれよ。
しょうもなさすぎんだよお前らはw
423 :
デフォルトの名無しさん :2008/05/10(土) 07:04:13
トウリャッ!
∧_∧
(. ・∀・) | |
と ) | | ガッ
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/ ←
>>411 (_フ彡 /
話をザックリ切りまして、 iアプリではArrayList使えないですよね。 皆さんはどうやって代用してます? 1.速度の遅さをガマンしてVectorを使う。 2.配列で何とかやりくりする。 3.自分でArrayListを実装する。
426 :
デフォルトの名無しさん :2008/05/10(土) 13:20:02
.
つか、Vector使えたんだw知らんかったわw
しかし、自分で実装するにしてもテンプレート使えないから不便だよね 使えるなら自分で作っとくんだけどな
>>424 JDKのsrc.zipからArrayList.java引っこ抜いて使えば。
もうすぐGPLになるらしいけど。
430 :
デフォルトの名無しさん :2008/05/10(土) 14:40:31
それならGNU CLASSPATHから持ってくればいいだろ
>>323 がインターフェースもクラスの一種と考えるC++脳だっただけだろ
Javaでクラス複数継承したいって言われたら、インターフェース使ってメソッドの中身はコピる以外に方法ないと思うけどなぁ・・
CP経由で10万以上ダウンロードされてるアプリ開発者だけど、 俺には全く理解できん話じゃw
俺なんてCP経由で1000万以上ダウンロードされてるアプリ開発者だぜ
>>434 FF、DQレベルの開発者キタ━━━━(゚∀゚)━━━━ !!
俺なんて自分が開発したアプリがどうなってるのか知らないぜ
俺なんて超大手会社向けに作ったアプリが来週ダウンロード開始で、 今からバグ出ないかビクビクしてる。
>>432 それを"出来る"と言えるものかどうかな…
そもそもinterfaceの継承とclass(abstract class)の継承は意味合いが違いすぎるべ
と言うより、implementsすることを『interfaceの継承』と呼んで良いのか?Javaに悔しい奴、教えてちょんまげ
>>439 implementsは継承じゃなくて実装じゃないか
javaでは何を使おうとクラスの多重継承はできないので どうしてもやりたいならC++スレへでも行ってください
ていうかさあ interfaceをinterfaceが継承する場合って複数のinterface継承出来なかったっけか。
ここでわざわざ「ていうかさあ」なんて言うほどの話題でもないな
パレットイメージを作ると透明色が使えなくなるんですけど どうすればいいですかあ?
>>439 C++とかでは『インターフェースクラスを継承する』って言い回しするから、全然違和感なかったが
Javaでいうなら
>>440 の通りかな?
『interfaceを実装する』って言われると『引き継いだメソッドの中身を書くこと』って気がするのは多分俺もC++出身だから
Javaにおいても「引き継いだメソッドの中身を書くこと」に変わりはない。 implementsキーワードはその宣言に過ぎず、メソッド書かなきゃコンパイル通らないんだから。
どうしてそこまでimplementsの話がしたいのかわからんw
java言語一般の質問や話題はこのスレよりも質問スレとかでやってくれ
>>445 すいませえん自己解決しましたあ
TransparentImageを組み合わせて使えばいいみたいです
でもプログラムが長くなってめんどくさいです
>>442 437はゲームだとは言っていないわけで・・・。
つか大手が出すiアプリゲームとか何本くらい売れるんだろうな。
ドコモがどれだけ分捕っていくのか気になる
そんなでも無いとは思う。
C++脳
>>452 >>453 トラステッドを使用するための契約料は要るだろうけど、
1ダウンロードあたりいくらってな取り方はしてないと思う。
ちなみに個人で課金アプリ出そうと思ったらコンテンツプロバイダに2割程度もってかれる。
RPG作ろうと思ってるんですがスクリプトの扱いに悩んでます (スクリプトといっても自分解釈なので、補足) talk:あああああああ move:right move:down move:left move:up 例えばキャラクタAに上のようなものを適用すると メッセージボックスにあああと表示されてAがくるっと歩き回るといったようなものです PCで作る場合にはファイルを用意して一行筒読み込むだけで簡単だったんですが 携帯の場合どのように扱えばよいと思いますか? 今考えてるのは *talkあああああ*moveright...っていう風に*マークで区切ってstring配列にでも持たせて *マークごとに処理って風にやろうと思ってるんですが 他に何かいい方法ありますか?
>>456 PCと同じようにファイルで用意して
読み込んで改行コードで判定して区切れば?
*だとスクリプト見づらくなるから辞めた方がいいんじゃない?
ファイルで用意というのは、ファイルをサーバにアップしておいて ネット経由でDL→スクラッチパッドに保存、必要になったら読み込みという形でしょうか? ちょっとややこしくなるのでそれは避けたいのですが
ん?javaのソースに String[] script = { "*talkあああ", "*moveright", ・ ・ }; というつもりだったってことか? リソースに入れておけばいいんじゃね?スクリプトファイルを
あれ、もしかしてリソースに入れておけば、テキストなんかも読み込めるんですか;;; それならばPCと同じ方法でいけそうですね すいません、ありがとうございました
◆6月にマネージャパン、月刊アスキー、週刊アスキーの3誌が賞金総額2000万円の「シストレFXグランプリ」を開催
http://system-trading.jp/news/index.php?cID=3 5月22日より登録受付開始、6月2日よりグランプリ開始の予定。賞金総額2000万円。
デモトレードの優勝者には賞金三百万円がプレゼントされます。
▼トレード部門
初期資産500万円で、デモ取引のトレード収益を競っていただきます。
http://www.fx-gp.com/about/ ▼賞金総額
■社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期MVP賞 50万円
●後期MVP賞 50万円
◆6月にマネージャパン、月刊アスキー、週刊アスキーの3誌が賞金総額2000万円の「シストレFXグランプリ」を開催
http://system-trading.jp/news/index.php?cID=3 5月22日より登録受付開始、6月2日よりグランプリ開始の予定。賞金総額2000万円。
デモトレードの優勝者には賞金三百万円がプレゼントされます。
▼トレード部門
初期資産500万円で、デモ取引のトレード収益を競っていただきます。
http://www.fx-gp.com/about/ ▼賞金総額
■社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期MVP賞 50万円
●後期MVP賞 50万円
InputStreamの入力ストリームの現在位置を初期化することってできますか? (またデータを一から読み込みたいということです)
reset()かな?
resetはサポートされてないっぽいです もう一回コネクトを作るしかないですかねー
(iアプリに関係なく)そういうときはByteArrayOutputStream等に入れてから使います
入力ストリーム関係をメゾットにして 最初から読み込みたいときにメゾットを呼び出せばいいのでは?
キノコのメゾット
メンマ変数
iアプリを携帯でDLするたびにパケット受信でお金が掛かって苦しい。 PCでDLしたiアプリを携帯で実行できるようなiアプリ(エミュレータ?) が欲しいんだが、そういうのってある?
ない
>>460 対象機種がわからんが初回DL型アプリじゃダメなの?
リソースが増えすぎて100Kを越えてしまいました、的な質問が目に浮かぶよ。
>>463 漏れも一時悩んだんだけど、Java(J2SE)でもやり方わからなかった。
たぶん再作成しかないと思う。
もしかしたら、そもそもストリームと言うのは流れが一意であって、
前に戻ることを保証しないものなのかもしれない
いや、素直にreset使えよ…
reset非対応のストリームでやりたいなら、
>>466 の言うように一旦(resetの対応が保証されている)ByteArrayInputStreamにうつしてからやれよ
めぞっと一刻
そもそも読み直しが必要な設計を見直すべき。 一般的にストリームってのはメモリと違って読み込み遅いもんだから、 ランダムリードしないですむ設計にするべき。
>>476 ByteArrayInputStreamのように、メモリー上をなめるストリームもあるし、かなり一般的なのだから
>一般的にストリームってのはメモリと違って読み込み遅いもんだから
って理屈はどうかと。
>ランダムリードしないですむ設計にするべき。
結論は正しいけどな
オーバヘッドがあるから自前でキャッシュした方が速いけどな
データをストリームで読みながら処理するんじゃなくて 一括で読んでおいてからメモリ上でランダムアクセスした方がいいんじゃないの?
>>479 ByteArrayInputStream
QVGA用に作ったiアプリってVGAに自動拡大で対応できないのでしょうか? ソフトバンクみたいに。
>>481 え、しない?
少なくともN903iはするよ。
>>481 ならない端末をむしろ教えてくれ。
あとADF。
普通は自動で拡大するはず
481です。 すんません。ドコモの携帯もってないんで、どうなのかと思って聞いてみました。 ありがとうございます。
先に言え禿げ
>>480 ランダムアクセスするのにStream使うのは微妙に違う気が
学校でJavaやっててもっと使えるようになるためiアプリに手を出してみようと思うんだけど Dojaの最新のってJ2SE1.4までしか対応してないの? 今のパソコンはJ2SE5が入ってるんだけどバージョンダウンしないといけないのか printfが使えなくなるのは正直痛い
1.4どころか1.1レベルしか対応してないよ printfは使えない
とりあえずJ2MEとかCLDCでググって愕然として欲しい
J2SDじゃなかった?
eclipseでやってるんですが、実行しようとすると エミュレータが一瞬表れすぐに消えてしまいます。 なにか設定が変なんでしょうかorz
何かしら設定が変だからうまくいかないんだろ その自分の設定も晒さず、設定が変なんでしょうか?ってなめてんのかと
493 :
491 :2008/05/17(土) 01:25:41
その設定のどこが変なのかわからんから聞いとるんじゃいこの( ゚д゚)アンポンタン!
うわあ
エスパー同士の戦い!
>>491 俺もなったことある。でも、なんとかなったよ。
ハ_ハ
('(゚∀゚∩ なったよ!
ヽ 〈
ヽヽ_)
患者「お腹が痛いです」 医者「何か原因に心当たりは?」 患者「わからないから来てるんです」 医者「しかし、こういう物を食べたとか、いつから痛いのかとか 言っていただかないと診断のしようがありません」 我ながら微妙なたとえだ
498 :
491 :2008/05/17(土) 02:25:14
∧∧ ( ゚∀゚) _| ⊃/(___ / └-(____/  ̄ ̄ ̄ ̄ ̄ ̄ ̄ <⌒/ヽ-、___ /<_/____/
500 :
491 :2008/05/17(土) 02:46:06
∧∧ ( ゚д゚) _| ⊃/(___ / └-(____/  ̄ ̄ ̄ ̄ ̄ ̄ ̄ <⌒/ヽ-、___ /<_/____/
501 :
491 :2008/05/17(土) 02:54:06
∧∧ ( ゚д゚) _| ⊃/(___ / └-(____/  ̄ ̄ ̄ ̄ ̄ ̄ ̄
お前の質問は
>>497 ですらない。
患者「痛いんです」
医者「どこがですか?」
患者「なんか痛いんです」
>>491 はまずiアプリのEmulator DevGuide を学校で印刷しろ。
その後HDDをフォーマットしてOSの再インストールから。
そのあと、Emulator DevGuide のセットアップの項目を
完全に書かれている順番で実行すればいい。
そしてサンプルの実行を、完全に書かれている順番で実行すればいい。
文句言うやつは大抵どこか飛ばしてるか無視してる。
504 :
503 :2008/05/17(土) 11:04:18
ああ、学校はまた別のやつか。 まあいいや。どこかで印刷すればいい。
消える現象は、 ソフトの動作条件よりPCがスペック不足だとよく起きる
506 :
デフォルトの名無しさん :2008/05/17(土) 15:36:58
確かjavaにパス通すとかじゃなかったっけ?
せめてeclipseに表示されるエラーログくらい書けよと言いたい
実機で動かした時「動作障害が発生しました」って出て落ちるのの原因ってなんですかね?
ExceptionかErrorをキャッチできてないのが原因。
510 :
デフォルトの名無しさん :2008/05/17(土) 22:48:27
失礼します。 昔、一からスケジューラの作り方を書いていたサイトを見た記憶があるのですが、 誰かご存知ないでしょうか?プログラムの参考にしたかったんですが分からなくなって。 ご存知の方、教えてくださいm(__)m
256X256以上のgif画像を使うとエミュでは平気で実機でエラーが出るようだ (機種によるかもしれない)
既出です
じゃあ俺は255バイト以下のアイコン作る
>>511 機種は?
FOMA900以降は320x320までは動作が保証されていたと思うが
515 :
デフォルトの名無しさん :2008/05/18(日) 10:14:43
>>511 N900iとか240x240までじゃなかった?
× N900i ○ D900i
>>509 Exceptionは丸々捕まえてるはずなんですが、Errorとやらはわかりません
恐らくはメモリ不足で落ちてると思うんですが、そういうエラーも捕まえられるんですか?
Exceptionは例外クラスの大元じゃないから Throwableを捕まえないとException以外の例外(Errorとか)を取り逃す
>>518 ありがとうございます
勉強になりました
メゾット(変数);で受け渡す必要性が分かりません 変数; メゾット();でも同じだと思うのですが
あなたの書いている文章の意味が分かりません。
あさりの和風メゾット
>>520 引数にするかクラスメンバにするかの違いということだと推測。
524 :
デフォルトの名無しさん :2008/05/20(火) 06:29:45
引数をメンバ変数でいちいち持ってたらクラスが膨らむではないか
>メゾット(変数);で受け渡す必要性が分かりません ----------------------------------- 変数A; 変数B; 変数C; メゾット1(); // 変数Aを使う メゾット2(); // 変数Bを使う メゾット3(); // 変数Cを使う ----------------------------------- メゾット1(変数A); メゾット2(変数B); メゾット3(変数C); ----------------------------------- どっちが分かりやすいよ
Javaから勉強するからこんな疑問がでるんだろうね
メンバ変数にしかアクセスしないなら引数にとらなくてもいい
>>526 メゾットじゃなくてメソッドですからwww
>>520 メソッドに渡すためだけにメンバ変数を用意するよりは引数として渡したほうが楽。
別の目的でメンバ変数が用意されてるならわざわざ引数にしなくておk
メゾットってうまそうだな
リゾットじゃねーから。
マンションなのに一軒家の感覚が楽しめて憧れるな。
メゾネット?
容量的にはどうなんでしょうね 容量というか、ガベージコレクション的には、というか… 事前に変数を宣言?しておいたほうが ガベージコレクションを避けられる状態に繋がりやすくなる、という場面はないのでしょうか
無意味にメソッド外に変数を出せば 保守性やスコープ外への隠蔽性が低下する方がむしろ問題じゃね?
フィールド変数はあまり使いたくないな
>>535 メンバ変数を使う→ヒープを使う→GC対象
引数(ローカル変数)を使う→スタックを使う→使用後即破棄
じゃなかったっけ?
539 :
デフォルトの名無しさん :2008/05/21(水) 06:59:53
Global_var Classがつくられた!!
何十個も引数取る場合は面倒くさいと思います
引数のみの独立性の高いメソッド作れる状況で setメソッドだの作るのは無駄
そんな糞設計やめろ
public Object[] foo(Object[] args)でおk
ねとらじを携帯で聞けるアプリを作りたいんですけど にこにこ動画みたいな方式でないと無理ですかね?
たりめーだバーロー
じゃあ鯖なんか提供できるはずもないので諦めます
547 :
491 :2008/05/23(金) 02:46:48
何度やっても駄目だorz eclipseで実行→実行ダイアログを開く からどうしてもエミュレーターが作動しない 一瞬現れてすぐ消える エラー文は何も出てない。できあがったアプリはアプリエラーが起こる。 でも直接エミュレーター起動してビルドするとうまくいく。 なんでだろう・・・
>>547 考えられる問題
・ADFが不正
→トレースに出てる筈なのに見ていないのはプログラマに向いていないから諦めな
・プロジェクト名が不正
→半角スペースを入れてるとかプログラマに向いていないから諦めな
eclipseとDojaエミュのバージョンは?
俺もEclipseから起動できないわ 原因探るのめんどくさいからほってあるけど
>>535 GCの回収対象は参照の有無が基本。メンバだろうがなかろうが関係ないよ。ましてや基本型なら回収以前の話。
君は引数aを与えて戻り値bを返すメソッドf()で
わざわざメンバ変数にaをセットしてからf()を引数なしで呼び出したいとかぬかすのか?
なんかアセンブラみたいだな。何のための引数だよ。
IApplication#stat()みたいな実行と言う"一連の動作を内包"したものもあれば、
Math#abs()みたいな"指定した値"から絶対値を"求める"と言うのもある。
Math#abs()がメンバ変数を使用する必要があったらキモいだろ
この程度で面倒くさいとか そもそもこの程度の問題も解決出来ないとか 日本のJ2MEで特にDojaだけで触っている輩は ほんとレベル低いよな
そういえば最近Doja5.1を入れたんだけど、 先に入れてたDoja5.0が邪魔したのか Doja5.1のデフォなのか EclipseのiDKへのパスがDoja5.0 のままで起動できなくなったな Doja5.1へのパスに直したら 起動できるようになったよ
>>540 引数として必要な値だから引数を取るのです。
第一の判断基準が面倒くさいなのはとんでもなく糞設計ですね。
そんなプログラムで再利用は出来るのですか?
まぁ、昨日今日始めた素人だろうからしょうがないよ。 高校生くらいだろきっと
556 :
デフォルトの名無しさん :2008/05/23(金) 10:31:53
>>552 自分用時刻表作るだけなのにそんな事言われたくないわ
>>547 俺がエスパーしてやる
コンパイラのバージョンを1.3にする
vimで開発してるけどEclipseのメリットがいまいち分からん
>>556 あなたのプログラムのモラルの低さが露呈されてます
>>559 あなたの人間としてのモラルの低さが露呈されてます
プログラム技術のスレなんで、人間性とかモラルとかどうでもいいから。
人間としてのモラルが低いのはむしろ
>>556 だろうなw
JavaプログラマーがDoJaプログラマーを笑うとは まさに目糞鼻糞を笑うだな
平日の昼間っからにニートが騒ぎ出す・・・!
567 :
547 :2008/05/23(金) 22:09:31
帰ってきたぞやろーども( ゚д゚)
>>548 直接エミュからやればできると言ってるだろうがボケナス( ゚д゚)
お前の方がプログラマー向いてないわこのアンポンタン( ゚д゚)
>>549 eclipse3.3.2
DoJa5.1です
>>550 ( ゚д゚)人(`益´ )
>>552 誰だって最初は初心者だろうがこのスカポンタン( ゚д゚)
>>553 最初から5.1入れたしそれは大丈夫
('A` ) プゥ ノヽノ) =3 ゚д゚)ノ くく へヘノ
外側に変数を設定すれば 引数を使わなくても戻り値を設定しなくても済むのに なんでいちいち面倒くさいことしなくちゃいけないのか
さては本物だなこいつ
571 :
549 :2008/05/23(金) 23:23:03
PATH に空白を含むフォルダが含まれると駄目、とかなかったっけ?
>>567 で、本当にプロジェクト名に半角スペースは入れていないんだな?
極力最小に、英字だけでトライしてみれ
絶対パスに半角スペースの入らない場所にプロジェクトを置け
あとEclipseが起動しているなら大丈夫だと思うが、JAVA_HOME、CLASSPATH、PATHの設定を確認しろ
DojaSDKはこれらの設定をしなくても動くから、
悪い意味で至れり尽くせり起動が出来ることは参考程度にしかならん
JDK_HOMEにはJ2SE 1.4を使え
(eclipseはecjだからあまり関係ないとは思うが)
頑張れアンポンタン
>>569 再度問うが、仮に平方根を求めるMath#sqrt()がお前の言うモデルの場合に再利用しやすいのか?
引数、戻り値を使えば、3つの平方根を求めるのに3つのセンテンスですむ
お前のやり方だと値のセット、メソッド実行、結果取得の3センテンス * 3で無駄が多い
とてもじゃないが楽では全くない
そもそも関数がなぜf(x)なのか、中学から出直してこい
>>574 まぁまぁ。
本人がそれで分かりやすいと思っているのならそうやってプログラム組んでいけばいいじゃないかと思う。
・・・俺はそのプログラムの保守とか絶対やりたくないけど。
だから言ってるんだよ、俺はいつも。プログラムは知識ではない、と。経験なんだよ。 なんでも頭で考えたら解決できる、と思ってるタイプの人間はプログラムに向かない。 経験で感覚をつかみ、感覚的に理解して自然に使えるようになるのがプログラムの技術だ。
例えば、あるクラスの計算式を使って結果を得るのに、 int result = hoge.getResult(a, b, c); とするのがいいのか hoge.x = a; hoge.y = b; hoge.z = c; hoge.calculateThem(); int result = hoge.result とするのがいいのかって話?
579 :
547 :2008/05/24(土) 01:12:16
>>571 おおおおeclipse3.1に落としたら起動できるようになった!!多謝!!
実は「eclipseではじめる「iアプリ」開発」って本見ながらやってるんだけど
その本の付属のCDに入ってるeclipseが3.3.2なんだよね
著者はちゃんと動作確認してるのか・・・?3.3.2で起動できた人いるかな?
>>573 それらの設定は大丈夫(たぶん)
なんせエラー文とか全くでないんだもん・・・
心配サンクスこのツンデレヤロウ( ゚д゚)
>>579 お疲れボケナス
確か漏れは会社で3.2系を使ってたと思った
良かったら試してみ
日本語化はPleiadesが個人的にオススメ
Eclipse 3.3.2と3.2 + Win Vista Home Premium + JDK 1.6 で動いてるよ。設定でターゲットバージョンを1.3にしないと動かないけど。 3.1はデバッグやエディタにバグがあるからお勧めしない
>>576 経験は確かに大切だが、知識もやはり大切。
経験を積めば自然に知識も増えていくはずだ。
経験を積んでいるのに知識が増えていかないのであればそれは偏った経験なのか、
プログラムに対する興味・意欲が無いのであろう。
・・・そんな俺は就職当時に初っ端から現場投入されて、
偏った知識しか身につかなかった為に今更基礎をやり直してる最中・・・。
>そもそも関数がなぜf(x)なのか 全くだ v = f(x) + f(y) + f(z); がドンダケ〜分かり難くなるか
だから引数形式だとbaka(変数,変数,変数,変数,変数,変数,変数.......); とたくさん変数渡すときめんどくさいっつーの あとその変数全てを戻値にしたいときも超めんどくさい
この馬鹿をなんとかしろ
プログラムの可読性・保守性 >>>>>>>>>>>>> baka(変数,...)
メンバー変数にセットする方式だと、メンバー変数の名前全部知らないといけないじゃん めんどくさいっつーの あと、引数で渡したプリミティブな変数を、関数内で書き換えさせ結果を取得したい。なんてシチュエーション思いつかない。 何をする関数なんだそれは? というか、関数化しなくていいじゃんそれ。
//パターン1----------------------------------- int hikisu1 = 1; int hikisu2 = 2; int hikisu3 = 3; int hikisu4 = 4; int hikisu5 = 5; kansu1(hikisu1,hikisu2,hikisu3,hikisu4,hikisu5); //パターン2----------------------------------- class a{ int hensu1; int hensu2; int hensu3; int hensu4; int hensu5; } a.hensu1 = 1; a.hensu2 = 2; a.hensu3 = 3; a.hensu4 = 4; a.hensu5 = 5; kansu2(a); //-------------------------------------------- よく分からんがパターン1と2のどっちの方が簡単? って話?
パターン2はそれですらなくて m_hensu1 = 1; m_hensu2 = 2; m_hensu3 = 3; m_hensu4 = 4; m_hensu5 = 5; kansu2(); ってやりたいんだと。意味がわからん。(m_〜はメンバ変数)
ここはiアプリスレなんだが。
プログラム板のiアプリスレなんだが。
センスねえ奴には何言っても無駄。 だからこそセンス無いのだから
何言っても無駄って事はない。 センス無いとか、どこのアホがこんなの組んだんだよとか言ってたら 治療に専念するとか言ってそいつ辞めたし。
自分専用アプリの極小規模開発なら、こんな組み方でも文句はさほど出ないだろう。 でも仕事でプログラムを組んで飯を食っているのなら、こんな組み方は止めるべきだな。
お前らwww
個人、小規模なら全然それでも構わないと思うけど ただ複数でやったり規模が大きくなるとカプセル化とかしっかりやっとかないと 思ってもみないところで変なコード書いちゃって地獄をみることになる
PC向けならまともな書き方をするけど、 iアプリでは、サイズが縮むのなら、わざと汚い書き方を選ぶときもある。
わざと汚い書き方を選ぶことはあるが このケースはそれに当たらないだろ。 そこまで一般化して話されてもw
どうでもいい話だね
com.nttdocomo.ui.UIException: Media image is not usable という例外が発生するのですが、なぜでしょうか? resフォルダの中に該当ファイルも入っていて、jarを解凍してもちゃんとファイルが入っています。 下記、処理部のみ抜粋。 MediaImage mi = MediaManager.getImage( "resource:///9_21.GIF"); mi.use(); Image image = mi.getImage(); g.drawImage(image,10,10);
>>603 エラーメッセージをそのまま突っ込んでググったら色々出てきたけど?
>>603 色々ぐぐった上での質問でしたが、原因は自分の凡ミスでした(;´Д`)
すいません、お騒がせしました。。
>>584 >>あとその変数全てを戻値にしたい
>>ときも超めんどくさい
設計が悪い。『その変数全てを戻値にしたい』なんてて意味不明な事象はない。
複数の結果が欲しいなら結果用のクラスを戻す、乃至はJ2MEなら配列に複数の結果を格納して戻すメソッドにする。
例えばLvや今のステータスから新しいステータスを計算するメソッドでも、
引数と戻り値を使ってメンバには触れないメソッドであれば
事前に任意のLvのステータスを知ることが可能で
、デバッグやパラメータ調節を比較的しやすく出来る。
プログラムの基本は面倒か否かではなく、再利用・汎用性・保守性だよ。ゲームに於いてもデバッグを容易にするために例外ではないはず。
>>599 メンバに触れるメソッド
メンバに触れてはいけないメソッド
とかの分類が出来るはずだから。
IApplication#start()やThread#run()とか、
総合的なメソッドであの書き方なら解るけど、
部品の様なメソッドであればアレはあり得無い
>>602 職場とかでそんな馬鹿と一緒に仕事することになっても文句言うなよ?
あいう馬鹿のせいで辛い目に会っている人は沢山いるはずなんだから。
何が問題なのか分からない 好きに組めばいいじゃない
素直に配列使えって言えばいい話なんじゃないの?
iアプリの話しようよ…
どのiアプリが面白いですか?
DojaはJavaで書くんだぜ Javaを無視するならJava以外で作れってこった 自由にするのもルールを守った上で 言語にも思想があるわけで 何でも有りな無法地帯ではないよ
でも、Javaそのものについては、ほかのところで聞いたほうがいいと思うよ。
そのソースちょっと見てみたいw
最近Scalaが流行ってきてるけど これでiアプリ作った人いない?
618 :
デフォルトの名無しさん :2008/05/25(日) 21:03:51
GIFのパレット値を変更して、同一画像の色を変更しようと思っています。 PalettedImage.getPalette()で取得したPaletteオブジェクトの色情報を変更して 再度setPalette()したところ、エミュレータ上では問題無く描画されるのですが 実機上だと色が化けてしまいます。同じ現象に遭遇した方いたら、回避方法を教えて頂けませんか? ちなみに端末はF905iです。Doja5.0
色化けくらい気にスンナ(゚∀゚) というとアレだが、機種毎にGraphicsのRGBって違うんじゃなかったっけ? 酔っ払ってる上に最近アプリの仕事は中国人にやらせないと利益出ないってんで 俺は遠ざかってて詳しい事言えん。 以下にロクなアドバイスが無かったらRGBの値が全機種共通で使えるかについて 調べてみて欲しい。 健闘を祈る。
>>619 うーん。RGB値は各種端末で同じだとは思うんですが、パレット周りで帰ってくる値は
もしかしたら機種依存だったりするのかなぁー。明日別の機種を借りて試してみます。
パレットのRGB値が機種依存だったらショック!
Palette plt = pImg.getPalette();
int c, A, R, G, B;
for( int idx = 0 ; idx < plt.getEntryCount() ; idx++ ){
c = plt.getEntry(idx);
A = c >> 24 & 0xFF;
R = c >> 16 & 0xFF;
G = c >> 8 & 0xFF;
B = c & 0xFF;
}
機種依存じゃよ
>>621 やっぱりそうですか。。。
うーん。なんか良い感じに全機種で回避出来る方法ないか模索してみます。
ありがとうございました。
createImageして、getGraphicsし、 それに機種依存値をsetColor、drawRectし、 getPixelするとか。 試してないけど。
GIFデータの方をメモリに置いといてパレット情報だけ書き換えてから createImageしたら?
ヒント与え過ぎ。 もっと考えさせて。
>>607 昨今はiアプリであっても
クラスをどんどん作って保守性を高める方向で作ることが可能になりつつある…ということですね
自分の場合は未だに「極力昔の端末にも対応してほしい」等の要求がきてしまうので
クラスを作る=jar容量が増える=端末に入らない
=クラスの数どころかメソッドの数まで最小限にする
=結果を返すためだけのクラスを作るとはそれなんて富豪的プログラミング?
という感じでありまして(涙目)
現行機種にのみ対応すればいいという状況と昔の機種にも対応すべしという状況では
何がベターなやり方なのかが結構変わってくる・意見が大きくすれ違いそうではありますね
特にiアプリの場合、その違いはPC向けのソレよりはるかに大きいのではないかと思うときもあります
個人的には、是非とも保守性・再利用性を高める方向で作りたいのですが…
今日もまた、グローバル変数を羅列する仕事が始まるお…
>>624 膝を打ちました
GIFファイルの中からパレットデータ(RGB値)を読んで、どこかにそれだけ残しておいて
Paletteを変更する時はそのどこかに残したRGB値を対象にしながら変化させ
かつその変化させた値をPaletteに設定、で全機種対応できるはずということですね!
てっきりGIFとは別にパレットデータだけ事前に用意しておかなければいけないのかと思ってましたが
GIFの中にあるんだからそれを読んで使えばいいのか…
おまえ何歳だよ
スプライトについて、MIDPの場合は表示する順番を指定してnextFrameメソッドを実行すれば 画像が動いてくれていたのですが、dojaの場合動きません。 Sprite型の配列に spr[i] = new Sprite(img_1, 72 * i, 0, ( 72 * i ) + 72, 72); として格納したあと、SpriteSet型オブジェクトにssを ss = new SpriteSet(spr); として、それを g.drawSpriteSet(ss); で描画しているのですがspr配列の0番目の画像しか表示されません。 DoJaではSpriteを順番に表示してアニメーションをさせるような事はできないのでしょうか? また、SpriteSetのコンストラクタへの引数はSprite配列しか受け付けないにも関わらず0番目の画像しか表示できないのですが、 何故配列のみしか指定できないのでしょうか?
RPG作ってるんですがメモリ不足かなにかで落ちまくります 今アイテムを64個持たせてたりマップのレイヤーが四層だったりしてますが どのくらいが適切なんでしょうか?
631 :
618 :2008/05/26(月) 02:46:19
618で質問した者ですが、パレット変換のテストアプリを作ってみました(F905iでのみ動作確認済)。
0キーは初期化(変更値リセット)
1〜3キーは各RGB値増加
4〜6キーは各RGB値減少
7〜8キーは明度の増減
http://www.igotfree.com/keitaiapp/iapp/Download.html GIFのパレットを最初に取得して機種依存のRGB値で一度描画した後に
その描画領域をgetRGBPixels()でint配列へ取得しておき、RGB値を変更後は
PaletteへsetEntry( idx, Graphics.getColorOfRGB( r, g, b ) )で再設定する方法で
今回は御茶を濁すことにします・・・。
>>630 アイテムは8個まで。マップのレイヤーは2階層までが適切でsうぇqw
アイテム8個っつーか16個未満にしなきゃいけないのは常識だろ
>>626 基本的にその考えは間違い。
504時代でさえ「まずは綺麗に組んで、その後容量のために汚く崩す」
汚いを綺麗にするのは難しいが、綺麗を汚くするのは簡単だからな。
プリプロセッサを利用して、関数をマクロでやるようにするとか。
>>630 アイテム一つに1MBもの情報量を持たせてるだって!?
そりゃ64個も持たすのは無茶だ!
マップ1レイヤーに1GBものデータを!?
無茶な!
1MBなわけないじゃないですか、メンバは定数7個(static)にint型8個とクラス1個くらいです レイヤーはshortで15*15*4くらいのマップしか作ってないんですが多すぎですかね メガアプリの予定なので、動かすのはある程度、新しい機種のはずだしいけるかなって思ったんですが
>>636 君はまず「かなにか」という名の魔物を追い払いなさい
それがキャッチできないんですよね、Throwableで全部くくってるんですが とりあえず量的に直ちに問題だというようなものではないですよね 落ちるのは、マップ移動で配列を作り直すとき、と他にアイテムを表示する時に アイテム表示用のクラスに突っ込んで描画しているんですが、そのクラスをメニュー を閉じる時に削除していて、その時に落ちたりします エミュレータでは大丈夫で実機だと落ちるのでメモリ関係なのかなと予想したんですが
ソース出してみれ
どの部分ですか? 結構多いんですが
原因箇所をかなり特定できているのならその部分を。 そうでないのなら可能な範囲でできるだけ。
>>637 あのさ、俺636なんだけど
>1MBなわけないじゃないですか
イヤミもわからん頭でプログラムは無理だと思うよ。
お前は質問者としての礼儀とか一切ないのな。
チャットじゃねーんだから、必要な情報は1回で全てだせ。
えらそうなこと言いながら、レス番1つずつずれてて俺涙目。
じゃあとりあえずマップの作成部分から private void loadImage( int number ) { switch( number ){ case 0: chipImage.loadImage( "mapchip00.gif", 15, CS, CS ); break; case 1: chipImage.loadImage( "mapchip01.gif", 15, CS, CS ); break; } private void destroy() { map = null; chipImage.destory(); //chipImage = null; } // マップ移動のイベントを踏んだらこの関数を呼び出してます public boolean create( int number ) { destroy(); loadImage( number ); try { InputStream in = Connector.openInputStream( "resource:///"+ MapData.MAP_LIST[number] ); /* マップのサイズ取得 */ map = new short[LAYER][row][col]; /* 一バイトずつ読み込んで配列へ */ /* キャラクタの作成 */ }catch( Exception e ){ System.out.println( "Map.create"+ e ); } return true; }
>>642 1Gって書いてるのにイヤミだって解らないわけないでしょう
配列で1Gってそんなもん作ると思ってるんですか?
それを踏まえた上でのレスですから
ちなみにエラー関係はこうやってキャッチしています public void run() { try{ do{ input.update(); mainLoop(); repaint(); fps.control(); }while( true ); }catch( Throwable e ){ Dialog d = new Dialog( Dialog.BUTTON_OK, "エラー" ); d.setText( "Message:" + e ); d.show(); System.out.println( "thread:" + e ); } } public void mainLoop() { try{ // ゲームの処理 }catch( Exception e ){ System.out.println( "mainLoop:" + e ); } }
この傲慢な質問者に回答してあげる人いるんだろうか
プログラマが「落ちる」とか言うな。何が落ちるんだ。手から携帯が滑り落ちるのか? VMが強制終了するのか? 携帯の電源がOFFになるのか? αエラーのダイアログはでないのか? トレースログは見たのか? 偉そうに「イヤミだって解らないわけないでしょう」とか言うのなら、何故またこんな情報足り無すぎなレスをするのか? 偉そうにするからには隙の無いレスしろ
「メモリ不足かなにかで落ちまくります」より具体的な技術的表現はないのかね?
落ちまくるんだからVMが終了するわけではないんじゃないか? VMが終了したら落ち まくれ ない 多分マップ上の落とし穴に落ちてダメージをうけまくっちゃうバグとかが出てるのかと
いくら匿名の2chでも礼儀は必要ということだなー
あと問題がありそうなのは装備の付けはずしの部分ですかね
まず、アイテムクラスを配列で、道具箱クラスが持っています、
装備メニューを開いた時に、例えば頭の装備品ならばアイテムクラスの配列を
全検索して、頭に装備するアイテムが出てきたらポインタを取ってきて
メモリ確保をしていない装備メニュー用のアイテム配列に追加っていう風にやっています
>>648 落ちると言うのは「例外処理がされていない動作障害が発生しました」みたいなダイアログが出て
実機のみで落ちます、エミュレータでは出たことありません
>>649 >>650 正確には落ちまくりではないですね
例えばマップを出たり入ったりを繰り返すとだとか
上で書いた装備メニュー用のアイテム配列の削除のときに落ちることがあります
>>652 間違い・・・
>上で書いた装備メニュー用のアイテム配列の削除のときに落ちることがあります
じゃなくて、表示用に作ったクラスの配列でした、ポインタをとってきたのに削除するとまずい…
俺のデバッグを手伝ってくれスレはここですか?('A`)
652の情報まで聞いて、やっと原因わかったわ そりゃ落ちるだろw PCJAVAじゃあるまいにw
>655の書き込み見て気づいた俺は反応鈍いのかな これについては昔の端末のほうがしっかりしてるんだよな 最近のは手抜き過ぎ Javaだと自前でどうにかするのも限界あるし、そういう意味じゃCとかのほうが便利だぜ
なるほど こりゃ設計の問題じゃね? もしくはMAXきめるかしかないと思われ
ポインタをコピーして複数から参照するのがまずいのですか?
ここまで読んだけど全く分からん。
>>655-657 は一体何に気付いたのか教えて欲しいな。
あと取り敢えず630は名前付けてくれないと見難い。
直接の原因のほうは俺は分からないけど、
まず例外のキャッチに焦点を当てるのが先決だと思うんだ。
確認するけど、
>>646 のコード以外で動作しているスレッドは無い?
プログラムの大本がそこだから、そこでさえキャッチすれば
完全とか思っていると見逃してしまったりするよ。
アプリの根元はスレッド毎にあるんだから其々でキャッチが必要。
コールバック系のメソッド、タイマやオーディオのイベントハンドラ内はチェックした?
>>652 で言ってるダイアログが出るのは、必ずどこかメインスレッド外で
例外が送出されているからだと思うよ。
eclipse3.1.1とDoJa5.1、JDKは1.5で開発行いたいんだけど サンプルプログラムをデバッグしようとしても”リモートVMに接続できない” 等のエラーが出てしまうんですが、解決方法ご存知の方いたら教えてください
661 :
630 :2008/05/26(月) 19:58:15
>>659 ああああ、そういえばテスト用にアニメーションをスレッドでやってて
それ放置したままでした;;スレッドはこれしか作ってないので
原因の一つはこれで間違いないですね;;
>>659 ついこの間、バカな質問者のせいでこのスレが大量に流れたの忘れたの?
なんでバカの流入を加速させようとするの?
そこまで口汚く罵ることはないだろ ただ630も、別にここは初心者質問スレじゃないってことを理解しようよ 回答してくれそうな連中を小馬鹿にした態度や、情報を全然開示しない姿勢は反感を買うに決まってるでしょ
ダメ質問者のテンプレのようなやりとりだな
>>630 ・メモリー不足か「なにか」で「落ちまくります」 (なにか?落ちまくり?何それ)
・アイテムを64個 マップのレイヤーが四層 (勝手に定義した単語使うな)
>意味不明という意味わいのレスをうける
>>636 レスに対してなめた態度 (お前の質問の態度をあらためろ)
>「なにか」をはっきりさせろ
>>638 キャッチできないんですよね (Javaの仕様上ありえねーよ。少しは自分を疑えや)
>ソースだせ
>>640 どの部分をですか? (お前しか全容を知らんのに、なんで他人が「どの部分か」指定できると思えるの?)
>原因個所を特定できる部分か、可能な範囲できるだけ
>>645 イヤミにはイヤミで返しましたwwww (お前のなめた質問態度がそもそもの原因だろ)
そして
>>661 ああああ、別のスレッドまわしてましたああああ!!
(#^ω^)
-------ここまで、質問者630からの感謝の言葉、謝罪の言葉一切なし---------
668 :
630 :2008/05/26(月) 20:29:03
え?お礼って強制されるもんなんですか?
669 :
630 :2008/05/26(月) 20:34:44
>>663 後だし情報というか完全に忘れてた感じです
そもそも情報としてスレに挙げられるなら(覚えてたなら)直しますし
>>664 そうですね、すいませんでした
小馬鹿にしたレスというのは特に
>>645 だと思うんですが
>イヤミもわからん頭でプログラムは無理だと思うよ。
これ
>>636 のイヤミがわからなかった時点でオマエガナーと思ってしまったので
ついつい書き込んでしまいました;;
>>666-667 このレスに書く予定でした、添削している間にスレが進んでしまって
あと
>>668 は偽者ですけど、IDでないので無駄ですね
小馬鹿うんぬんだが、質問者としての最低限の情報提供もしてないのならイヤミの一つも言われるでしょ・・・ それにイヤミで返してどうすんの 裏を返せば「質問に応えるためには、この情報が足りてないよ」ってことで、ありがたがるべき指摘でしょ・・・
671 :
630 :2008/05/26(月) 20:53:54
すいません、その通りでした このレスで最後にしときますので以降はスルーお願いします
引数重視だととにかくメンドクセエ 包括変数がとにかく便利でしかたない 異常ですか?
正常な馬鹿です
お前ら、スルー力とか、大人の余裕とかないのかよ。
メモリ不足はどう頑張っても拾えないケースがあると思ってました
505以降はJavaヒープがじゅうぶんにあるから メモリ不足ってあんまり有り得ないと思う 他の原因でエラーが出ていると考えたほうがいい
ゲームで必要なイメージを全て持ってるとかだったら、ヒープやばいだろう。 要らないのは捨てろよ。
>>634 亀レスですが、なるほどガッテン!なお話だなと思いました
・最初から容量をケチってソースを書いたせいで、最後まで謎のバグに悩まされるか
・見通しのいいソースでひとまずバグのない状態を実現してから、容量削減を模索するか
後者は二度手間?になりそうな印象もありますが
容量削減のためのノウハウはある程度蓄積されてるので
バグを取るよりは作業手順・内容が明確になる=負担は少ない、と言えるのかもしれないですね
動きゃいいんだよ
スクラッチパッドに記録したデータを一部消したいんですが そんなことできますか?
軽く水に浸す
だが運がよくないと全部が消える素人にはオススメできない諸刃の剣
>>682 ・どう保存しているか
・どのように保存されているのか
これが分かれば可能。
分からなければ軽く水に浸す。
っつーか、自分で管理してるデータなら 自分で好きにしたらいいじゃん。
アプリ起動中にfreeMemory()を表示させるとメモリーの様子が分かるが ゼロになると自動的に解放されてメモリーが増えるので メモリー不足のエラーなんか有り得ない (嘘)
再帰でスタックオーバーフローが起きたら有りえるんじゃないの
↑俺はぷよぷよ作ろうとした時に判定部分でそうなった
スタックは何KB?
>>682 残念ながらプログラムでは一部を消す、といったことはできません。
もしどうしても、というのなら「気」で消してみてはいかがでしょうか?
まず、掌を熱くなるまでこすりあわせます(最初は風呂上りなどにやると良いでしょう)。
そして、両掌をわずかに離して向かいあわせてください。
この状態で掌をゆっくりと動かしてみましょう。
掌が互いに引っ張り合ったり逆に押し返すような「気」の「力」を感じるはずです。
掌に気を感じられるようになったら、端末の上に掌をかざしその「電気」を感じ取ってください。
うまくいけば、記録されている情報の「気配」を感じ取れるはず。
後は、消したい情報の気配を探り当て、邪気を送り込めばその情報を保持している電気を破壊できます。
692 :
556 :2008/05/30(金) 21:21:48
そもそも消すという行為に何の意味があるんだ? 参照しなきやいいだけじゃん
ゴメン、名前欄ミスった 556とは関係ないです
694 :
デフォルトの名無しさん :2008/05/30(金) 21:42:00
>>691 やってみた
本当に掌の間にねばっこい塊があるみたいな感じで引っ張り合うなw
これで先生のあのデータを(略
やってみたがイマイチわからん。掌をどう動かすんだ? 距離を離すようにするのか、それとも距離を一定にしながらすれ違うように動かすのか・・
>>695 私は691ではないけど、やってみた感じでいうと
こすりあわせなくても、
合掌して手のひらを4mm〜8mm位の間で離したり近づけたりしていると
なにかの存在があるように反発力を感じた。
すれ違うとかじゃなくて、
両手の平の位置は合掌時の位置関係で固定するのが正しいみたいだよ。
お前ら、2chネラーの言うことなんて真に受けるなよ(w
698 :
デフォルトの名無しさん :2008/06/01(日) 02:20:27
au使ってるんだけど 作ったアプリを携帯に入れるにはどうしたら良いんでしょうか
701 :
デフォルトの名無しさん :2008/06/01(日) 09:56:16
auのほうがいいからやだ
>>698 「iアプリゲーム開発テキストブック903i/703i対応」著:布留川英一
の365ページ以降に「au/ソフトバンクへの移植」があるから読んでみたら
703 :
デフォルトの名無しさん :2008/06/01(日) 12:53:03
今EZアプリ動く機種あるの?
705 :
デフォルトの名無しさん :2008/06/01(日) 13:08:01
動くことは動くんじゃね
まぁ、どっちにしてもスレ違いな気がする。 EzアプリってMIDPじゃないのか…?
707 :
デフォルトの名無しさん :2008/06/01(日) 13:21:50
なるほどここはiアプリか確かにそうだね ごめん
IApplication.getParameter()で取得するパラメータって エミュレータで設定できますか?
配列a[0]〜a[100]までを引数にしたのですが meso(a[]); : : void meso(int a[]){ } とやってもエラーが出ます どうすればいいですか?
多分「失せろ」って事だと思う。
>>711 iモードに限らないJavaの話題はここですべきでないってことだよ
つーか後々の為にJavaの入門書からやり直した方がいい
配列は引数にできないんですか?
できますん
719 :
デフォルトの名無しさん :2008/06/02(月) 07:11:26
mesoddo
void meso(int []a){ }
721 :
デフォルトの名無しさん :2008/06/03(火) 09:43:03
iアプリってたくさんクラつくれないからソースが偏るよね C言語みたいになる
でも作らないよね 23個程度だし
importで*使うとメモリを多く消費するんですか?
俺はメガアプリ用にはStateパターンで使うconcreteなクラスは大量に作ってる。 とはいえなるべくサイズ削減はしたいけど、ProGuardじゃクラス融合はしてくれないしな。 Eclipseのリファクタリング処理をバッチ化して実行するような、 ソースコードレベルのオブファスケータがあると良いんだけど、無いよなぁ。
Java Blender と ProGuardってどっちがいいの?
オプションで融合できるけどね
PCでは動くのに、実機ではぬるぽ投げたり、アウトオブバウンズ投げるのは なんでですかね?
たまたまPCで動いていただけ。
732 :
デフォルトの名無しさん :2008/06/04(水) 07:17:01
733 :
デフォルトの名無しさん :2008/06/04(水) 08:15:35
>733はimportと(Cの)includeを混同してないか? includeはファイルをソースレベルでマージするものだが、 importはクラスの場所(ライブラリ内でのいわばフルパス)をあらかじめ指定して、 ソース中での記述を省略できるようにするもの。 …だと思ったけど。 Javaスレ行った方がいいな。
javacなどのコンパイラは、メモリを消費するかもね クラスファイルになったら一緒
クラスファイルってなんですか?
Javaのソースファイルをコンパイルしたらできる、.class という拡張子が付いたファイル
>>729 TrustedAPIDなしでもGPS情報取得できちゃうようなバグじゃね?
むしろ、GPSぐらい解放してくれたらいいのに。 毎回ダイアログ出てもいいからさぁ。 いちいちWEB経由とか写真に埋め込みとかめんどくさくってやってらんねぇ。
740 :
デフォルトの名無しさん :2008/06/04(水) 23:10:20
ちょっと知恵を拝借したいのですが、 スクラッチパッドにbyte配列とshort配列を書き込みたいと思っています。 shortの場合、DataOutputStream#writeShortを使えば良いのですが、 そうするとbyte配列書き込み用とshort配列書き込み用の2のメソッドを 実装することになってしまい、無駄な気がしています。 short配列をbyte配列にキャストしたり、代入できないので どのようにすれば効率の良いプログラムになるでしょうか? また皆さんはどのように対応しているのでしょうか? 識者の方、よろしくお願いします。
無駄な気がしても、他に方法はないんじゃないかな byteかshortどっちか使うのをやめて、片方に統一するとか・・・
全部byteで書き込めばいいんでは? どうせwriteShort使ったって内部でbyte変換してるんだろうし。
俺は両方バイトに変換して書き込んでる、結局読み込むときこっちのが楽だし
スクラッチパッドへのアクセスの話が出てるみたいだからちょっと便乗して質問 アプリの設定を変えるたび、スクラッチパッドに、たった4byte程度のフラグ情報を書き込む という処理をしてるんですけど 機種によって書き込みに1秒程度かかって待たされたり あるいは全然待たされなかったりするのですが、こんなもんなんですかね…? 一応書き込むときに、length=4とつけてはいるんですが… (この length=xxx って読み込みだけじゃなく書き込みでも効き目はあるんだろうか…?)
>>744 そんなもん。
機種によってはスクラッチパッドの中身全てを一旦メモリー上に展開したりするからな。
(んで、アプリ終了時に書き込む。だから電池抜きでやると、書き込んだはずのデータが消えちゃう。回避不可能)
色々独自仕様ありすぎ
>>740 データ型じゃなくて処理の単位で分けてる。
writeScore()とwriteConfig()みたいに。
同一ストリームへの書き込みでbyte配列とshort配列が混在するときは
そのままインラインで書いてるなぁ。
747 :
740 :2008/06/05(木) 21:00:04
アドバイス感謝です!!
>>741-743 回答ありがとうございます!
やはり、スクラッチパッドへのアクセス方法は
人それぞれなのですね。
>>746 なるほど、処理単位という発想はありませんでした。
汎用的なものを作ることしか考えていなかったです。
まずはshort→byte配列変換するパターンで作って、
その後他のアクセスパターンも試してみるつもりです。
本当にありがとうございました。
String replace()で改行の削除って可能ですか? 例:str="あ\nあ"; strを"ああ"に str.replace('\n', ''); ←これだとコンパイルエラーになる(><) お願いします。
エスケープ...
>>745 > 機種によってはスクラッチパッドの中身全てを一旦メモリー上に展開したりするからな。
> (んで、アプリ終了時に書き込む。だから電池抜きでやると、書き込んだはずのデータが消えちゃう。回避不可能)
マジすか…
アクセスが妙に速いのはそういうことをやってる機種、かもしれませんね…
「アプリ設定を変えても即座に記録されない」と苦情が出て
変更する都度スクラッチパッドに記録するようにしたんですが
今度は機種によって「グッ…」「グッ…」と待たされて…
これはもう「端末の仕様です」で押し通すしかないですね
(アプリ終了前にイベント発生?してくれるならまだどうにかなりそうですけど、
そういう実装はされてませんしね…)
>>749 もうちょっと詳しくお願いします;;
補足で
str.replace('\n', ' '); ←これで削除はできるんですが半角スペースが入ります
str.replace('\n', '\0'); ←これでも半角スペースが入ります
>>751 つうかStringBuffer使おうよ
>>752 おー。はずかしながらStringBufferの存在を初めてしりました。
ありがとうございます。一応こんな感じでできました。
もっと効率のいい方法があれば教えてください。
// 改行の削除
StringBuffer strBufSrc = new StringBuffer(str);
StringBuffer strBufDst = new StringBuffer();
for(int i=0; i<strBufSrc.length(); i++)
{
if((strBufSrc.charAt(i) != '\r') && (strBufSrc.charAt(i) != '\n'))
{
strBufDst.append(strBufSrc.charAt(i));
}
}
str = strBufDst.toString();
>>750 んぱかに
SP処理の速度の一覧があるから調べてみれば?
>>754 http://onosendai.jp/npaka/bench2/bench.jsp このページでしょうか?
16KByteを2048回書き込んでるということは、一覧に記載された値を2048で割れば1回あたりのアクセス時間(ミリ秒)が判るはず…
なのですが、求めた概算の時間と、実機のソレが、体感的にまったく一致しないんですよね
これは想像ですが、んぱかさんのベンチマークアプリは
Connector.openOutputStream() 等でスクラッチパッドへのアクセス準備した後に
連続で2048回読み込み/書き込みして測定してるのではないでしょうか
しかし実機上では、スクラッチパッドへのアクセス準備に時間がかかる機種とかからない機種が存在していて
それについては前述のページにその情報がない、
逐一「アクセス準備」→「書き込み」→「クローズ」をした場合は機種によって反応が全然違う、という状況ではないのかと思いました
何にせよ、スクラッチパッドへの書き込みが遅い件をアプリ側で改善するのは難しいですよね…?
書き込み回数を減らすか(画面切り替わり時などにまとめて書き込む等)、遅くても・待たされても我慢してもらうか、
どちらか選択するしかないのではという気がしました
>>755 流石にそこまで「ぐっ…」って止まっちゃう端末は記憶にないなぁ。
・SPに保存するだけのアプリつくって、同じ挙動するか確認
・そのコード(IApplication#start()をオーバーライドした10行くらいだろ)をここで晒してみる
ってしてくれれば、俺も気になるし色々アドバイスするよ。
ちなみに電池パック抜きするとSPに保存(書き込み後close)した内容が反映されないって機種は
少なくともN900とP900
多分NPシリーズはその後もそうなってると思う。
だからこいつらだと、中断/再開がある系のゲームでハイスコアとか偽造し放題なんだよな('A`)
・中断/再開がある系のゲーム
ゲーム途中でプレイを中断するための機能。
「再開」すると消去される、1回しかロードできないセーブデータをつくる。
「再開」後データの無効フラグを立てても、電池抜きで「無効フラグが立たなかったことに」できちゃう。
>>755 4byte書き込むにしても1byte毎にopen/close繰り返して
遅延させてるとか言うオチじゃないの?
それかメモリアクセスするがよろしく参照するたびにopen/closeしてるとか。
>>756 「ぐっ…」
がどのくらいの時間か分からないけど
50msや100ms止まる端末はザラにあるだろ?
>>758 0.1秒で「ぐっ…」と感じるなんて状況そうそうないと思うがなぁ…。
オプション画面とかも、その画面を抜ける「タイトル画面に戻りますか?>OK」ってやった時に書き込むもんだと思うし。
そういや俺今まで気にしてなかったんだが、
複数の離れたい位置にあるデータを書き込む時に
opencloseを複数回繰り返して書き込む処理にしてたりすると、
いきなりアプリが終了されてしまう時なんかに、
その複数のデータの後ろの方は書き込みがされていない可能性があるわけだよな。
複数データが同期を前提とした関係構造だった場合、それが崩れてしまう。
タイミング的には低い確率だとは思ってるんだが、
>>758 を見ると起こせそうで怖い。
今まで作ったアプリで出ないとは限らないから不安だな・・。
なぜ離れたところにセーブするような実装にしたんだ!!
ファイルシステムでも実装したとか?
N903iだけどバッテリ抜いてもちゃんと記憶されてるよ?
PCではちゃんと計算どおり画像が描画されてるんですが、 実機で動かした時には、時々ずれてしまうことがあります もしかしたら描画のタイミングが違うのではと思います do{ /* ゲーム処理 */ ・・・ /* 描画処理 */ repaint(); }while( true ); こういう感じで処理した場合、repaint()の時に paint( Graphics g )をちゃんと呼び出してくれてるのでしょうか?
↑ですが、やはり描画部分を別スレッドにしている機種があるみたいです ということは描画を自分の狙ったタイミングで行うということは無理なのしょうか?
↑自己解決しました paint( getGraphics() ); こうすればいいようですね
>>766 普通そんなことしないと思うぞ。
「計算どおり画像が描画」されないって具体的にどんな状況?
あと実機の場合は機種が知りたい。
>>767 repaintがかならずpaintを実行するって保障がないからじゃない?
docomoなのになんでrepaint使ってるのかは知らんけど
repaint()からpaint(getGraphics())に置き換えたから正常動作したってことで
試した機種はN904です 「計算どおり画像が描画」されないっていうのは 計算途中の位置で描画されてしまうということです 例えば x += speed; if( 壁との当たり判定 ){ int tmp = 壁位置の計算; x = tmp; } こんな感じのを使っていて、壁に当たっていた場合には、 壁の位置に補正されるはずなんですが(PCではされます) 実機で動かすと、一瞬めり込んで、次の瞬間に戻るというのが時々起きました (上で言うと x += speed; の段階の位置で描画されているようです) なので、もしかすると描画は別スレッドで回ってるんじゃないかと思ったんですが
>>768 普通はrepaintしないんですか?
どんな感じで描画メソッドを呼び出してるんでしょうか?
>>770 docomoってpaint内以外でもCanvasに書き込めるんだから
描画メソッド(paint)をrepaint()で呼び出す必要ないってこと
またロックし忘れか。
ロックし忘れはないですね 描画は一箇所でしかしてませんから
repaintはpaintを呼び出して欲しいと「要求」するだけなので、いつ実際にpaintが呼び出されるかは不定。 paintとメインループは別スレッドなので、当然「計算途中でpaintが呼ばれて変な描画になる」のも当たり前。 普通はpaintの中は空にし、メインループでcanvas.getGraphics()して描画するんだ
paint()内でwhileループしてる俺は邪道なのか・・・ ていうか最近やってなかったけど、久々にiアプリのソース見たら なんか怖いことしてるんだが・・・
>>775 おい、他のprocessEventが解決できなくなるだろ
少しはプログラミングガイド嫁よw部下だったらぶん殴ってるくらい最低のプログラムだ
>>776 だよな。何で俺もこんなことしたのかわからんwww
実機でだけアプリが終了してしまう原因が分からなくて困ってます. トレース情報を見るとArithmeticExceptionを拾っているのですが,このエラーが実機だからでるというのはどういうときなのでしょうか? ご教授願います.よろしくお願いします.
実機の機種とかさぁ、DoJaのプロファイルとかさぁ、もっと情報出したら?
質問する時はこういう情報を出せ!みたいなテンプレが、次回のスレから欲しいかもな そのExceptionはおおむね0で数値を割った時に出る。 割り算に特に注意しつつ、どこが原因か探してみ。
>>778 それさエミュレータでもエラーはコンソールに出力されてるんじゃない?
アプリが落ちないだけで
repaint()は便利だから使うのやめられんハヒー 例えpaint内でループ使っても、その時repaint()かからないようにすればエラーは出ないヒヒヒ
ゼロ除算が原因だとしてエミュと実機で違う点を挙げるなら、 タイマー精度、カラー値、Math関連の戻り値くらいかなぁ。 でも一番怪しいのはスクラッチパッドの初期化ミス。
repaintが便利ってのの意味がわからんのだが、何が便利なんだ?? あんな動作タイミングが「不定」なもの、使いたくないだろうと思うんだが・・・
MIDP2.0より古い機種に移植できるところ
>>785 MIDP2.0より前の機種も、paint使わずに自由に描く方法のほうが一般的だろ
MIDP1.0のpaint外描画は仕様上100%保証されているわけじゃないが、それで動かなかった機種は現状1つたりともないし
無限ループを使わないプログラムの場合は repaint()は便利ですぞ 使うのやめられねえヒョホー
BREW移植があんだから、無限ループなんて使うわけないだろ 結局ただの釣りかよ
Imageを、アンチエイリアシングをかけながら縮小描画する方法ってのは無いでしょうか? drawImage系ですとアンチはかからないようですし…。 現在はgetPixelsとsetPixelsを駆使して、自前でやっているのですが、何分遅くて…。
どんなゲームか気になるわ。 アドベンチャーとか?
repaint()も無限ループも使わないで プログラムを循環させる方法なんてあるんですか? 教えてください
>>789 スムージングを掛けての縮小処理だと思って返答するけど
テクスチャにしてバイリニアフィルタリング掛ければいいんじゃね?
携帯で3Dいじったことないから出来るかどうかまでわからんけど
マスコットカプセルごときにフィルタなんてねーわけで・・・
ソフトバンクのマスコットカプセルならバイリニアかかるけどな
>>791 Timerクラス?
俺は787がrepaint()をどんな風に使っているのか、
788がどうしてBREW移植を前提にして語っているのかが知りたい。
>>795 仕事柄移植はよくくるもんでな。
無限ループって聞いて「大外の無限ループ以外。つまりシーン関数(とか)内での無限ループ」を想定して「ねーよ、BREWに移植できなくなるし」って答えた。
大外は勿論無限ループだ
釣りにいちいち付き合わなくていいよ
>>789 どのくらいのスムーズさを求めてるの?
エクセル(2003)のCtrl+マウスコロコロくらいのスムーズさなら
タイマー+drawScaledImage()でやってる。
周期30msで30fpsくらいか。最近の機種は10msでもいいかも
799 :
798 :2008/06/10(火) 22:55:00
ごめん。書いて気付いたけど、アンチエイリアスね。勘違いしてた たしかにdrawScaledImage()だと細かい字とかだと読めなくなるね 簡単にやるなら元の画像サイズをでかくするくらいか。 機種によっては読み込めるサイズ制限が厳しいけど。。。
>>796 Dojaでの無限ループってかなり外側でしょ?
J2MEと違ってBREWは無限ループでブロックしちゃいけないからね...
決められた秒数いないにシステムに返さないとアプリが落ちるという制限もあったような...
>>800 それがあるから、どんな場所で無限ループしても怒られないDojaであっても、一番の大外以外での無限ループはしないようにしてるのが普通じゃね?
日曜プログラマならどんなもんでも構わんと思うけど
802 :
800 :2008/06/11(水) 00:24:20
>>801 禿同。ついでにMIDP1.0にたいしても近い恩恵を受けられるしね。
恐らく無限ループを作って良いシステムなんて稀有だと思うし
出来る出来ないの話ではなくやらない様にすべきだよな
MIDP1.0系の端末も、無限ループでやるとイベントが遅延する機種があるからなぁw 逆に3G端末系だと無限ループにしないとダメという、もうちょっと統一感もてよなあいつらw
}の数が合わないみたいなんですけど、どうしたらいいですか? チンチンブルルンルン
ちょっと聞きたいのですが iアプリでエクスプローラーを作るのは可能でしょうか? PC無しでSDカードの中身を操作したいのです できるようならプログラム勉強しようとおもいます ついでに口内炎が痛くて困ってます 治す方法はいいので、口内炎が出来る理由もわかれば教えて下さい お願いします
一応できるけど、制限が多いので現実的ではない 口内炎は薬塗れば2日で治る
808 :
806 :2008/06/13(金) 12:57:17
素早いレスに感謝します では、SDカード内のフォルダ名を変更するプログラムなら簡単にできますか? 口内炎の塗り薬はやはり染みて痛いのでしょうか?
最新機種ならば複数の音楽を同時に再生するってことできるんでしょうか?
なんかよく分からんが口内炎なら野菜食っとけ、野菜。ってばーちゃんが言ってた。
ビタミンAの欠乏だっけか?
俺は首筋と後頭部に小豆大のしこりができたんだがこれは・・・?
ピザじゃね?
質問です。 SH906iは、480*854のiアプリを自動で横にしてくれる機能がありますか? 購入の参考にしたいと思っています。 宜しくお願いします。
それはアプリ次第でしょ 細かいことは機種のスレで聞いたほうが確実だと思うよ
818 :
816 :2008/06/13(金) 22:22:31
そのiアプリを自分で作っていまして、 作る側のことはこの板で聞いた方がいいと思ったんです。 DrawAreaを480 * 854にして、更にTargetDeviceにSH906iとやればできますか?
横にするってのがよくわからんがそれはできる
820 :
816 :2008/06/13(金) 22:57:29
480 * 854だと画面領域を超えるから 普通だと縮小されるか、もしくはDLでエラーがでますよね? それで横画面にしたときに、 自動で右回転して854 * 480にしてくれるのかが知りたいんです。 確かF905iとかだとしてくれたような気がしますが、どうでしょうか?
821 :
816 :2008/06/13(金) 22:59:01
間違えた、縦横が逆でした……。
なんで }の後に;をつけなくても大丈夫なんですか? チンチンブルルンルン
480x480
グーグル アンドロイドって どう思いますか?
ロボチガウ ロボチガウ
よくよく考えてみたらメガアプリにのみ対応させるなら240*240にする必要ないですよね 皆さんはメガに対応させるときどのサイズにしてますか?
いや、メガアプリでも240*240までしか使えない機種もあるし。 全機種に対応させたいなら240*240 ワイドが使いたくて比較的多くの機種に対応させたいなら240*320 その他ターゲット機種が決まってるならそれに合わせればいいんでね?
>>820 縦画面にしてくださいって警告が出るだけじゃない?
SH905iはそういう警告が出る
829 :
816 :2008/06/14(土) 19:09:18
つまり、リッジレーサー等の横画面のiアプリは、 SH905iでは警告がでてプレイできないということですか?
>>829 たしかリッジレーサーズは縦横両バージョンがあるよ
横に出来る機種だけが横ワイド対応だったと思う
珍しく仕様がバラバラなんだよな。 最初バラバラすぎたのを反省して統一化してきてたのに、なんで急に?って感じ
横向きにできる機種とできない機種があるから仕方ないでしょ
そもそもSH905もSH906も横向きの時にキー操作が出来ないじゃん SH906はタッチパネルで操作できるが、でもiアプリじゃ無理だろうし
834 :
816 :2008/06/14(土) 23:43:10
公式サイトでSH906iのiアプリのドキュメントを見つけたんですが、 プリインストールのデビルメイクライが縦横あるみたいです。 ただ、1つのアプリなので、携帯側ではなく、 iアプリ側で描画処理を変えてると思うんですよね。 メインの3D画面はいいとして、文字部分や2D画像は、 setFlipModeか行列で回転描画してるはずです。 2D画像だけなら最初から回転したものを用意すればいいですが、 文字はFlipでできないので、一旦画像に描画してからになると思います。 あとは854*480の横ワイド画像に全部描画してから、 それを回転して画面に描画といったかんじでしょうか。 ただ、このやり方だと回転した描画を用意して座標を指定するのがわかりづらいですし、 PCで開発しているときに横になって見づらいというのがネックになると思います。 後者は描画部分をPCと実機で切り替えられるようにすればできますが、 前者はどうにもなりません。 最初から横ワイド画面で開発したのが、そのまま横画面になれば何の問題もないんです。 ちなみに私が購入を考えているのはSH906iTVで、 ほとんど同じであろうSH900iでできるかを聞いてみました。
同じ形の画像のうち片方は青、片方は赤の色で塗りつぶしてある物を用意して、 青のほうは表示、赤のほうは非表示(重ねるように配置)にして、 非表示にしてあるほうの色を取得するみたいなことはできますか?
三角関数を使うとビルドは成功しますが 起動するとRuntimeExceptionエラーが出ます なぜですか?
838 :
806 :2008/06/15(日) 01:41:46
では、SDカードに入れてあるエロiモーションを隠すことは不可能でしょうか? あと口内炎に関してですが、治し方ではなくて 「何故できるのか」 を教えてもらえると嬉しいです。
>834 >ただ、このやり方だと回転した描画を用意して座標を指定するのがわかりづらいですし、 >PCで開発しているときに横になって見づらいというのがネックになると思います。 全然そんなことないよ。特に難しいことなく開発できてる。 1行目について: 座標変換は必要なし。あたかも最初から横長のCanvasであるかのように、 画像でも文字でも854x480のImage(オフスクリーンバッファ)に描くだけのこと。 それをCanvasに描画するときにsetFlipMode()。 2行目について: エミュレータに854*480(横長)のデバイスを作って追加する。 設定が面倒だけど1度やってみることオヌヌメ。
840 :
816 :2008/06/15(日) 10:32:09
>839 Imageに描画→それをcanvasに描画は、 2回描画するので重いのではないでしょうか? また、私が今所持しているSH903iで、 setFilpMode(Graphics.FLIP_NONE)とsetFilpMode(Graphics.FLIP_ROTATE_RIGHT) のそれぞれで240*240のgifを300回描画する時間を比べると約3倍違いました。 このことからも、なるべくFlipModeは避けるべきだと考えています。 速度を出すには、2D画像は画像自体を回転させ、 文字はしょうがないのでImageに書いたものを、 FlipModeで描画するのが最適なのではないかと思っていますが、 どうなんでしょうか? 携帯の方で勝手にやってくれれば一番なんですが……。 C:\iDKDoJa5.0\lib\skin\deviceinfo\のならば書き換えてやっています。
>>838 なんかもう・・・他所でやれと言いたいところだが。
>では、SDカードに入れてあるエロiモーションを隠すことは不可能でしょうか?
端末側の機能でやれ。
アプリでできることはAPIリファレンスでSD-Bindingを調べろ。
>あと口内炎(略
ググれ。山ほど出る。
マジメか
>840 >携帯の方で勝手にやってくれれば一番なんですが……。 できないと決まってることに何でいつまでもグズグズ言ってんの。 「どうなんでしょうか?」じゃないでしょ。結論出してるならもう勝手にしなよ。
844 :
816 :2008/06/15(日) 12:38:09
SH906iでできるかできないかの質問の答えはまだ出てないと思います。 以前に作ったアプリで空のImageに描画したものを、 FlipModeでCanvasに描画等をするテストをやってみました。 結果、一番重いシーンでも秒間16描画が可能でした。 createImageで作ったものに描画するのは高速なんですね。 私の勉強不足でした。 できれば906iシリーズ全てに対応させたいので、この方法でいきたいと思います。 お騒がせしました。 そして、ありがとうございました。
>>844 905以降は速い、うぜえ、消えろ
検証センター行け、行けないなら自分で買え
>>840 言っていることがちぐはぐすぎる
setFlipModeすると遅くなるなら、たった1回しかそれをせずに済む「Imageに描画>Canvasに」を採用しろよ
開発も楽だし、速度も十分速い。
そもそもCanvasのlock/unlockを使っているなら、それは「Imageに書き込む>液晶に」という動作を内部でしている。変わらん
847 :
816 :2008/06/15(日) 13:35:20
>>845 検証センターなんてあるんですね。
個人でやっているので、この金額はちょっと高いので行きません。
SH906iTVを購入して、他の機種は公開して問題が出たら対応という感じにします。
>>846 840の時点では、setFlipModeで描画する回数よりもサイズのことを考えて、文字部分だけすれば早いのではないかと考えたんです。
setFlipModeの切り替えが遅いのなら「Imageに描画>Canvasに」ですね。
結果的にも「Imageに描画>Canvasに」になりました。
もう結論がでていることなので、開発に集中しますね。
俺は↑これが言っていることがさっぱりわからないんだが、一体何を基準に思考してるんだろう・・・
>>847 切り替えが遅いってどういう意味だ?
物理的に液晶を回転させてるとか思ってるの?
以降のdrawをFlip付きで実行してくださいって命令だろ?
Flipうんぬんじゃなく、offscreenを挟むと昔の機種は遅い
最近の機種はoffscreen経由でも高速になってる
これだけのことだろ?
マップとかに使う配列データはソースに直接書いておくのと、リソースにテキストとして入れておくのでは、 どちらが容量を少なくできるんでしょうか? 内容が一緒なら変わりませんか?
>>849 多分…。多分だが、setFlipModeを呼び出すこと自体が遅いと思ってるんじゃないだろうか…
Direct3DとかだとSetRenderStateをむやみに呼び出すなと言われるし…
>>850 変わりません
852 :
835 :2008/06/15(日) 15:51:49
インパクトが弱いのか、書き方が悪かったのかわかりませんがスルーされてしまってるようなので もう一度・・・。 同じ形の画像のうち片方は青、片方は赤の色で塗りつぶしてある物を用意して、 青のほうは表示、赤のほうは非表示(重ねるように配置)にして、 非表示にしてあるほうの色を取得するみたいなことはできますか? 当たり判定に使うことが出来るんじゃないかと思っているんですが、どうでしょうか?
>>850 resフォルダならjarファイルとして圧縮されるから減るんじゃ?
リファレンスでは2.0以降になっているのに3.0で static int Math.cos(int a) が機能しません どうすればいいですか?
答えたくても、意味がわからないのでな…
最近のこのスレのカオスっぷりはなんなんだ? 意味のわからない質問 公式のプログラミングマニュアルすら読まない質問 情報を隠した質問 何を答えればいいんだよ
何を質問しているかを…じゃね?
>>852 書き方が悪い
表示ってなに?描画のこと?
もうちょっと具体的に分かりやすく質問せねば
>>850 Cと違ってJavaで初期値のある配列はサイズでかくなりますよ
>>852 redImageをオフスクリーンに描画、次にblueImageをオフスクリーンに描画
オフスクリーンからredImageを描画した座標でgetRGB
RGB配列内に青のRGB値があれば重なってる
はい、出来ます、俺はこんなこと絶対しないけど
>>859 確かバイトコード上だと確保のコードの後に書く値を代入するコードが直接埋め込まれるん
じゃなかったっけ?Cならモジュールがロードされた時に値の羅列がメモリに乗るから
それを使うだけだけど、
>>852 色で当たり判定を行うとはまた斬新な・・・。
どんなゲーム作ろうとしてるの?
863 :
835 :2008/06/15(日) 18:30:23
>>856 まさに俺のことですね。。。
>>858 描画のことです。
>>860 なるほど。できるけどあまり効率的ではなさそうですね。
>>862 ダーツゲームを作ろうと思っています。
えっと、情報を出し惜しみしてたわけではないんですが、一応授業でiアプリを作れということだったので
できるだけ自分で考えたほうがいいかなと思って書き込ませてもらったんですが、
結果分かりにくい原因になってしまったようですみません。
上に書いたようにダーツゲームを作ろうと思っています。
先生がカーレース?のアプリを例に見せて、コースをはみ出したときの判定は色を使っていると言っていたので、
描画する画像(ダーツボード)と描画しない画像(点数別に色分けされた画像)を用意して、
あたった所の色を読み取って点数を出すという方法がいけるんじゃないかと思いましたが、実際その方法で
できるかどうかわからなかったので書き込ませてもらいました。
上で書いている事と矛盾しますが、他にどのような方法があるか教えていただけますでしょうか?
ダーツか、じゃアークタンジェントと平方根
メンテはしやすそうだが、無駄の多い方法だな<色で判別して点数
幸いダースは完全な円なんだから、
>>864 の方法でいいだろー
絶対座標と極座標
>>864-866 数学嫌いの俺としてはまったく考え付きませんでした。
チームで製作なので得意な人にそこらへんは任せてみようと思います。
恥ずかしながら極座標というのは初めて聞きました。
数学嫌いがなんでプログラムやってんの どうも専門学生っぽいが、数学使えないプログラマなんて、底辺コーディング屋としても需要ないぞ?
角度と距離求めるくらいで数学も糞もないやろ
>>868 嫌いは言い過ぎかもしれませんが、苦手な部類です。
まぁ一緒のような物ですかね。
確かに数学苦手ですし、頭も固いのでプログラマには向いていないのは自分でも分かっていますが、
授業として組み込まれてるし、ゲームとして動作する物を提出しないと成績に反映されないので作るしかないんです。
>>869 少なくとも俺にはそういう発想がでなかったんです。
あと、他人に任せるのはチーム製作ということと時間的余裕が無いのでという点でです。
一人で作ってて時間もあるなら自分でがんばりますけど。
プログラマはみんな数学好きなのかw 堅苦しく考えず必要になったときに勉強すればいいと思うけどな 俺はプログラム書くようになってから三角関数の面白さに気づいたよ
俺超数学嫌いだけどプログラマ面白いし まぁまぁのもの作れるよ
数学の面白さは、それを使って何かが出来た時にしか分からない。 俺も高校で行列やら微積分やら習った時、こんなもの何に使うんだよウゼーと思ったが、 大学に入ってからこれは凄いと思ったし。 円の中心からある点(x, y)までの距離は√(xの2乗+yの2乗)。// Math.sqrt(x*x+y*y) 角度はアークタンジェント(y/x)。// FastMath.atan2(x, y) 距離と角度の情報があれば、ダーツで何点のところに矢があるか簡単に分かる。 5時から6時の間かどうかを判定するなら、距離が円の半径より小さくて、yが負かつ角度が90〜120度。
プログラマ面白いって?
好きかどうかはともかく数学苦手な奴にプログラマ向いてないだろ
底辺ばっか
冷徹な自己分析乙
>>876 マップエディターで吐き出したやつとかを読み込むのならresフォルダしかない。
小規模なやつで読み込むの面倒ならソースに書いてしまえばいい。
質問のレベルからして、そんなに容量を気にする規模のものを作れるとは思えないけどな。
とりあえずソースに書くとかナンセンスすぎるわ。
Math.sqrt(int a)を使うとエラーが出ます なぜですか?
CLDCについてググれ
>>882 代入式はzip圧縮によってほぼ消えるので、同じと考えて差し支えないよ?
>>850 データの内容による。
俺ならresフォルダにバイナリファイルを置くけどな。
大きなアプリ作るなら、データ配列が32k超えるとビルドが通らなくなる問題がある よってresにバイナリを置く方が吉かと
そんな問題があったのか (゚.゚)
>>883 そのzip圧縮は、実行時にはメモリに解凍されるんだよ?
ほぼ配列要素分の代入のバイトコードが...
はい?
いやー
>>883 が「ほぼ消える」とか言うから
zipは不可逆圧縮かよw
誰か、887=890を翻訳してくれ 何をいってるのかさっぱりわからない
おそらく…おそらくだが、いや、そんなことはさすがにないとは思うが… クラスファイルとしてJavaヒープに展開した際の容量のことを問題にしているのでは? いや、まさかね iアプリでまず気にするのは、Jar時の容量だもんな。展開時の容量の話を前置きもなくする人なんてありえないわ。俺の勘違いか
cosを使うとエラーがでるんですけど意味不明です
使わない方がいいよ
エラーメッセージも書かずに俺らに何して欲しいのか、意味不明です
>>893 は意味不明だって言いたいだけで、何して欲しいだとか、自意識過剰というものです。
メガアプリだと思って調子こいてたら、容量が足りなくなってきました クラスを減らそうと思うんですけども、何個か減らすだけで効果ってのはありますか? ちなみに今クラスが40個程度あって、リソースが500kb程度あります
>>892 「容量」の話をしてるときに
「jar(あるいはスクラッチパッドに読み込むデータファイル)の容量」と
「実行時のメモリ使用量」の
どちらの話をしているのか、ということですね、わかります
流れを眺めていて、その2つが入り混じってるなとちょっと思ってました…
>>897 クラス削るよりも画像の減色した方が良くない?
もうしてあるのなら無理だけどね。
あとは、リソースじゃなくてSDから読み込むとかね。
SDなんか1GB500円で売ってる時代だから、みんな持ってるんじゃない?
俺は仕事でやってるわけじゃないから、詳しくは知らないけどw
>>899 まだ減色は試してないのでやってみます
900kbあるjarを解凍してクラスファイルのサイズを調べたら、200kb程度でした
リソースは500kbですから、あわせても700kbしかないのに…思っていたら、
中に〇〇.dbって500kbのファイルがありました
リソースフォルダ内に、フォルダを作って画像を分けた時から、急にサイズが増えてしまったので、
このdbファイルはその時に作られたのかな、と思うのですが、
これは避けられないのでしょうか?
>>900 エクスプローラが画像のサムネイル表示時に作成されるシステムファイル。
消しても問題ないファイル。
エクスプローラのオプションで作成しないを選べた気がします。
>>901-902 ありがとうございます
ということは、リソースフォルダ内でフォルダわけしてもサイズが
大きくなると言うわけではないんですよね?
>>903 ファイル名管理で、フォルダ名を含むようになる。程度しか増えないから、基本的にフォルダわけしたほうが保守しやすいね
例
image.gif が res\mainscene\image.gif のような長い名前になる
>>904 DBファイルなくしただけで500kb程度のJarになりました
まだまだ追加できそうです
ありがとうございました
dbファイルは結構罠だよな。 自分では作らないように設定してても、デザイナからもらった絵のディレクトリに紛れ込んでたりするし。
入ってたとして なんでそれをそのままresに放り込むんだよw
SVNとかで同期とってるとか?
自分も昔、 ./res/.svn/* が .jar に入ってることに気づかなくて 「よ、容量が…」と言ってた時期がありましたわん 7za に -x!.svn* を言い渡して解決しましたけど… 実は未だに、svn に res/ を無視するよう指定する方法が判らない…
>>907 「隠しファイルを表示」にしていないやつもいるだろ
いやプログラマが隠しファイルを表示設定にしないとか
表示にしてて見えるはずなのに、なんか知らんけど紛れこむことあるよ
ねーよw
どうすればiアプリで三角関数が使えますか?
>>914 テーブルで持つのが近似解。
円周を例えば256等分して、浮動小数でもいいし、ゲタ履き整数でもいいし、
それを返す関数を自分で書く。
データは1象限分あればいいんで、事前に作っておく。
もしくはマクローリン展開
プログラマの癖に縮小版キャッシュのこと知らないとかDQNも良いとこだろ。隠しファイルや拡張子のことを知らない輩とか、全く向いてねーよな ってかお前らなんでApache Antを使わねえの?.svnだって回避出来るぜ
>>918 自分が既に経験し学んだたからといって、未経験者の失敗を笑うのは阿呆のすること
自分がどうやって「縮小版キャッシュのことを知った」かを思い出せ
>>919 縮小版キャッシュなんて
失敗する以前に知ってましたが何かw
>>919 resフォルダに隠し属性のファイルをミスでぶっこむという失態を「誰もが通る道」かのごとく語るんじゃねえよ。
お、なんか香ばしい輩が出てきてるみたいですな(^ω^ )
失敗する前にたまたま知ってた俺SUGEEEEEEEEEEE!!!
「取り返しがつかない失敗を避けるため、事前に勉強しておくべき知識」ではない事象について、たまたま知ってたことを誇る意味がわからん
誰もが通る道だろ。いちいち言わないが 少なくとも新しく入った部下がその罠にハマるはずがない決め付けるほど、俺は楽観主義じゃないな
>「取り返しがつかない失敗を避けるため、事前に勉強しておくべき知識」ではない事象 甘えすぎでワロタ
こういう奴らが大雨でも中州でキャンプしちゃうんだろうな。 で救出された後も「これは事前に知っておくべき知識じゃないから」
まぁ、誰もが通る道・・・・ではないだろ。さすがにw
最近の若者だと「誰でも」率が高いような希ガス
>>929 それは「取り返しがつかない失敗を避けるために事前に勉強しておくべき知識」だろw
誰もが通るは言い過ぎだなぁ
>>927 はまる奴が混じってくるのは当たり前だよ。
それを自己解決できなかった場合に使えない奴と判断するかどうか。
>>933 正直、隠し属性のファイルを含めresフォルダに無駄なもん入れないようにするのも「取り返しがつかない失敗を避けるために事前に勉強しておくべき知識」だろw
取り返しがつかないのか?
取り返しついてるじゃん
>>900 どうも自分が知ってた知識に優位性があることにして、相手を叩きたいだけのお子様っぽいな
いきなり「これを知らないなんてDQN」とか言ってるし
こんなつまらないことでしか他人と自分を差別化しなけりゃならないほど、自分の技術力が低いのかねー・・・
関係ないがそれ言い出したら
>>926 からやり直さにゃならんなw
始めはみんな何も知らなかったわけだし、こんなこと知ったのが遅かった早かっただけの話じゃないの そもそも、ここ趣味でやってる人もいるわけだし、そんなことで目くじ立てる意味あるのかね
このスレから初心者を排除したくないから、初心者を馬鹿にするような奴を排除しようと必死なんだよ。 わかるかな?
1分で即レスとかガチ必死かよw
おまいら落ち着けって。 アイマスでもやろうぜ。
初心者叱るな来た道だもの。
>>919 隠しファイルを非表示で放置することなんて無くてな、XPにしたときから縮小版のキャッシュは無効にしてたから、そんな失敗したことない。
縮小版のキャッシュに作業邪魔されたとかはまぁ、縮小版のキャッシュの利点もあるし何とも言えないが、プログラマとしては縮小版のキャッシュの存在を知らないと言うのは無いよ。隠しファイル非表示なら向いてないし、気づかなかったなら節穴過ぎてやっぱり向いてない
>>947 おもしろいギャグですね。
ギャグですよね?
949 :
947 :2008/06/20(金) 16:57:59
>>948 それが当たり前と思っているが何か?
探求心の足りない奴に同調すんなよ。
もうほっとけ 上で最初にこれミスした奴がずっと張り付いてんだろう で、これも自演ってか
スーパープログラマーの皆さんは小さい失敗なんてしないんでしょうね すごいなー かっこいいなー あこがれちゃうなー
失敗なら誰でもあるさ。 ただ件は失敗じゃなくて、知ってるのが当たり前な知識な。
隠しファイル非表示くんが涙目で一言↓
config.sys どこー:。・゚・(ノД`)・゚・。
(#^ω^) boot.iniなんて見つからねえぞゴラァ
隠しファイルを非表示で放置していることなんてない 縮小版キャッシュなんて無効にしてる そんなのは当たり前だ 一回失敗してるからな!! ってだけなのに、なんで「俺は失敗する前から知ってたぜフフン」って主張したいのか。匿名掲示板なのに自己顕示して何したい?
>>957 俺SUGEEEEEEEEEEEEEEE!!
ってしたいだけなんでしょ。
顔真っ赤ですお( ^ω^)
妙にスレが伸びてると思ったら、なんてくだらない内容なんだww
>>957 失敗の有無の話ではなくて、隠しファイルを表示したら縮小版のキャッシュの存在なんて知れるわけで、なのに縮小版のキャッシュの存在を知らない輩が居るのがビックリなんだよ。
デザイナとか非プログラマならわかるけど、プログラマの癖に何故開発環境に興味を持てないの?ってこと。
さっきから改行少ないヤツがとんでもなく香ばしいですな(^ω^;)
隠しファイル非表示くんが涙目で一言↓
>>958 じゃあもう彼はスゴいって事で褒め称えて、この辺で手打ちにしよう。
>>961 わかった!これからは開発環境に興味を持つようにするよ!
とでも言ってほしいのか?
くだらん話題ズルズル引きずりやがって。スレタイ見やがれ。
>>966 初心者と、探求心の無いただの馬鹿を混同するなよ。
こりゃいかん、もうだめだww 早いとこ次スレ行こうぜー
どう考えても引きずってるのは隠しファイル非表示くんだろw 試しに黙ってみろよ、すぐこの話終息するからw
ここまで俺の自演
隠しファイル非表示くんて誰ですか?
>>967 探究心をもってスレタイを良く見るんだ!!
やっぱり黙ってられないんだなw そんなくやしかったのか
黙ってられずに次にこの話を出した側の負けでいいじゃん じゃ開始↓
どうやって俺が隠しファイル非表示くんって証拠だよ!
探究心を教えてくれてありがとう! タンキュー!
バーローワールド
もうどうでもいいよ・・・
失敗者を見下す人間なんて、質問スレにはいらないわ 一応ここは質問スレも兼ねてるという前提での話だが
しょうもなさすぎんねん お前ら
しょうもあるやつ登場
だいもあるやつ登場
983 :
デフォルトの名無しさん :2008/06/21(土) 08:13:14
わるそなやつとはだいたいともだち登場
sin、cosは下のような変数を使わないといけないんですか? private int[] sin = {0,37,74,111,146,179,211,240, 267,291,311,328,342,352,358, 360,358,352,342,328,311,291, 267,240,211,179,146,111,74, 37,0,-37,-74,-111,-146,-180, -211,-240,-267,-291,-311,-328, -342,-352,-358,-360,-358,-352, -342,-328,-311,-291,-267,-240, -211,-180,-146,-111,-74,-37}; private int[] cos = {360,358,352,342,328,311,291,267, 240,211,180,146,111,74,37,0,-37, -74,-111,-146,-179,-211,-240,-267, -291,-311,-328,-342,-352,-358,-360, -358,-352,-342,-328,-311,-291,-267, -240,-211,-180,-146,-111,-74,-37,0, 37,74,111,146,180,211,240,267,291, 311,328,342,352,358};
うん。 キミはそれを使うしかない。 あっという間に問題解決おめでとう。
>>984 sinとcosは位相をズラせば共有可能。
かつ、1象限分でいいって916で書いたじゃないか。
その配列が±360になってるのは、汎用を考えてる訳じゃないのかな。
>使わないといけないんですか? こういう聞き方の人(理解度・思考力)に>986の回答内容は難しいと思う。 >985はそれを皮肉ってる。
数学って大事なんだなと思った
その人はメゾット君だから、大目に見てあげてください。
>>986 ±360ってどうなん?sinとcosなら±1でしょ?
360倍の精度ったって、ここで得られるのは角度じゃないし、
360倍でとる根拠が無いから汎用性ではなく
単純に角度と混同してるとだけ思うんだけど。
常套手段的には10^n倍か2^n倍、
Graphics3Dを参考にするなら4096倍あたりが妥当じゃないかなあ?
あと第一象限のサンプリングが16って少なくね?
むしろここは汎用的に90度*nだと思うのだが
そんな、枝葉どうでもいいよ。
Mathクラスがあるのに、なんでそれを使えないんですか?
宗教的な理由で使えないんです(><)
だれかRPGツクール for mobileをうpしてくれまいか
これからプログラミングを始めようとしている初心者以前の者ですけど、ちょっと教えて下さい。 非固定IPな自宅PCにiアプリからアクセスできます? 自宅PCからiアプリをダウンロードしても、IPアドレスが変わったとたん、アクセスは不可能になりますよね。 何か解決策はあります? やっぱ固定IPなサーバを中間に入れないと無理?
ddns
>>995 プロバイダにホームページ用のスペースがあるならそこにアップできる。
なければジオシティーズでも代用可能かと。
>>996 ddnsが使えるってことは、IPアドレスは違ってもアクセスできるってことですね。
ありがとうございます。
ddnsで自鯖うごかしてるときはIPアドレスを登録するフリーツールも動かしておけば動的IPでも無問題
1000 :
デフォルトの名無しさん :2008/06/22(日) 21:08:57
1000!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。