トップページgamedev
984コメント340KB

JAVAでゲーム作成

■ このスレッドは過去ログ倉庫に格納されています
0001JAVA初心者・・・04/01/17 22:47ID:eiE+Mw3o
はじめまして!!
今年に入ってからJAVAでゲームを作ってみようと勉強しています。
どなたか宝さがしゲームを作るうえで参考になるゲームとツール知りませんか??
知っていたら教えてください。<(_ _)>ぺこり
0664名前は開発中のものです。2005/06/07(火) 23:45:31ID:olBSRmjj
GUI使って作るとしたらさ
0665名前は開発中のものです。2005/06/07(火) 23:48:31ID:jKM6D2RB
ゲームの場合GUIコンポーネントはまずつかわないからね
使ったとしたらSwingのカスタマイズ性が有利に働くかもしれない
0666名前は開発中のものです。2005/06/08(水) 00:16:58ID:RtjvDL3u
> ウインドウモードでかたつくならそれはティアリングであってる
よくわからないのは、数INTロックがかかって見えるところですかね。
ただFlashコンテンツも家の環境では同じ見え方するのに気づいたので、
追求するなと内なる何かがささやいてます。環境っぽい。

> GUI使って作るとしたらさ
個人的には自前でやった方が見栄えするから使わないかな。

> http://shin.cside.com/product/pw/index.htm
リンクたどったらゲームライクなライブラリも晒してるね。
コードも晒してればコピ・・・参照したのに残念。

んじゃ続き作るや。じゃ。
0667名前は開発中のものです。2005/06/08(水) 00:32:21ID:2dFSgXt/
>>666
実は液晶ディスプレイの問題とか
0668名前は開発中のものです。2005/06/08(水) 00:57:35ID:RtjvDL3u
>>667
ほのかにビデオカードと液晶ディスプレイ疑ってたり。
ただ止まる時間が長すぎるような、っていうのは検証したら正しい時間かもかも。

まあ調べませんが・・・敗北しときます。
0669初期不良2005/06/08(水) 04:06:27ID:2y7ULdYu
>>663
漏れ自信まったく理解してないんだが
SWT OpenGL plug-in ってのがあるみたいよ。
http://www.eclipse.org/articles/Article-SWT-OpenGL/opengl.html
0670名前は開発中のものです。2005/06/08(水) 17:57:47ID:jswTX7uc
SWTで作る利点といえば
Eclipse上にプラグインとして公開して、
仕事しているようにゲームできることか。
どうよ
0671名前は開発中のものです。2005/06/08(水) 18:03:07ID:2dFSgXt/
>>669
OpenGL使いたいのならJOGL使ったほうが手っ取り早いかと
3D目的なら今の流れだとJava3Dのほうがいいかもしれんが

>>670
それならJBuilderでもNetBeansでもテキストエディタでも環境にあわせるだけでかまわんような
そもそもどうしてもゲーム画面が表示される瞬間があるわけでどーすんだよと
0672名前は開発中のものです。2005/06/09(木) 02:49:56ID:IHGy2XMx
>>666
ヒント:Jad
0673名前は開発中のものです。2005/06/11(土) 04:07:57ID:BS9m70FP
すごい...自分で作ったアプレット、変数名まで再現されてた。
てか実用的な逆コンパイラなんて初めて見た。不覚...
0674名前は開発中のものです。2005/06/11(土) 10:07:51ID:GcEolZiW
とりあえず難読化ツールでも使うしか
0675名前は開発中のものです。2005/06/11(土) 21:32:54ID:wbD2CWIz
ところでクライアントサイドJavaでのゲーム作成入門の
オススメページってどこかないかな。

検索してもアプレットばっかりだし。
0676名前は開発中のものです。2005/06/11(土) 21:38:59ID:pf44YaEx
アプレットをフレームに貼り付ければいい。
0677名前は開発中のものです。2005/06/11(土) 23:33:05ID:QGGoJuur
普通にあぷりけーしょんでどうぞ
アプレットのほうが理解しにくいと思うんだけどなぁ

