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


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

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



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

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

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

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

588 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 15:03:16 ]
つまりJVM内のスレッドがLinux/Symbianスレッドになるわけでもないってことだろ
少なくとも今>>586が知る限り


589 名前:デフォルトの名無しさん [2010/02/24(水) 20:34:06 ]
iapplitool(star)がビルド後に落ちる件だけど、
エミュレータ環境設定→ビルドの設定→『ADFチェック処理を実行する』のチェックを外したら落ちなくなった
初期設定で落ちる仕様に驚いた

590 名前:577 mailto:sage [2010/02/24(水) 23:51:23 ]
皆さんありがとうございます。
設計の問題としたら、なんか納得できないんですよね。
どの解説サイトにも、
「iアプリのリソースは限られているので無駄は省きましょう」
と書いているのに、スレッド作るのは無駄ではないかと思います。

>>585
100ms待っている間に別のスレッドで計算をしておくと
いうことでしょうか?
そういう使い方ならば、たしかにメリットがありますね。
でもそれほど重い処理でないならば、100ms待ってから
順次計算してもいいんじゃないかと思うのですが。

>>586
つまり移植性を考えなければ、スレッドを作らなくてもいいと
いうわけですね。

591 名前:デフォルトの名無しさん [2010/02/25(木) 01:04:32 ]
だれかWin7 64bitでiAppliToolkit(DoJa)を入れて使ってるやついない?
インストールはできるけど起動できない。

592 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 11:37:42 ]
>>590
サンプルソースは設計よりも実装(設計の為の部品)を見せたいのだと思います
たとえば、内部では重い処理を実行中であっても、画面表示の更新は行いたい
という場合には、スレッドを作るという方法があるという事を知っておくのは
有用ではあっても決して無駄ではありませんし、おそらくスレッドを利用しない
他の方法よりも簡単に設計・実装が出来ると思います

というわけで、スレッドを利用するしないは設計の問題なので、
実装を見せる為に書かれたサンプルについて、設計をどうこういうのは
的外れな話だと思います

593 名前:586 mailto:sage [2010/02/25(木) 12:55:52 ]
うーん。俺が勘違いしてるだけなのか?
多分>>577はスレッドの有用性云々を問いたいのではないと思うのだけど。

スレッドA: システムが使用するスレッド(processEventやIApplicationのコンストラクタ等)
スレッドB: IApplication#start() が呼び出されるスレッド

とした時に、
1. スレッドBでゲームループを作成する
2. 自前でスレッドCを構築して、そっちにゲームループを作成する

の、2のケースが分からないと言ってるんじゃないの?

で、俺の解はCを作るのは無駄、無くて良い。
別に並列処理を否定するつもりはない。


594 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 13:53:45 ]
>>593

>>577は「スレッドを作るメリットは?」という疑問
>>590は「スレッドを作るのは無駄だ」という意見
として読んだので、メリットも無駄も設計次第と言うしかないです

並列処理を否定しないという事は、
「自前でスレッドCを構築して、そっちにゲームループを作成する」
のが無駄になるかどうかは、結局設計の問題ですよね?

595 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 14:57:30 ]
設計は同じ前提の比較なんだよ。
このソース見てから577読むと納得出来ないかなぁ。
イヤ勘違いなら申し訳ないけど。

1. の場合のソース
class MyApp extends IApplication {
  public void start() { // ←スレッドB
    MyCanvas canvas = new MyCanvas();
    canvas.run();
  }
}
class MyCanvas extends Canvas {
  public void run() {
    while() { /* ゲームループ */ }
  }
}
2. の場合のソース
public class MyApp extends IApplication {
  public void start() { // ←スレッドB
    MyCanvas canvas = new MyCanvas();
    Thread thread = new Thread( canvas ); // ←スレッドC
    thread.start();
  }
}
class MyCanvas extends Canvas implements Runnable {
  public void run() {
    while() { /* ゲームループ */ }
  }
}


596 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 20:42:22 ]
ネットランキング対応したいのですが、
やり方の入門サイトありませんでしょうか。
借りてるサーバーはphp、DB使えます。



597 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 20:51:12 ]
端末固有情報をキーにしてSQLITEで適当なテーブルのキーにすればいい。

