iモード携帯電話用Java(iアプリ) Part20
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/09/21(月) 20:36:33Doja、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/
0655デフォルトの名無しさん
2010/03/13(土) 23:06:43オプションAPIのTransparentImageの作りを参考にしては?
0656653
2010/03/13(土) 23:10:42こちら、eclipse3.1環境で構築しています。
eclipse上で、そのように修正して、ソースを保存すると、赤い×が・・・。
「型の不一致:ImageからImageExには変換できません。」とのことです。
難しいっすね・・・
0657デフォルトの名無しさん
2010/03/13(土) 23:22:44なるほど、
public class ImageEx extends Image {
private int left;
private int top;
public static ImageEx createImage(Image image1) {
// 中のコードはこれから考えます
}
//以下に実装が必要な抽象メソッドと、left/topのGetter/Setter
}
ですか。
そう言えば、オーバーライドは同じ引数を使ってはいけないんでした・・・。(赤面)
ちょっとがんばってみます。他にアイデアのある方、引き続き援護ヨロ。
0658デフォルトの名無しさん
2010/03/13(土) 23:29:01ImageEx imageex1 = new ImageEx();
imageex1.createImage(100,100);
でダメかな?
0659デフォルトの名無しさん
2010/03/13(土) 23:33:40簡単に作るなら、ImageExクラス内にImageインスタンスを保持するメンバを持ってやるだけじゃだめかな。
0660653
2010/03/14(日) 00:06:24public 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クラスを継承した拡張クラス」方が、
設計や実装が、かなり単純化できそうなのです。
海外の技術サイトでも、この方法しか紹介されていなかったのです。やっぱり無理なのかな〜
0661デフォルトの名無しさん
2010/03/14(日) 00:14:420662デフォルトの名無しさん
2010/03/14(日) 00:51:50うん、「手間」は、ね・・・。おっしゃる通りだと思います。
なんていうか、上手くは言えないけれど、
「left,top,width,heightを、同じレベルのメンバとして参照したい」だけです。
いずれも同じ「座標」を扱うメンバなので。
Canvasにrepaintするたび、表示位置を頻繁に変化させるため、
座標位置を変更するコードが多く登場するのですが、
widthとheightのみ、getImage()の下にぶら下がっているのは、
ソースを俯瞰したとき、かなり奇妙に見えるんですヨ。
何か、目から鱗が落ちるような、非常に美しい解法があったらいいな〜、ってね。
0663デフォルトの名無しさん
2010/03/14(日) 01:00:170664デフォルトの名無しさん
2010/03/14(日) 01:19:16_ = ~~ ``ヽ _,=''~´ ´~ヽ : は こ よ 標. 分. ブ
_= ~ ヽ : 思 が う を を. ジ
~=、 ミゞ、 , -彡 ヽ. : わ ま な. 指 表 ェ
~=、、、Cl~evj <e~}6)_ 、、、ミ : ん し ん. 定 示 ク
ミ.~~ /', ゚ ;'7 ミ7ヾ~- 、 : か い て . す ト
≡ (','゚, '.人 ゝ | ヽ : ね る が
`= `ー' iノ' | / |
~ーノノノノノ'′
0665デフォルトの名無しさん
2010/03/14(日) 02:01:15public int getWidth()
{
return getImage().getWidth();
}
としてやれば?
0666デフォルトの名無しさん
2010/03/14(日) 09:35:12あとから包含から継承に修正しても呼び出し側に変更いらねーしい。
0667653
2010/03/14(日) 19:17:11なるほど、Getter/Setterをカプセル化してそのまま渡する手があったか・・・!
流石です!さっそく試してみよう!
一旦、質問の方は収束させていただきます。
相談に乗っていただいた皆様、ありがとうございました!
0668デフォルトの名無しさん
2010/03/17(水) 12:28:35お前の存在の方がうっとうしい・・・
もうここに来ないでくれ!
0669デフォルトの名無しさん
2010/03/18(木) 14:39:32start()から、他のファイルのstaticメソッドを使う方法はないでしょうか。
start()で別のファイルにあるCanvasを継承したクラスをsetCurrentし、
そのクラス(Canvas)をいろんなファイル、クラスから使いたいです。
0670デフォルトの名無しさん
2010/03/18(木) 15:03:36何か作りませんか?(ACT or STG)
SLGでも問題はありませんが、内容は全く決めてません・・・
0671デフォルトの名無しさん
2010/03/18(木) 15:07:58やりたい事と質問内容、何か間違ってない?
Javaのアクセス権とか基本的な部分勉強した方が良いと思うよ。
public staticであれば何処からでも呼べる。
0672デフォルトの名無しさん
2010/03/18(木) 15:09:33話の内容から推測すると、あなたが他の「ファイル」と呼んでいるものは
おそらくクラスのことだと思いますが、もしそうであればまず、それを
他の「ファイル」と呼ぶのはやめましょう
それはオブジェクト指向の学習や理解を大きく阻害するかも知れません
それから、質問したい事が分かりにくいです
他クラスのstaticメソッドを使いたいという質問であれば、javaの文法に従って
そのメソッドを呼び出せばよいです (ex. ClassName.methodName(); )
Canvasを継承したクラスのインスタンスを操作したいという質問であれば、
操作する側のインスタンスに、Canvasを継承したクラスのインスタンスを
渡せばよいです
この情報でお客様の問題は解決しましたか?
0673669
2010/03/18(木) 15:17:380674デフォルトの名無しさん
2010/03/18(木) 15:17:440675デフォルトの名無しさん
2010/03/18(木) 15:20:390676デフォルトの名無しさん
2010/03/18(木) 15:24:32うはwダメだこいつ。
腐ってやがる。
>>672
長い文章書くなら、句読点はちゃんと使ったほうがいいよ。
句点のない文章はとんでもなく読みにくい。
0678デフォルトの名無しさん
2010/03/18(木) 15:33:420679669 ◆c26blx92bE
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++とかと結構違いますしね。
プロトタイプ宣言が無かったり、デストラクタのタイミングがオートだったり。
0680672
2010/03/18(木) 16:52:59ファイルという表現が非指向的だという話ではなく、まず、クラスなり
インスタンスなりを念頭に置いて考えないと、
「あのファイルに宣言したアレはどうやったらアクセスできるんだ?」
という、変な疑問に悩まされる事になるかも知れませんという話です。
といっても、これは手続き型言語に習熟した人が陥りやすいようです。
javaでは、C/C++のようにどこからでも操作出来るグローバル変数(?)
のようなものは、単純には作れないようになっています。
デザインパターンについて学習する事をお勧めしますが、それはさておき
とりあえずそういうオブジェクトが必要なんだ、という事であれば、
シングルトンという手法でなんとか実装出来るのではないでしょうか。
見当違いな回答をしていたらすみません。
やはり読点は難しいです。。。
0681デフォルトの名無しさん
2010/03/18(木) 17:22:46横から失礼します。
static等の根本的な意味を理解していないようなので、JAVA メンバ変数等で検索してから
実際にサンプルや例を見つつコーディングし、覚えるのが良いと思いますよ。
0682デフォルトの名無しさん
2010/03/18(木) 19:08:29意味わからんよw
普通は逆で、Canvas継承クラスから他のクラスを使う。
必要があれば引数としてCanvas継承クラスのオブジェクトを渡してやればいい。
たぶんあなたはオブジェクト指向を理解してないと思う。
プログラミングの前に、オブジェクト指向の概念を学ぶべき。
これなんかいいんじゃないの。
5分でオブジェクト指向が分かるらしい。
http://www.atmarkit.co.jp/im/carc/special/fiveoo/00.html
0683デフォルトの名無しさん
2010/03/18(木) 19:38:32いいですね、こっちでやるといいかも
iアプリ共同製作支援スレ その1
http://pc12.2ch.net/test/read.cgi/tech/1165049332/l50
0685デフォルトの名無しさん
2010/03/18(木) 20:22:49ばーか
おまえレス禁
0686670
2010/03/18(木) 20:29:29DoJaには、Imageを回転させるメソッド等は無いのでしょうか?
90度、180度などはあるのですが、少しずつ回転(1度間隔)できればと思っています。
現在は、ImageをSpriteで生成し、描画させ回転をしていますが皆さんはどのように
処理をしているのでしょうか?
よろしくお願いします(_ _
0687デフォルトの名無しさん
2010/03/18(木) 20:57:450688670
2010/03/18(木) 21:17:13なるほど・・・
Graphics.drawImage(drawImage(Image image, int[] matrix)
としてありました。
試してみたところ無事こちらの方でも回転いたしました(_ _
ありがとうございます。
皆さんもやはり、この方法でやるのがメジャーなんでしょうね・・・
0689デフォルトの名無しさん
2010/03/18(木) 22:06:14描画するときにアフィン変換・・・
初めて俺が人の役に立ってお礼言われちゃったよ
悪い気分ではないな
0690670
2010/03/18(木) 23:10:46大変助かりました(_ _
一応3次元アフィン変換がなかったようなので作ってみましたが・・・
iアプリで3次元と言ってもどんなゲームができるのかが
あまり想像できませんでした><;
0691デフォルトの名無しさん
2010/03/20(土) 15:16:290692デフォルトの名無しさん
2010/03/20(土) 17:25:510693デフォルトの名無しさん
2010/03/20(土) 17:34:16まぁ説明されれば分かるだろうけど。
0694デフォルトの名無しさん
2010/03/20(土) 18:32:240695デフォルトの名無しさん
2010/03/20(土) 20:57:270696デフォルトの名無しさん
2010/03/20(土) 21:37:39ほほう…猫がねえ…猫が。
0697デフォルトの名無しさん
2010/03/20(土) 22:00:43ミ ・ ・ ミ
( ° )〜
0698デフォルトの名無しさん
2010/03/21(日) 07:53:32ttp://img.club.pchome.net/upload/club/other/2008/8/19/pics_bbmimi_1219159728.jpg
0699デフォルトの名無しさん
2010/03/21(日) 09:46:170700デフォルトの名無しさん
2010/03/21(日) 10:08:59無茶苦茶欲しいです。ぜひ!
0701デフォルトの名無しさん
2010/03/21(日) 10:10:470702デフォルトの名無しさん
2010/03/21(日) 11:00:240703デフォルトの名無しさん
2010/03/21(日) 11:02:18/゙ミヽ、,,___,,/゙ヽ
i ノ 川 `ヽ'
/ ` ・ . ・ i、
彡, ミ(_,人_)彡ミ この道はきびしいぞ
∩, / ヽ、, ノ
丶ニ| '"''''''''"´ ノ
∪⌒∪" ̄ ̄∪
0704デフォルトの名無しさん
2010/03/21(日) 11:32:40String#splitとか
0705デフォルトの名無しさん
2010/03/21(日) 11:37:180706デフォルトの名無しさん
2010/03/21(日) 12:13:37iアプリ用正規表現ライブラリ
http://moondial0.net/softwere/regexp_in_iappli.html
0707デフォルトの名無しさん
2010/03/21(日) 12:31:01いただきました。
これで色々楽になりそう。ありがとう!
0708デフォルトの名無しさん
2010/03/21(日) 13:25:130709デフォルトの名無しさん
2010/03/21(日) 14:28:22いただきましたー
ありがとうございますー
0710デフォルトの名無しさん
2010/03/21(日) 15:47:43とりあえず使わせてもらいます。
0711デフォルトの名無しさん
2010/03/21(日) 15:56:43やるな高校生!
おじさんの会社に入ってみないかい?
グレイ会社だけど給料いいよ。
0712デフォルトの名無しさん
2010/03/21(日) 18:46:07SEになる気は無いので丁重にお断り致しますw
0713デフォルトの名無しさん
2010/03/21(日) 18:54:550714デフォルトの名無しさん
2010/03/21(日) 19:44:45日付や日時を加工する時に使わない?
0715デフォルトの名無しさん
2010/03/21(日) 21:21:310716デフォルトの名無しさん
2010/03/21(日) 21:24:440717デフォルトの名無しさん
2010/03/21(日) 21:38:09これこそ自己満足のライブラリ・・・
0718デフォルトの名無しさん
2010/03/21(日) 21:58:43iアプリだけじゃなく、そもそも携帯が絶対必要ってもんでもないしな。
必要あるなしに関わらず、興味があればやってみりゃいい。
0719デフォルトの名無しさん
2010/03/21(日) 23:48:13ライブラリにすると必要のない処理も含まれてサイズ食うんだし、
たいした処理じゃないんなら、必要な処理だけを自作したほうがよい。
0720デフォルトの名無しさん
2010/03/22(月) 01:19:22オートマトン理解しないといけない
必要なだけと言うならsprintfもどきにしておけ
0721デフォルトの名無しさん
2010/03/22(月) 09:43:37必要性の高いものの処理をまとめた物で
splitぐらいならライブラリにする必要性は皆無。
iアプリでだと無駄な処理を追加して容量を圧迫させるのは
ただの邪魔なだけ。
>>718は何を考えてiアプリ自体が意味ないと言ってるんだ?
>興味があればやってみりゃいい
間違っては無いが公開するものでもないだろと・・・
0722デフォルトの名無しさん
2010/03/22(月) 10:11:45日常生活上必ずしも必要ないう事だろ
携帯電話もしかり
0723デフォルトの名無しさん
2010/03/22(月) 10:27:260724デフォルトの名無しさん
2010/03/22(月) 10:28:17じゃぁこのスレを見なければいいだけ。
必要ないといいつつ書き込むなんて・・・かまってちゃんか。
0725デフォルトの名無しさん
2010/03/22(月) 10:35:42お前の日本語読解力の無さを指摘しただけなのに、「このスレを見なければいい」
とか関係の無い話にすり替えて人格攻撃に走るお前の程度の低さは何とかならんか
ちなみに俺は718じゃないぞ
0726デフォルトの名無しさん
2010/03/22(月) 11:00:33CPANにも使いどころの無いライブラリはたくさんあるし
0727デフォルトの名無しさん
2010/03/22(月) 11:04:370728デフォルトの名無しさん
2010/03/22(月) 11:11:36でも150k以上は容認できないな、個人的に
0729デフォルトの名無しさん
2010/03/22(月) 11:40:57サイズとか特に気にしなくていいんじゃねーの
0730デフォルトの名無しさん
2010/03/22(月) 12:50:19サーバ側でパースすれば済む話だと思うなぁ。
せいぜい、正規表現まで必要なのは入力チェックで通信しないですむぐらいの気がする。
0731デフォルトの名無しさん
2010/03/22(月) 13:21:250732デフォルトの名無しさん
2010/03/22(月) 15:54:38自尊心のために
0733デフォルトの名無しさん
2010/03/22(月) 19:56:460734デフォルトの名無しさん
2010/03/22(月) 21:20:380735デフォルトの名無しさん
2010/03/22(月) 21:46:470736デフォルトの名無しさん
2010/03/22(月) 22:34:160737デフォルトの名無しさん
2010/03/22(月) 22:58:560738デフォルトの名無しさん
2010/03/22(月) 23:34:00ところで、短い音を断続的に出したいんだが、
どうしても音が出せないときが出てきてしまう。
たとえば、0.2秒の音を0.5秒間隔で出したいのに、
1秒くらい間が開いてしまう。
そういう音は出せないんだろうか?
0739デフォルトの名無しさん
2010/03/23(火) 15:07:11どんな処理でやってますか?
音を出す処理の部分が悪く、でないときがあるのかもしれません。
0740738
2010/03/23(火) 20:20:08AudioPresenter ap = AudioPresenter.getAudioPresenter();
MediaSound sound = MediaManager.getSound("resource:///sound.mld");
sound.use();
ap.setSound(sound);
0.5秒間隔で再生してるだけ。
ap.play();
sound.mldは0.2秒のwavから変換したmldファイル。
実機で試したところ、音が途切れてしまうと。
0741デフォルトの名無しさん
2010/03/23(火) 21:02:04mldファイルを
0.2秒⇒無音0.5秒⇒0.2秒⇒無音0.5秒 計1.4秒で作り直して
1.4秒間隔で再生してみたらいいかもしれないですね。
iアプリのmld再生は若干始まりの際にwaitのようなものが入るので、0.5秒間隔では
再生が被って途切れてしまうかも(実機のスペの問題も)
0742デフォルトの名無しさん
2010/03/24(水) 01:11:420743デフォルトの名無しさん
2010/03/24(水) 10:17:06MIDIなら機種依存もないよ
0744デフォルトの名無しさん
2010/03/24(水) 14:17:510745デフォルトの名無しさん
2010/03/25(木) 16:06:33文字が大きくてカレンダー対応スケジュールアプリ作ろうと思ってるんだけど
全くの初心者なんだけど(Cgiの掲示板改造程度なら経験あり)
どこかにそんなプログラム公開してる所無いかな?
改造して勉強したいんだけど
宜しくね(ハート
0746デフォルトの名無しさん
2010/03/25(木) 17:10:10ここの住人は
0747デフォルトの名無しさん
2010/03/25(木) 17:17:100748738
2010/03/25(木) 17:24:25俺もそれを考えたんだけど、音を出す間隔を変えなきゃならないから無理がある。
>>742
チャンネル切り替えながらやっても同じでした。
シューティングゲームのアプリなんかも発射音は入れてないんだよな。
レーザーの音は入れてるアプリはあるけど。
やっぱこういうのは無理なのか。
0749デフォルトの名無しさん
2010/03/25(木) 19:56:44ニコニコ動画モバイルがそれやってた
0750デフォルトの名無しさん
2010/03/25(木) 20:41:060751デフォルトの名無しさん
2010/03/25(木) 22:14:42文字が大きくてカレンダー対応スケジュールアプリ作ろうと思ってるんだけど
全くの初心者なんだけど(Cgiの掲示板改造程度なら経験あり)
どこかにそんなプログラム公開してる所無いかな?
改造して勉強したいんだけど
宜しくね(ハート
0752デフォルトの名無しさん
2010/03/25(木) 22:16:43もちろん発射音はない。
BGMだけだけど、とくにそれについての苦情はこなかったな。
0753デフォルトの名無しさん
2010/03/25(木) 22:32:27まぁ、当たり前だわな
0754デフォルトの名無しさん
2010/03/25(木) 22:44:16i-modeのシューティング?
お前、本当は作ってないだろw
■ このスレッドは過去ログ倉庫に格納されています