フレームワークであるという仕組みが分からないとかね

理解しないでアプリケーションに移行して画像のロードが出来ないんですけど、とか
アプレットじゃないと音楽が流せないんですけどとか
よくある話だが
0678名前は開発中のものです。2005/06/12(日) 00:24:41ID:dLf08KQ4
ttp://f57.aaa.livedoor.jp/~javagame/index.html
ttp://www.goldenstudios.or.id/
ttp://fivedots.coe.psu.ac.th/~ad/jg/
ttp://www.cokeandcode.com/index.php?page=resources
0679名前は開発中のものです。2005/06/12(日) 03:14:21ID:LXUyz6JS
Good Job!!
おもしろいページばかりだ!
0680名前は開発中のものです。2005/06/12(日) 09:22:26ID:KhhXkEWy
つーかまぁ、とりあえずパネル出すとこまで行けば後はアプレットとほぼ同じだ
0681名前は開発中のものです。2005/06/12(日) 10:35:27ID:PH5G30Lu
つーかアプリケーションなら積極的にBufferStrategy使おう
0682名前は開発中のものです。2005/06/12(日) 11:21:17ID:FBVLqvgc
>>676-681
ありがとう。>>678の見ながら勉強するよ。
0683名前は開発中のものです。2005/06/20(月) 17:09:26ID:OLasBksw
アニメーションで動きがカクッカクッとひっかかるのはガベコレのせいだよね
これ防ぐ方法はいまのところ何もないの?
0684名前は開発中のものです。2005/06/20(月) 17:38:53ID:xz5FMksQ
>>683
単純にGCのせいともいえない
ティアリングの可能性も高いし
綺麗に垂直同期とってもディスプレイのせいかもしれない

そもそもWinやMac,Linuxなんかは垂直同期とろうが
確実に引っかかりをとめる方法はない
0685名前は開発中のものです。2005/06/21(火) 00:06:59ID:7pToadzn
Javaで垂直同期って可能なのか
0686名前は開発中のものです。2005/06/21(火) 00:46:47ID:gLIUZNPd
>>685
おもしろいやつはけーん
もう数年前から可能ですが
0687名前は開発中のものです。2005/06/21(火) 02:08:38ID:7pToadzn
どうやって
0688619 ◆pKT/RyrDCw 2005/06/21(火) 05:42:57ID:vl1dL1WY
>>683
GCが原因ならJavaVMのオプションでVMのメモリの量を多くしたら
(一時的には)ひっかかりが解けます。
そうじゃなかったら他の原因だと思われ。
0689名前は開発中のものです。2005/06/22(水) 07:02:51ID:LQPYyhFp
>>631
もう一般向けのダウンロード出たね
http://www.apple.com/jp/ftp-info/reference/java2se50release1.html
0690名前は開発中のものです。2005/06/23(木) 00:33:24ID:jP3VdD64
10.4以降というのが
0691名前は開発中のものです。2005/06/23(木) 03:19:47ID:0EAQ3U15
>>683
簡単なサンプルで定期的に落ちるようならガベコレじゃないと思われ。
漏れもそれに困ってモニタのinf(だっけ?)を入れ替えたりしたけど、結局だめだった。
液晶ね。

関係ないけど、アプレットfpsが30以上にならないのはアプレットのせいだよね?
と便乗質問してみる始末。
0692名前は開発中のものです。2005/06/23(木) 11:56:22ID:L4YwPNmI
アプレットでも60fpsでるよね
0693名前は開発中のものです。2005/06/23(木) 12:12:05ID:A1Up2BL3
Mozillaとかだと描画にオーバーヘッドが起こってるのか微妙に重いことがある。
これのせいかfpsが落ちたりするよね。IEだと問題ないけど。
0694名前は開発中のものです。2005/06/24(金) 02:16:51ID:2dm7pYZB
キャラクターどうしの当たり判定とかすごい回数になりそうなので
オクトツリーとかいうのを使ってみようと思った。