598 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 20:55:18 ]
>>595
その両者は外部仕様が同じだとしても、同じ設計ではありません
また、そのコードのようにそれだけで完結出来るなら、MyCanvasクラスを
スレッド化するのは無駄でしょうし、設計にも問題があるかも知れません

577が見た入門サイトに書かれている説明やサンプルの展開が
どういうものかはわからないので、スレッドを起こすのは無駄とは
一概に言えませんよという話です

599 名前:577 mailto:sage [2010/02/25(木) 21:17:03 ]
>>595
俺が言ってたのはまさしくそれです。
1の作り方を解説した後、2に書き換える入門サイトが多いんです。
でも2に書き換える理由はまったく説明してくれない・・・。
どうせなら、スレッドを使う意味まで解説してくれればいいのに。
自分で作ってみたゲームではwhileループを使っています。
インベーダータイプのゲームなので特に問題ありません。
901でもサクサク動いてますw

600 名前:392 mailto:sage [2010/02/27(土) 08:48:14 ]
1だとループ抜けるまでstart()が返んないから本当はダメなんじゃないかと思う。
リファレンスには特に書いてないから、本当のとこはわからないけど。
DoJaのJVMはメーカーごとに実装が違う部分があるから、
IApplication#start()がすぐに返ってくることを期待している実装のメーカーがあると問題になるかもね。

601 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 08:59:06 ]
JVMはどっか一箇所で作って各自移植すればいいのに…

602 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 09:08:02 ]
start() の中で回しても動くけど、それは偶然そういう実装になってたからって話かね。
別キャリアの奴とかだとイベントはできるだけ早く処理して抜けろとかあるし。

603 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 18:49:03 ]
>>602

DoJaはその辺実装依存とかあるかもね。
Star の StarApplication#started() はこれが終わらないと
サスペンド後の復帰のコールバックかからないようなこと
かいてありました。




604 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 01:27:18 ]
>>601
一言余計だ

605 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 18:47:15 ]
よく言われます

606 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 21:37:22 ]
903あたりから全部アクセスが作ってると思い込んでおりました。



607 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 08:48:27 ]
アクセスとかアプリックスとかがARM用を作ってるのか
おまいらそんなにAが好きか

608 名前:デフォルトの名無しさん mailto:age [2010/03/02(火) 20:58:56 ]
復帰あげ

609 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 07:13:52 ]
復帰?

610 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 11:03:10 ]
>>607
>おまいらそんなにAが好きか

悪くはないんだけどね
どうせならCの方が良いかな


611 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 11:31:19 ]
おっぱいの曲線を表現するためのスプライン曲線を描く方法を教えてくれ。

612 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 11:58:45 ]
コントロールポインツは一番直線に近いところにおくんだ

613 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 18:31:55 ]
park12.wakwak.com/~shp/cgi-bin/wiki.cgi/view/bezier_curve

614 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 21:58:19 ]
質問です!
ImageReferenceは積極的に使った方がいいですか?

615 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:09:06 ]
>>611
実物見たこともないのに表現できるわけねーだろ。
まずは実践だな。
でも40歳以上の実物は参考にならないぞ。
垂れちゃってるからね。

おっぱいタプタプを表現したいなら、内側から水圧かけてやればいい。
あとは重力にまかせてぷるぷるっとな。
iアプリできたら公開してくれよ!

616 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 20:22:55 ]
Starって本当に複雑ですよね




617 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 21:26:53 ]
じぇーえーぶいえーって本当に複雑ですよね

618 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:12:19 ]
Starはなんであんなのにしたんだ?
もっと変えるのかと思ってた。

619 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:40:24 ]
アプリを自分のサイトで公開している人、ダウンロード数のカウントは
どうやってんの?
携帯でダウンロードするとき、cgiをかましカウントアップして、
jamの中身を送りこもうとしたんだが、うまくいかなかった。

ダウンロードページのOBJECT部分:
<OBJECT declare id="Test"
 data="count.cgi"
 type="application/x-jam">
</OBJECT>

cgiのjam吐き出し部分:
$file_jam = '';
open(FH, "Test.jam");
while (<FH>) { $file_jam .= $_; }
close(FH);
print "Content-type: application/x-jam\n\n";
print "$file_jam";

同じことやってる人がいたら、カウント方法教えてください。

620 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:50:58 ]
とりあえず、Content-Lengthを出力してみるんだ。

621 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 01:57:44 ]
>>620
できたよ!
ありがとう。
docomoはContent-Length必須なのか。
知らんかった。

cgiのjam吐き出し部分:
print "Content-type: application/x-jam\n";
print "Content-Length: " . length($file_jam) . "\n\n";
print "$file_jam";

622 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 10:37:20 ]
>>618
本当、Starは無意味だよね
新機能なんてほとんどないし、将来に向けて拡張性を・・・という構造にもなってない

もうiアプリ自体やる気なくしているんだろうけど・・・


623 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 19:21:56 ]
>>622
お前何様だよ。携帯はちゃんと売れてるっちゅうの!

624 名前:デフォルトの名無しさん [2010/03/08(月) 00:44:26 ]
>>622
Star携帯所有者に失礼では?

625 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 00:50:32 ]
別にオマケで付いてきた使わない機能けなされても
失礼だとは思わんだろ。

626 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 00:56:56 ]
せめてMIDP互換にしてくれたら…

そうするとau/sb対応のソフトも増えてキャリアが儲かっちゃうから、わざとやらなかったのだろうけど
docomoのDoJaとStar、au/sbのMIDP、auのBREW、iphoneのObjective-C、WMのC#CompactにAndroidが加わっていよいよカオスな時代に



627 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 01:17:48 ]
どこが勝つんだろうね。
docomoのシェアはまだ50%弱あるから、簡単にiアプリなくならないんだろうけど。

628 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 03:21:16 ]
>>626
お前Objective-Cが何なのか分かってないだろ

629 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 11:30:25 ]
MIDP-2:0/CLDC-1.1で作って自動変換すればいいんじゃね
特にパワーもRAMもROMも余ってるiPhoneとかWMは


630 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 11:37:57 ]
自動変換するにゃマルチメディアファイルの非互換がでかいよなあ。
iアプリじゃいまだにMIDIもWavもPNGも使えん。

631 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 12:29:04 ]
Androidなんだろうねぇ、結局は
AU/DoCoMoも端末出してきて、MIDPが直接動かせるソフトまで開発されてるし・・・


632 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:05:25 ]
OperaがMIDPの互換レイヤだか作ったのを宣伝してたな
ただ海外機のVMは余裕がありそうだから参考にはならないか

633 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:39:32 ]
結局は過去の国産PCのような流れになるのかね。

PC−9801系やシャープのX68系のPCは衰退し、IBM−PCが
世界を席巻し、MACがちょっと残る。みたいなw

634 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:54:25 ]
>>630
FOMA端末のiアプリでは、楽曲についてはMIDIが標準だよ


635 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 17:20:56 ]
>>629
何を何に自動変換すんの?教えて

636 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 17:48:59 ]
>>633
こんな感じ?

docomo PC-9801
au FM-TOWNS
softbank X68000
iPhone Mac(そのまま)
Android 一人勝ち



637 名前:デフォルトの名無しさん [2010/03/08(月) 19:48:45 ]
あわれな非国民どもよ・・・

638 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 20:13:34 ]
通信会社と携帯電話製造会社を比較するのはおかしいですお

639 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 20:26:14 ]
>>635
Starで動くMIDPのVM作んの

640 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:48:48 ]
>>639
聞いて損した

641 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:08:11 ]
誰か携帯でEXIF情報を操作するiアプリを作ってくれ
位置情報を画像に埋め込むなんてシャレにならん、人権侵害だ!

642 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:11:25 ]
ここは作ってくれスレではない

643 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:27:42 ]
DoCoMo携帯で位置情報を勝手に付加する端末あるの?
Nは常に操作しないとつかなかったけど。

644 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:50:44 ]
Rはかってに付けるよ!
MOAPじゃないけどね :P

645 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 21:26:37 ]
Rってどこだ?

646 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:02:31 ]
RIMってRじゃねと思ったんだけど
まさか省略名ないのか



647 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:41:41 ]
Blackberryはiモード機じゃないだろうjk

648 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 11:03:50 ]
ContentsDownloaderとか面白そうじゃん
>すたあ