なんかメンドクサス
0695名前は開発中のものです。2005/06/24(金) 05:10:17ID:Im1/sm4w
何のゲームで当たり判定が必要になったとかによるのでは

STGあたりならRectangleのあたり判定を使って自作でさくっと
スーパーマリオのようなアクションなら多少考える必要があるが
06966912005/06/25(土) 05:22:05ID:c8XAIbYr
>>692
そか。うっとこではapplette viewerでも32fpsより短くならないんだけど、
教えてgoogleパワーでがむばってみる。
ありがトン。
0697名前は開発中のものです。2005/06/25(土) 08:42:28ID:KxoU9hXJ
>スーパーマリオのようなアクションなら多少考える必要があるが
どんなこと考える必要ありますか?
敵(栗ボーとか)を配列に登録しておいてマリオが動くたびにすべての敵とあたっているか調べるってのじゃ遅すぎます?
0698名前は開発中のものです。2005/06/25(土) 09:28:37ID:Q6O8Kliy
地形とかの判定のことだな
0699名前は開発中のものです。2005/06/25(土) 22:03:49ID:i7Vh4wJf
>>697
最近のPCは力持ちだから極端に数が多くならない限りは
当たり判定処理を秒間10〜30回くらいなら平気でこなすよ。

もしこれ以上の精度が欲しいなら他の方法を使う必要があるけど
大抵はこれで十分だと思う。
0700名前は開発中のものです。2005/06/26(日) 00:10:58ID:5IDbwQfw
昔から配列で手当たりしだい判定してきたし問題にならん
8bitのときは比較回数が100個くらいをこえるときつくなってきたな
16bit以上はもんだいにならんよ

Javaが動いている時点でわざと遅くするコードやオプションにしないかぎりまず大丈夫かと
0701名前は開発中のものです。2005/06/26(日) 00:28:35ID:xA3Wpl2v
キャラクターが10体くらいで弾が200発くらいで地形が20個くらいで
それぞれ画面内にいないときもAIで動いてるゲーム

キャラクターどうし:9 回
キャラクターと弾:10 * 20 = 200 回
キャラクターと地形:10 * 20 = 200 回
弾と地形:200 * 20 = 4,000 回

1フレーム内で 4,500 回の判定・・・
0702名前は開発中のものです。2005/06/26(日) 01:38:32ID:5IDbwQfw
4500回の判定程度たいしたことはねぇよ
100MHzいってないのならすまん
0703名前は開発中のものです。2005/06/26(日) 08:30:26ID:R9cNrqzH
>>698-702
d
何かすごく遅くなりそうだけど結構大丈夫なんですね。試してみます。
0704名前は開発中のものです。2005/06/26(日) 12:22:05ID:2NQ+FlFk
Javaというか、オブジェクト指向のゲーム制作の定石みたいなものは
ありますか?日本語のJavaゲーム本だと、内容が古いか携帯電話向け
ばかりで、英語なら結構出版されていますが、読めるかどうか…。

キャラクターはクラスにするのか?そのクラスは自身で描画する機能を
持つのか?持つなら対象のCanvasの情報はどう持たせるのか?など。
皆さんはどうしてますか?
0705名前は開発中のものです。2005/06/26(日) 12:31:22ID:5IDbwQfw
クラス構造は人によって設計違うけど
多態を使うのとコレクションを使えるようになればいいんじゃないか
0706名前は開発中のものです。2005/06/26(日) 20:51:40ID:R9cNrqzH
>>704
私もそこらへんすごく悩んだ。結局、キャラクターに描画機能もたせて、キャンバスへの参照はキャラクターのコンストラクタに引数で渡してます。
0707初期不良2005/06/27(月) 09:20:24ID:sjyCFv/3
>>706
それで悩むなら Visitor パターンいいんじゃない?
いい具合に整理できるかも。自己満足レベルかも知れんが。
0708名前は開発中のものです。2005/06/27(月) 09:57:33ID:5sMCnoiV
コンストラクタで渡すよりメソッドの引数でわたせばいいっしょ
paintとかdrawとかってメソッドでGraphicsを引数に取ればいい

そして呼び出し元がそれら描画オブジェクトをリストから取り出して順に描画させる
プライオリティもここできめれるし
0709名前は開発中のものです。2005/06/29(水) 16:20:38ID:sZiDzWut
画像読み込みもタスクのクラスに実装すると
メディアトラッカーに渡すモノが必要ですね。
他の人のソースを見ると、Appletで渡したり、Containerで渡したりしてる。
このへん意味も分からず人まねしてる。
クラスが一つしかない簡単なアプレットなら
g.drawImage(.....,this);で済むのに。
0710名前は開発中のものです。2005/06/29(水) 19:06:02ID:Jz57RSZi
つーかImageIO使ってるし

5.0ならアクセラレーション聞きやすい環境ではあるけどコンパチブルなVolatileImageを
意識的に作る場合もある
イメージのロード命令ひとつでおわることはねぇな、ゲーム目的ならね
0711名前は開発中のものです。2005/06/29(水) 19:32:24ID:tkZA2RNq
>>709
クラスわけするとそこらへんが結構無駄に複雑になる気がする
0712名前は開発中のものです。2005/07/17(日) 13:46:28ID:Cex8NEqA
↓既出かもしれんが、この人のJAVAゲームってすごくない?
どういうテクニックを使えば、こういうなめらかな動きのアクションゲームをjavaで
できるのだろう??

--------
http://www.geocities.co.jp/SiliconValley-Sunnyvale/6003/ura/sisters2/
ちょいあシスターズ
アクションゲーム「ちょいあシスターズ」を公開しています。マ○オブラザーズをアレンジ
したもので、マウスとキーボードを使うことで2人同時プレイも可能です。


0713名前は開発中のものです。2005/07/17(日) 14:57:55ID:TVccPhIn
テクニックも何もJavaは普通になめらかにうごかせるものだが
0714名前は開発中のものです。2005/07/17(日) 21:51:17ID:IN1Lw/+s
>>712
やってみた。
至って普通だな
0715名前は開発中のものです。2005/07/17(日) 21:54:17ID:Cex8NEqA
>>713
> テクニックも何もJavaは普通になめらかにうごかせるものだが

ええーッ、僕が知っているjavaゲームは、敵の数に反比例して速度が低下するのが
多いのだが。
普通だったのか?
0716名前は開発中のものです。2005/07/17(日) 22:08:22ID:TVccPhIn
>>715
なんだよそれは
作り方が悪いだけだろ
60fpsで垂直同期取ったり滑らかに動いてるJavaのソフトだってあるぜ
0717名前は開発中のものです。2005/07/17(日) 22:25:38ID:DvhZ5Df9
正直 Java でフルスクリーンはぬるぽ
0718初期不良2005/07/18(月) 06:27:33ID:pZiMlJXx
>>717
このゲームをぬるぽしてください

Tribal Trouble(リアルタイム3Dストラテジー)体験版
http://oddlabs.com/download.php
0719名前は開発中のものです。2005/07/18(月) 13:03:07ID:uZqED97p
別にフルスクリーンでなくても滑らかにうごくっしょ
0720名前は開発中のものです。2005/07/21(木) 02:18:18ID:R+w7QC9R
なんでAlphaCompositeには加算合成がないのよ!!
0721名前は開発中のものです。2005/07/21(木) 02:35:11ID:R+w7QC9R
あ、正確には「なんで AdditiveComposite クラスがないのよ!」か
0722名前は開発中のものです。2005/07/21(木) 05:05:07ID:ttEileue
PixelGrabberを使うと加算合成できる?
0723名前は開発中のものです。2005/07/21(木) 10:50:10ID:0da8GUHY
JAVAを使って、ブラウザ上で自動的に画面が切り替わって行く、
サウンドノベルのような物を作るスクリプトは、
どこかで配布されていないのかな?
前に使っているサイトを見かけたんだけれども……。
0724名前は開発中のものです。2005/07/21(木) 11:42:34ID:PX1CM5dL
>>723
おれも昔あったような気がする。
Javaでわざわざやる必要が無いから無いんだろうね。
Flashのほうがそういう用途では作りやすいし使いやすい。
気力さえあればHTML+JavaScriptだけで行けるし。
0725名前は開発中のものです。2005/07/21(木) 13:49:56ID:52Yxwi4f
PixelGrabberって使う理由あるのか?
0726名前は開発中のものです。2005/07/22(金) 01:15:00ID:34bxPQ7x
どなたか Graphics を透明色でクリアする方法を教えてください、お願いします。