649 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:02:27 ]
>>639
結局互換性のあるAPIが存在すると限らないところがネック
ソースでの互換性ならとっくにみんなやってるだろうし、結局は「あれにはあって、これにはないAPI」が全て悪い

650 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:13:17 ]
てめーHartware T&Lさんディスってんのか

651 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:09:40 ]
Hartwareつーとドイツの会社だな。
で、そこがどうしたって?

652 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 20:21:15 ]
orz

s/t/d/

653 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:29:36 ]
この板のベテラン陣に、少々お知恵をお借りしたいと思います。

DoJa-5.0環境でiアプリを作成しているのですが、
com.nttdocomo.uiパッケージのImageクラスを拡張したいのです。
具体的には、

public class ImageEx extends Image {
  private int left;
  private int top;
  //以下に実装が必要な抽象メソッドと、left,topのGetter/Setter
}

これだと、createImage()でインスタンス化するとき問題が・・・。

ImageEx imageex1 = (ImageEx) Image.createImage(100,100);
強引にキャストしても、当然ClassCastExceptionが出るし、

ImageExにcreateImage()メソッドをオーバーライドしようとしても、
Image.createImageがstatic属性を持つため、上手くオーバーライドできません。

単純に、Imageクラスを継承してleft,topメンバを追加したいだけなんですが・・・。
何かいい手はありませんか?

654 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:51:20 ]
ImageEx imageex1 = (ImageEx) Image.createImage(100,100);

が、

ImageEx imageex1 = ImageEx.createImage(100,100);

じゃね?

655 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:06:43 ]
ImageExのインスタンスを取得する方法がない気がする。
オプションAPIのTransparentImageの作りを参考にしては?

656 名前:653 mailto:sage [2010/03/13(土) 23:10:42 ]
>>654
こちら、eclipse3.1環境で構築しています。
eclipse上で、そのように修正して、ソースを保存すると、赤い×が・・・。
「型の不一致:ImageからImageExには変換できません。」とのことです。
難しいっすね・・・



657 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:22:44 ]
>>655
なるほど、

public class ImageEx extends Image {
  private int left;
  private int top;
  public static ImageEx createImage(Image image1) {
    // 中のコードはこれから考えます
  }
  //以下に実装が必要な抽象メソッドと、left/topのGetter/Setter
}

ですか。
そう言えば、オーバーライドは同じ引数を使ってはいけないんでした・・・。(赤面)
ちょっとがんばってみます。他にアイデアのある方、引き続き援護ヨロ。

658 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:29:01 ]
あ、全く考えなくレスしてたわ・・・

ImageEx imageex1 = new ImageEx();
imageex1.createImage(100,100);

でダメかな?

659 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:33:40 ]
うん、酔ってるわ・・・658は無視して下さいwww

簡単に作るなら、ImageExクラス内にImageインスタンスを保持するメンバを持ってやるだけじゃだめかな。

660 名前:653 mailto:sage [2010/03/14(日) 00:06:24 ]
>>659
public class ImageEx { //←(注意)extends Imageしてない。
  private int left;
  private int top;
  private Image image;
  //以下にleft/top/imageのGetter/Setter
}

ですね。実は、現時点ではこの実装で、動作できるアプリを作っているんです。
(とにかく動いてほしいから)
現在はこの方法で、とりあえず解決しているのですが、例えば

ImageEx imageEx1 = new ImageEx();
imageEx1.image = Image.createImage(100,100);
imageEx1.setLeft(20);
imageEx1.setTop(30);

でインスタンスを生成したとき、

left(やtop)は、このように参照できますが、
System.out.println(imageEx1.getLeft());

width(やheight)はこんな感じになります。
System.out.println(imageEx1.getImage().getWidth());

そのアプリでは、座標関係とイメージデータを頻繁に参照するため、
「Object直下の、Imageクラスのメンバを持つ通常クラス」より、
「Imageクラスを継承した拡張クラス」方が、
設計や実装が、かなり単純化できそうなのです。

海外の技術サイトでも、この方法しか紹介されていなかったのです。やっぱり無理なのかな〜

661 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:14:42 ]
といってもたいした手間じゃねーだろ。

662 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:51:50 ]
>>661
うん、「手間」は、ね・・・。おっしゃる通りだと思います。