2枚の Image から getGraphics() でグラフィクスを取得し、
それぞれに別の描画をしてから重ねることでいわゆるレイヤーみたいのを実装してみたんですが、
上に重ねるほうの Image のグラフィクスを
まっさらに戻す方法がわからず行き詰まってしまいました。

単純に上に重ねるほうの描画の最初で clearRect() を呼ぶと、
下のグラフィクスまでクリアされてしまいます。

描画内容が変わるたびに新しくグラフィクスを取得しなおすのは
パフォーマンス的にかなりデンジャラスでした(ゲームには致命的なほど)。
0727名前は開発中のものです。2005/07/22(金) 01:31:17ID:34bxPQ7x
細かい訂正。Image でなく VoratileImage ですた。
0728名前は開発中のものです。2005/07/22(金) 06:52:53ID:2/g0amAL
あるVolatileImageをrgba(0,0,0,0)でクリアしたいってこと?

描画元がVolatileImageを使うということはJ2SE5.0だと思うけど
まずピクセルフォーマットをコンパチブルで作っているのが条件

さらにアルファ0のピクセルを強制描画となるとアルファブレンドの設定をsrcに変える必要あり

この辺分かってないのならスプライトはBufferedImageで作るのがいいよ
速度的にクリティカルでないのならね
5.0なら体外アクセラレーションがきくので描画先だけVolatileImageでよい
0729名前は開発中のものです。2005/07/22(金) 18:23:30ID:nqdltgNj
どうでもいいけど、VolatileImageは1.4からあって、このおかげでSwingが速くなった。
0730名前は開発中のものです。2005/07/22(金) 22:28:19ID:2/g0amAL
VolatileImageのコンパチブルイメージ作成は1.4では無理
スプライトには使えないのだよ
0731名前は開発中のものです。2005/07/23(土) 21:03:39ID:yrG67FHD
むう・・・グラフィックス関連は難しいのう
0732名前は開発中のものです。2005/07/24(日) 00:35:26ID:XT5QSyzV
Javaの場合基本はImageで極度に抽象化されてはいるのだが、
アクセラレーションがきく描画とアクセラレーションがきかない描画とで
APIがわかれていないからノウハウが必要。

速度を無視さえすれば一応どうとでも動くけどね。
DirectXを使って描画されたときとソフトウェア描画になったときとの差はさすがに激しい。

分からないときは描画先はVolatileImageで描画元はBufferedImageのBITMASK指定
にしておけば基本的に問題はない。

ただ、アルファブレンドとか考えるとソフトウェア描画具合によって描画先もBufferedImageに
おいたほうがいい場合もある。

など>>218の過去の日記とか参考になる。
1.4.2と5.0とは基本的には速度は変わってないそうだね。
0733名前は開発中のものです。2005/07/27(水) 13:20:35ID:ix/c6kOA
・・・
何の事だかさっぱり分かんねー
0734名前は開発中のものです。2005/07/27(水) 13:44:30ID:MUqN45X5
Imageの既知のサブクラスくらいちゃんとみよう
0735名前は開発中のものです。2005/08/06(土) 22:11:52ID:pinomsPp
処理を詰めるコレクションはどれを使えば
いいのですか?
シューティングを作っているのですが。
0736名前は開発中のものです。2005/08/07(日) 01:41:13ID:7DUHzpYT
最近の若いもんはデータ構造の勉強も使用としないのか
0737名前は開発中のものです。2005/08/07(日) 02:59:33ID:70Sdbjq9
しかも質問が曖昧すぎて何をやりたいのか分からない、ときたもんだ。
0738名前は開発中のものです。2005/08/07(日) 04:57:27ID:4HgBgmKI
「処理を詰めるコレクション」って何だ?
データ構造に関する事なのか?

07397352005/08/07(日) 07:23:54ID:YgzkFRJY
すみません。勉強不足でした。
出なおして来ます。
0740名前は開発中のものです。2005/08/07(日) 14:33:14ID:yCvqVkAo
勉強不足じゃなくて日本語の意味がわからないといっておる
0741名前は開発中のものです。2005/08/07(日) 16:09:28ID:gU2cgAEa
いや日本語の勉強不足なんだろ
彼は留学生なんだよ
0742名前は開発中のものです。2005/08/07(日) 17:38:19ID:ORJAOx8r
在日だろ
0743名前は開発中のものです。2005/08/07(日) 18:29:55ID:JLSTZtKF
関数ポインタの配列みたいなものを求めてるんだろ
0744名前は開発中のものです。2005/08/07(日) 18:49:39ID:yCvqVkAo
>>743
すごい理解力だな

だとしても難しく考えず多態がわかればそれでOK
JavaだけでなくC++でもオブジェクト指向言語ならね

C++でも関数ポインタ使うようではお話になりませぬ
0745名前は開発中のものです。2005/08/07(日) 19:23:38ID:4HgBgmKI
commandSeq.add(commandA);
commandSeq.add(commandB);
...
Command command = commandIter.next();
command.do();