なんていうか、上手くは言えないけれど、
「left,top,width,heightを、同じレベルのメンバとして参照したい」だけです。
いずれも同じ「座標」を扱うメンバなので。

Canvasにrepaintするたび、表示位置を頻繁に変化させるため、
座標位置を変更するコードが多く登場するのですが、
widthとheightのみ、getImage()の下にぶら下がっているのは、
ソースを俯瞰したとき、かなり奇妙に見えるんですヨ。

何か、目から鱗が落ちるような、非常に美しい解法があったらいいな〜、ってね。

663 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 01:00:17 ]
おまえのこだわりなんてクソ食らえだ

664 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 01:19:16 ]
          ,,,      ,,,,,,      : .と お. し 座. 自 オ
       _ = ~~ ``ヽ _,=''~´  ´~ヽ    : は こ よ 標. 分. ブ
    _= ~               ヽ  : 思 が う  を  を. ジ
    ~=、    ミゞ、  , -彡     ヽ. : わ ま な. 指 表  ェ
       ~=、、、Cl~evj <e~}6)_   、、、ミ : ん し ん. 定 示  ク
        ミ.~~ /', ゚ ;'7   ミ7ヾ~- 、  : か い て  . す  ト
       ≡   (','゚, '.人  ゝ |  ヽ  : ね          る  が
        `=  `ー'   iノ'  | / |
         ~ーノノノノノ'′

665 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 02:01:15 ]
んじゃ、ImageExクラス内に

public int getWidth()
{
return getImage().getWidth();
}

としてやれば?

666 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 09:35:12 ]
うっとうしいなら普通はそうするよな…。
あとから包含から継承に修正しても呼び出し側に変更いらねーしい。



667 名前:653 mailto:sage [2010/03/14(日) 19:17:11 ]
>>665
なるほど、Getter/Setterをカプセル化してそのまま渡する手があったか・・・!
流石です!さっそく試してみよう!
一旦、質問の方は収束させていただきます。
相談に乗っていただいた皆様、ありがとうございました!

668 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:28:35 ]
>>666
お前の存在の方がうっとうしい・・・
もうここに来ないでくれ!

669 名前:デフォルトの名無しさん [2010/03/18(木) 14:39:32 ]
doja4.1です。
start()から、他のファイルのstaticメソッドを使う方法はないでしょうか。
start()で別のファイルにあるCanvasを継承したクラスをsetCurrentし、
そのクラス(Canvas)をいろんなファイル、クラスから使いたいです。


670 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:03:36 ]
現在iアプリでゲーム開発したいと思ってる方いたら
何か作りませんか?(ACT or STG)
SLGでも問題はありませんが、内容は全く決めてません・・・

671 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:07:58 ]
>>669
やりたい事と質問内容、何か間違ってない?
Javaのアクセス権とか基本的な部分勉強した方が良いと思うよ。

public staticであれば何処からでも呼べる。


672 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:09:33 ]
>>669
話の内容から推測すると、あなたが他の「ファイル」と呼んでいるものは
おそらくクラスのことだと思いますが、もしそうであればまず、それを
他の「ファイル」と呼ぶのはやめましょう
それはオブジェクト指向の学習や理解を大きく阻害するかも知れません

それから、質問したい事が分かりにくいです
他クラスのstaticメソッドを使いたいという質問であれば、javaの文法に従って
そのメソッドを呼び出せばよいです (ex. ClassName.methodName(); )
Canvasを継承したクラスのインスタンスを操作したいという質問であれば、
操作する側のインスタンスに、Canvasを継承したクラスのインスタンスを
渡せばよいです

この情報でお客様の問題は解決しましたか?

673 名前:669 mailto:sage [2010/03/18(木) 15:17:38 ]
小難しい小言をいう人はウザいので、レスしなくていいです。

674 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:17:44 ]
小難しい小言をいう人はウザいので、レスしなくていいです。

675 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:20:39 ]
そうですか、残念です

676 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:24:32 ]
>>673
うはwダメだこいつ。
腐ってやがる。

>>672
長い文章書くなら、句読点はちゃんと使ったほうがいいよ。
句点のない文章はとんでもなく読みにくい。