みたいにして敵を動かしたいけど List とか Set とか Map とか色々あって
どれ使ったらいいか分らんって話かな?
0746名前は開発中のものです。2005/08/09(火) 17:21:29ID:kPu+8l2o
リストとセットとマップの使い分けができない人間に
コマンドをオブジェクトにするなんて高級な発想ができるとは思えん・・・
0747名前は開発中のものです。2005/08/12(金) 17:22:56ID:4rKVi55E
これって読んだ人いない?
Javaコレクションフレームワーク
ttp://www.amazon.co.jp/exec/obidos/ASIN/4797327057/250-0127530-6112251
0748名前は開発中のものです。2005/08/12(金) 18:01:22ID:JHIWdaT4
1.5対応なのかな、その本
0749名前は開発中のものです。2005/08/15(月) 00:53:42ID:kKlH8Vdw
>>744
C++でもゲームだと普通にコールバック登録とかに使ってるね、関数ポインタ。
べつのスマートで高速な方法があるなら知りたいや。
0750名前は開発中のものです。2005/08/15(月) 01:03:30ID:ESVCg1zy
C++ならポリモーフィズムでしょ。
関数ポインタ使うなとは言わないけど。
0751名前は開発中のものです。2005/08/15(月) 01:50:33ID:qn8FJw6T
ただC++でおき楽にやるとキャッシュヒットが上手くいかないかな。
保守性と速度とでどっちをとるかなんだけど。
0752名前は開発中のものです。2005/08/15(月) 16:02:35ID:UyuTTffG
過去レス読んでたんですがBufferedStrategyとかVolatileImageってJDK1.5のSwingで描画すれば何もしなくても実装されてます?
0753名前は開発中のものです。2005/08/15(月) 18:16:25ID:C+etuN6I
Javaインストールさえ出来ない私です(・∀・`)
DLのページって英語ばかりで良く分からないし安全かどうかも分かりませんよね(汗;
0754名前は開発中のものです。2005/08/15(月) 18:53:34ID:limOG/LR
>>753
インストールできないってことは、まだ落としてないの?
JDK ダウンロード でぐぐって最初のページである下記サイトに行き、
ttp://java.sun.com/j2se/1.4.2/ja/download.html
・適当にドキュメントを読んでから「J2SE SDK のダウンロード」を選択
・Accept にチェックを入れて Continue
・自分の使用しているOSのインストーラをクリック(Windowsなら Windows Offline Installation, Multi-language)
で、あとはインストーラを実行するといいよ。

5.0が必要な場合も同様
ttp://java.sun.com/j2se/1.5.0/ja/download.html
0755名前は開発中のものです。2005/08/16(火) 19:46:04ID:m8tb6mCH
ゲームとは無関係ですけど
static Game gam;
と、宣言したもののメソッドを
使おうとしたらNullPointerException
が発生してしまうのですが
どうしたらよいのですか?
staticで宣言したら
newとかやらなくても使えるんですよね?
もしかして自分間違ってます?
0756名前は開発中のものです。2005/08/16(火) 19:57:51ID:r7PJkQoA
>>755 うん。
0757名前は開発中のものです。2005/08/16(火) 19:59:31ID:BK5WFM6G
>>755
メソッドの宣言ではないなその書き方は。

フィールドの宣言だとしたら

それを宣言したクラスをHogeってすると
Hoge.gam
でアクセスできる。

ただ、staticにする必要があるかどうかをまず考えた方がいいよ。
07587552005/08/16(火) 20:56:19ID:m8tb6mCH
キャラクラスを作ったんですけど
そのクラスを呼び出すコンポーネントをHogeとして
static Hoge hoge;
と、キャラクラスでフィールド宣言して
そのHogeのメソッドを使おうとしてNullが
出てしまうんです。
こんな風にやってるのを参考にしてみたのですが、
キャラを呼び出すクラスをキャラの方で呼び出さないようにします。
0759名前は開発中のものです。2005/08/16(火) 21:06:10ID:BK5WFM6G
>>755,758
おまいはすごい変な勘違いをしてる。

public class Test() {
 static Hoge hoge;
 ..................
}
ってなクラスだったとすると、
hogeへのアクセスは
Test.hoge
になる。

でやりたいことは、Hogeのメソッドを使うことだとおもうんだが
その使いたいメソッドはStaticなのか?
たとえばキャラクラスが
public class Hoge() {
 private int charPosX;
 public int getCharPosX() {
 ....
}
とかだとすると
必ずhogeにはインスタンスを代入してあげないといけない。
hoge = new Hoge();

さっきのキャラクラスのメソッドが
public static int getCharPostX();
とかならメソッドにはアクセスできるはず。

ただ、Staicだからちゃんと考えて使わないと意図してないことになるぞ。
07607552005/08/16(火) 22:31:39ID:m8tb6mCH
自分の極僅かな理解力に依ると
staticな参照型のフィールドの持つ
メソッドを使うには、そのメソッドは
staticである必要があるということですか?
0761名前は開発中のものです。2005/08/16(火) 23:13:00ID:BK5WFM6G
>>755,760
違う。
staticについてかなり勘違いしてるな。
俺の書き方も悪かったかも知れない。

staticなフィールドへのアクセス方法 と
staticなフィールドのメソッドへのアクセス方法 とは別物。

方法は二つあるってこと。
hoge = new Hoge();
としてインスタンス化するか
アクセスしたいメソッドをstaticにするか。
このどちらか。

staticにするって事は、どの他のクラスからのアクセスでも、
参照できる値が同じであって欲しいって事だと思うのだけど、
そういうときはstaticを使わなくても実現できる。
Singletonパターンでググってみなさい。
0762名前は開発中のものです。2005/08/16(火) 23:21:32ID:BK5WFM6G
ちょっと訂正
シングルトンでも内部ではStatic使ってます。
0763名前は開発中のものです。2005/08/16(火) 23:54:56ID:6Nhea8Nr
優しいやつがいるな

いや、いいことだが
■ このスレッドは過去ログ倉庫に格納されています