677 名前:672 mailto:sage [2010/03/18(木) 15:30:28 ]
>>676
そうですね、私もそう思いました。
句点はともかく、読点は難しいです。

678 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:33:42 ]
ヒント: 673≠669

679 名前:669 ◆c26blx92bE mailto:sage [2010/03/18(木) 16:12:37 ]
ありがとうございます。分かりにくくてすいません。

始めはstart()のあるクラスStartClassに
Canvasを継承したクラスGameCanvas(インスタンス名はgc)を作っていて、
start()でnewし、setCurrentしていたんですけど、
gc.getGraphics()等をいろんなクラスから使いたいと思いました。

gcはゲームで共通に使うひとつの物ですが、
StartClassにある以上、他のクラスからではアクセスできないので、
staticを使ってみようと思いました。
使いたい度にnewするとgcがどんどん増えていくと思ったのですが、
gc変数だけstaticにし、メソッドはpublicにする手とかあるかもしれません。

>>671
同じく「static 参照することはできません。」と出てしまいます。
たぶん、別の所に間違いがあると思うので探して見ます。

>>672
ファイルというのが非指向的というのは考えませんでした。
C、C++とかと結構違いますしね。
プロトタイプ宣言が無かったり、デストラクタのタイミングがオートだったり。

680 名前:672 mailto:sage [2010/03/18(木) 16:52:59 ]
>>679
ファイルという表現が非指向的だという話ではなく、まず、クラスなり
インスタンスなりを念頭に置いて考えないと、
「あのファイルに宣言したアレはどうやったらアクセスできるんだ?」
という、変な疑問に悩まされる事になるかも知れませんという話です。
といっても、これは手続き型言語に習熟した人が陥りやすいようです。

javaでは、C/C++のようにどこからでも操作出来るグローバル変数(?)
のようなものは、単純には作れないようになっています。
デザインパターンについて学習する事をお勧めしますが、それはさておき
とりあえずそういうオブジェクトが必要なんだ、という事であれば、
シングルトンという手法でなんとか実装出来るのではないでしょうか。
見当違いな回答をしていたらすみません。

やはり読点は難しいです。。。

681 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:22:46 ]
>>679
横から失礼します。

static等の根本的な意味を理解していないようなので、JAVA メンバ変数等で検索してから
実際にサンプルや例を見つつコーディングし、覚えるのが良いと思いますよ。

682 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 19:08:29 ]
>>679
意味わからんよw
普通は逆で、Canvas継承クラスから他のクラスを使う。
必要があれば引数としてCanvas継承クラスのオブジェクトを渡してやればいい。

たぶんあなたはオブジェクト指向を理解してないと思う。
プログラミングの前に、オブジェクト指向の概念を学ぶべき。
これなんかいいんじゃないの。
5分でオブジェクト指向が分かるらしい。

www.atmarkit.co.jp/im/carc/special/fiveoo/00.html

683 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 19:38:32 ]
>>670
いいですね、こっちでやるといいかも

iアプリ共同製作支援スレ その1
pc12.2ch.net/test/read.cgi/tech/1165049332/l50

684 名前:670 mailto:sage [2010/03/18(木) 20:05:18 ]
>>683
案内ありがとうございます(_ _

iアプリ共同製作支援スレの方に書かせていただきます^^

685 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 20:22:49 ]
>>676
ばーか
おまえレス禁

686 名前:670 mailto:sage [2010/03/18(木) 20:29:29 ]
初歩的な質問なのかもしれませんがよろしければお願いします。

DoJaには、Imageを回転させるメソッド等は無いのでしょうか?
90度、180度などはあるのですが、少しずつ回転(1度間隔)できればと思っています。

現在は、ImageをSpriteで生成し、描画させ回転をしていますが皆さんはどのように
処理をしているのでしょうか?

よろしくお願いします(_ _



687 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 20:57:45 ]
描画するときにアフィン変換できたような

688 名前:670 mailto:sage [2010/03/18(木) 21:17:13 ]
>>687
なるほど・・・
Graphics.drawImage(drawImage(Image image, int[] matrix)
としてありました。

試してみたところ無事こちらの方でも回転いたしました(_ _

ありがとうございます。

皆さんもやはり、この方法でやるのがメジャーなんでしょうね・・・






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

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

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