トップページgamedev
987コメント388KB

Javaでゲーム作成 2本目

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2005/10/27(木) 09:43:50ID:dzSvRQXE
Javaでのゲーム作成について情報交換をするスレです。
ゲーム作成以外の話題はム板(http://pc8.2ch.net/tech/)、
他言語に関する話題は他スレでお願いします。

前スレ
JAVAでゲーム作成
http://pc8.2ch.net/test/read.cgi/gamedev/1074347252/

テンプレは>>1->>10あたりを参照
02011992006/01/26(木) 23:31:16ID:Pd3Qgsdn
>>200
サンクス。できるようになりました。
0202まほろば ◆BmUbLWewsM 2006/01/28(土) 18:36:32ID:K+4gOIY6
いやーこのスレは役にたつなー。。
ところで、classファイルからソースコードを盗まれないようにするにはどうしたらいいんでしょ。。
0203名前は開発中のものです。2006/01/28(土) 18:42:43ID:u3ZzJuZS
正直それはあきらめろ

クラスローダ自作したところで実行中のメモリのぞかれれば意味なし
nproではじくとかやると誰も使うやつはいなくなるぞ

ネイティブバイナリでもコンパイラの癖とあたりつければそれなりに追えるんだし・・・とわりきれ
その分開発効率がいいんだからガンガンものづくりに専念しなさいといいたい

オンラインゲーなら毎日こまめにクラスを再配布していれば大丈夫かと
0204まほろば ◆BmUbLWewsM 2006/01/28(土) 21:29:17ID:K+4gOIY6
>>203
実行中のメモリのぞかれれば意味なし
そんな事出きるの?ソースは?
やろうと思えばできるとか妄想でつか?
0205名前は開発中のものです。2006/01/28(土) 21:37:25ID:EnQtmKxX
>>204
メモリ覗くだけならWindows上で実行しちゃえば簡単だろうけど、
手軽に解析って話は俺も聞いたこと無いな。

うちの会社はDashOとかいうバカ高い難読化ツールを買った。
そんな必要無ぇって主張は通らなかった。
0206名前は開発中のものです。2006/01/28(土) 22:44:25ID:PUcSGIMg
読みやすくしてくれるツールはありませんか。
0207名前は開発中のものです。2006/01/28(土) 23:06:37ID:u3ZzJuZS
>>204
多少は調べろ
クラスロードした後はざる
0208まほろば ◆BmUbLWewsM 2006/01/28(土) 23:57:58ID:K+4gOIY6
>>207
0209名前は開発中のものです。2006/01/29(日) 01:11:24ID:1KG7yFUT
結局いいスレだったのをコテハンが壊したってことか。
0210名前は開発中のものです。2006/01/29(日) 02:35:06ID:PecoYXTp
もう大学生は春休みか……
いいご身分だなぁ。
0211名前は開発中のものです。2006/01/29(日) 12:34:08ID:FRX/ORuz
低脳だから卒業後ニート行きで
さらに良いご身分だな
0212まほろば ◆BmUbLWewsM 2006/01/29(日) 13:24:43ID:LX0lKjST
まったくだなww
0213名前は開発中のものです。2006/01/29(日) 17:14:26ID:zbiz4Pm/
GraphicsクラスのdrawImageで浮動小数点数を使う方法って何かない?
ゲームのキャラクターを表示させるためにはint型では精度が悪いんで。
0214まほろば ◆BmUbLWewsM 2006/01/29(日) 17:28:00ID:LX0lKjST
ないよ。javadoc見りゃ分かるじゃん。。
0215名前は開発中のものです。2006/01/29(日) 17:45:07ID:ec+1eYbr
>>213
そういうときは大きいバッファを持つことで回避する
320*240の画像を0.5単位で扱いたいときは640*480とかね

drawRenderedImageとかtranslateを使う方法もあるが
用途がゲームなら使わないほうがすっきりしていいと思われ
0216名前は開発中のものです。2006/01/29(日) 17:57:12ID:2i9o9yjB
>>213
Graphics2D でもいいのなら AffineTransform を使えばできる。
デフォルトでは AffineTransform を使用しても補完してくれないので、
補完方法を設定する必要がある。

Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BICUBIC);
g2.drawImage(image, transform, null);

こうすると 0.01 単位でヌルっと動かせるけど、それなりに重くなるし
画質もはっきりしたりぼやけたりするので逆にオススメできない。
キャラ自身の内部座標を小数点で扱うのは自由だけど
画像の描画に関しては座標を int で処理するのが現実的だと思う。
0217名前は開発中のものです。2006/01/29(日) 21:48:41ID:qPM3IQVC
正男ってjava?
0218名前は開発中のものです。2006/02/01(水) 20:44:05ID:W1eX6IZO
Javaアプレットでしょ
0219名前は開発中のものです。2006/02/05(日) 00:25:12ID:LCSDYznu
フルスクリーンモードで質問なんですが

  public static void main(String[] args) {
    GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
    GraphicsDevice device = env.getDefaultScreenDevice();

    JFrame frame = new JFrame(device.getDefaultConfiguration());
    frame.setUndecorated(true);

    device.setFullScreenWindow(frame);

    MyPanel panel = new MyPanel();
    frame.getContentPane().add(panel);
  }

こんな感じでフルスクリーン化するフレームの上にパネルをはりつけてます。
このときフルスクリーン状態にはなるんですが、パネルのpaintComponent()が
呼ばれてないらしく描画されません(画面が真っ白のままでサウンドはなります)

panelのpaintComponent()が呼ばれるにはどう修正すればよいでしょうか。
0220名前は開発中のものです。2006/02/05(日) 00:52:34ID:NFbwVJ0F
フルスクリーン使ってるならSwingのイベントモデルにはこだわらないのが普通
BufferStrategyってのをしらべてごらん

ようは好きなタイミングで描画が出来るのだ
0221名前は開発中のものです。2006/02/05(日) 01:21:52ID:LCSDYznu
ありがとうございます。
やっぱそれですか。そうかもと思って実装始めたらできました。
frame.createBufferStrategy(2);
とやってpaintComponent(g)をdraw(g)にかえて
BufferStrategy strategy = window.getBufferStrategy();
Graphics g = strategy.getDrawGraphics();
draw(g);
g.dispose();
でうまく描画できました。
02222192006/02/05(日) 01:30:28ID:LCSDYznu
もう一つあるのでアドバイスいただけるとうれしいです。

Window window = device.getFullScreenWindow();
window.add(JPanelオブジェクト);

とやってフルスクリーン上にパネルを置いています。
こうするとパネルがちらついてしまうのですが対策はあるでしょうか。
0223名前は開発中のものです。2006/02/05(日) 01:52:48ID:8ByMu9YS
まずパネルをおく必要はない
ウインドウ全体を使って描画してるから
02242192006/02/05(日) 09:38:19ID:LCSDYznu
コマンド選択パネルみたいに使っているんですが。

フルスクリーン上でスペース押すと右上にパネルが表示されます。
KeyboardListenerを実装してるのでキー入力はそのパネルが奪い
パネルを消すともとのフルスクリーン上にキー入力がいくという感じです。
パネルじゃなくてCanvasでもいいんですがどうもちらつきます・・・

パネルで何も描画しなくてもちらつくということはフルスクリーンにしてる
JFrame上にコンテナは置いちゃだめということでしょうか。
0225名前は開発中のものです。2006/02/05(日) 12:29:26ID:8ByMu9YS
おいてはいけないということはないが、BufferStrategyはつかえんぞ
02262192006/02/05(日) 13:00:29ID:LCSDYznu
そうですか・・・ボタンやらも全部だめだったのでBufferStrategyの描画領域にコンポーネントは配置してもちらついてしまうみたいですね。
あきらめてパネル風のウィンドウを描画することにします。
0227名前は開発中のものです。2006/02/05(日) 13:25:23ID:8ByMu9YS
ゲーム目的ならコンポーネントの描画は避けるべきだな
すべて自前で描画しないとリフレッシュとかのタイミングがコントロールできん
0228名前は開発中のものです。2006/02/05(日) 14:37:09ID:15xceU0H
便乗だけど、フルスクリーンで文字の入力はどうすればいいの?
英語だけなら楽勝かもしれないけど、漢字変換とかどうすればいいのかさぱーり。
以前コンポーネント埋め込んだら酷いことになって諦めてた
0229名前は開発中のものです。2006/02/05(日) 14:40:46ID:LCSDYznu
MMORPGの市販ゲームとかできてるからやり方あるんだろうけど。Javaだとどうなるんだろ。自分も知りたい。
0230名前は開発中のものです。2006/02/05(日) 15:23:24ID:8ByMu9YS
MMORPGの場合フルスクリーンでもただすべての画面を占有するだけ
といった作りかたしてると思われ

JavaでやろうとするならBufferStrategyをあきらめるほうがいいだろうね
JPanelに画面部分を描画、paintComponentでバックバッファから自前で転送
0231名前は開発中のものです。2006/02/05(日) 17:31:23ID:XoC15JKP

LWJGLやJOGLで日本語文字を画面に表示するにはどうしたらいいんでしょうか。
LWJGLにAWTGLCanvasっていうのがあって、これを使えばできそうなんですが、
サンプルがなく使い方がいまいち分かりません。

みんなはどうやっているんだろう。

以前Graphics2Dでゲーム作ろうと思ったけど、アルファブレンド処理がソフトウェア描画に
なったので、LWJGLに移ったんですが。

うううーーーん
0232名前は開発中のものです。2006/02/05(日) 17:43:24ID:8ByMu9YS
基本はDirectDrawだからな
一応オプションでDirect3Dで動作させればアルファブレンドもハードウェアになるが
レンダリング品質の問題とか通常一番使うブリットが遅いとかJava2Dベースでは
通常合成しか出来ないとかが問題になるからな

LWJGLはまったくさわったことがないのでわからん
JOGLはOpenGLそのままだね
俺が触ったときはSDLとのリンクが未実装だったので対象には上がらなかったが

Java3Dは高級すぎてゲーム用途にはまったく使えないという感じだった
速度がまったくでないことやピクセル単位の処理という感じではなかった

ただ、軽く触っただけなのでなんともいえない
2Dゲームならソフトウェアによるアルファブレンドが問題になるほど遅い場面は少ないとは思う
0233名前は開発中のものです。2006/02/05(日) 19:35:20ID:XoC15JKP

>>232

640x480の画面に32x32のマップをひきつめただけですでに40FPSだったんですよね
Graphics2D。。。

やっぱりC++の方がゲーム開発はいいのかなぁ・・・
開発効率はJavaの方がはるかにいいんですけどね

何かJOGLやLWJGLに近い速度がでるゲーム用ライブラリって
ないんでしょうか

0234名前は開発中のものです。2006/02/05(日) 19:44:36ID:8ByMu9YS
アルファブレンドでしきつめたらそれくらいにはなりそうだが
通常転送ならそこまで遅くなることはあるまい

使い方がおかしいかと
0235名前は開発中のものです。2006/02/05(日) 19:48:54ID:XoC15JKP

>>234

アルファブレンドで描画したときです。
正直なきたくなりました。
同様の処理でDirectXの場合は余裕を持たせてもFPS500ぐらいでした。
0236名前は開発中のものです。2006/02/05(日) 20:03:06ID:8ByMu9YS
デフォはDirectDrawベースだから当たり前
PureJavaベースのゲームなら少し前のコンシューマの2Dベースにしておくべき

アルファブレンドが多い場合は自前のエンジンを使ったほうがいい
Java2Dのアルファブレンドは機能が多すぎて高級すぎる
回転とかも同様

あとメモリアクセスを減らすために解像度を下げるとか
今後を考えてレンダリングエンジンはマルチコアに対応させる

現状を考えると320*240-16bppが2DでJavaでの安定動作の限界だと思うよ
それを2倍拡大して描画するのがベストか

Sunはデスクトップ部分に5.0は力を入れるといいつつ
1.4.2とほとんど変わらなかった前科があるから6にも期待薄だな
0237名前は開発中のものです。2006/02/05(日) 20:25:57ID:15xceU0H
-serverを指定するだけ多少は速くなるし、メモリ次第かなぁ
0238名前は開発中のものです。2006/02/05(日) 21:05:19ID:8ByMu9YS
serverはゲームではオススメしない
強度の最適化のために滑らかに動かない
0239名前は開発中のものです。2006/03/01(水) 00:33:42ID:LBMCdldE
BufferStrategyとpaintComponentを切り替えられるようにすれば
RPGツクールでキーボード名前入力を可能にした感じのゲームも可能なのかな。
でもそんなことしてたらMMORPGなんて作れない気もする。
-serverの件もそうだけど、なんかもどかしい
0240名前は開発中のものです。2006/03/01(水) 00:53:30ID:iPnrcY6D
一応BufferStrategyはCanvasでも使える
AWTなのであまり込み入った使い方しないように
0241名前は開発中のものです。2006/03/01(水) 01:34:48ID:LBMCdldE
おお、ホントだ。BufferStrategyは埋め込み可能だったのか。
ゲーム画面上に透明チャット窓とかしようとするのも可能そうだね。
BufferStrategyならAWTとSwingの差分なんてあってないようなものだろうし。
ちょっと希望が湧いてきました。
0242名前は開発中のものです。2006/03/01(水) 02:35:02ID:LBMCdldE
5.0からAWTにZOrderが追加される。かゆいところに手が届いてら。
0243名前は開発中のものです。2006/03/04(土) 19:59:23ID:+Bxv4duP
Swingでrepaintをした場合ってイベントキューで処理されるの?
Timerのタイミングできちんと描画スレッドに渡せますか?
0244名前は開発中のものです。2006/03/04(土) 23:22:41ID:EEF7QBKs
何を言いたいのかわからんがSwingは普通のSUIのイベント処理だぞ

リペイントわたしてもリペイント範囲のaddされるだけ

連続でrepaint複数渡しても1回しかリペイントされないとかよくあること

これはSwingに限ったことではない
Windowシステムは全部そう

だからTimerでrepaintわたしたからすぐに描画されるわけではない

正確なタイミングでやるならAWTイベントでのリペイントは辞めるべき
BufferStrategyを使うのが正しい
これは内部でDirectXとか使われてるイベントモデルではなく、いわゆる直書きだ
0245名前は開発中のものです。2006/03/05(日) 13:59:16ID:R322THrX
>>244 どうもです。
FPS管理するからrepaintのままでやります。
描画に失敗したら致命的というわけでもありませんし。
0246名前は開発中のものです。2006/03/05(日) 14:46:49ID:o20ilzio
FPS管理って普通にみんなBufferStrategyでしてると思うぞ
なんか勘違いしてないか?
0247名前は開発中のものです。2006/03/05(日) 15:12:44ID:R322THrX
いやJComponentもバリバリ使いたいので。
0248名前は開発中のものです。2006/03/05(日) 16:46:58ID:o20ilzio
Swingコンポーネントベースのゲームってめずらしいな
ダブルバッファリングをライブラリに任せるのは割ときついからな
0249名前は開発中のものです。2006/03/15(水) 01:15:11ID:cXOEjtfT
保守
0250名前は開発中のものです。2006/03/18(土) 15:46:10ID:bpOUjL+k

良スレですね。


6年ぶりぐらいにJava触って驚いた〜。
趣味の遊びには最適ですね。

0251名前は開発中のものです。2006/03/18(土) 23:01:07ID:ATXsVevn
exewrapがJavaゲームの必須アイテムになるのかな?
ヒープサイズをjrockitと同じ物理メモリの75%とかに指定したいんだけど
exewrapにはそういう指定は出来ないんだろうか

128m版と256m版の2つ用意したほうがいいかな・・・うーむ
0252名前は開発中のものです。2006/03/18(土) 23:25:32ID:xwepgm3J
鯖アプリじゃないんだから物理メモリの割合は意味がないぞ
メモリ増えればGCにかかる時間は増えるわけで、ゲームで使用するメモリ量とかちゃんと計算してないの?
それだとGCとかでかたつかないか?
0253名前は開発中のものです。2006/03/19(日) 00:20:58ID:jd/0wDmz
単位時間に対するGC率が増えるのって操作性に影響でないの?
0254名前は開発中のものです。2006/03/19(日) 00:26:14ID:UecNa0OI
100秒ごとに1秒とまるGCと1秒ごとに0.01秒とまるGCとどっちがゲーム向きかということだ

それにわりあいでやられたら世代の調整とかおわっとる
GCのアルゴリズムの種類だって調整するのは常識なんだし
アプリごとに最適な値は大きくことなる
0255名前は開発中のものです。2006/03/19(日) 00:34:10ID:jd/0wDmz
Mapにキャッシュするサイズ+演算用のサイズで考えればいいんだよね?
最適値というのは演算分のヒープサイズがどのくらいのものなの?
0256名前は開発中のものです。2006/03/19(日) 00:50:29ID:UecNa0OI
GCの頻度とか使用量とかチェックしてないの?
-verbose:gcオプションいれてごらん

もっと詳しく見たいのならプロファイラで見るのが一番だが
まずはGC部分に注力するならこれが見やすいだろうね
0257名前は開発中のものです。2006/03/19(日) 00:58:12ID:jd/0wDmz
>>256
OK、チャレンジしてみます。
0258名前は開発中のものです。2006/03/31(金) 14:22:07ID:5bd8BEHK
当方、子供の頃にZ80アセンブラやBASICでゲームプログラムして遊んでいました。
まぁアルゴリズムとかは結構わかります。

今頃になって、再びプログラムを趣味にしてみようと思いJavaを選択しました。
シンタックスやOOPの基本的なことは大丈夫そうです。
Eclipseインストールしてちょっと感激。

で、問題なのはすこしでもDirectDrawとかFPS管理とか、ちょっとでもシステム寄りの
部分になると全然わからないのです。
いくつかソースを読んでみますと、各人でわりと実装が違うようですね。
Java5ではどんな方法がよいのかなど、参考になるものは無いでしょうか。
0259名前は開発中のものです。2006/03/32(土) 00:20:26ID:dul/XEV4
>>258
そういう人かなりいるよね
ゲームは問題なく作れるけどウインドウアプリになるとmainからはじまらないので
わけがわからない、と

Javaは一応mainから常に始まるしまだ楽なほう
>>1-11あたりはまずよんでみた?
0260名前は開発中のものです。2006/03/32(土) 01:27:44ID:liMA6BYm
3/32 記念パピコ
0261名前は開発中のものです。2006/04/04(火) 13:36:48ID:oy1ylhQ+
eclipseってそんなに良いか?【エクリプス】
http://pc8.2ch.net/test/read.cgi/tech/1099300344/274-
> 280 名前:デフォルトの名無しさん[sage] 投稿日:2006/04/04(火) 09:53:59
> >>276
> ほんとかよ。
> 2Dゲームの背景にタイルを敷き詰める処理を作ってみたが明らかに遅いぞ。
> これと言って変な処理は入れてないが、5fps出ない。
>
透過pngをImageIO.read()で読み込んで
Graphics.drawImage(Image, int, int, ImageObserver)で表示すると確かに重くなるが
上の奴はこれと同じ状況なのだろうか?
0262名前は開発中のものです。2006/04/04(火) 13:41:10ID:h6nMnOJP
アルファブレンドだと重いけどただの色抜きなら重くはないよ
5.0ではBufferedImageのままなにもしなくてもそれなりにきくようになってるし
5fpsってありえんね

そもそもソフトウェア描画でもVGAで30fpsはでそうだが
0263名前は開発中のものです。2006/04/06(木) 12:59:32ID:kzyZx0iO
iアプリを作ろうと思って勉強してるんですが、画像表示で躓いています。

サンプルではちゃんと表示されるんですが、画像を自作のものと入れ替えるとIO.connectionexception
ってのがでるんです。サンプルと同じGIFでサイズも同じにしてあるんですが。自作画像の方に問題が
あるんでしょうか。
0264名前は開発中のものです。2006/04/06(木) 14:20:33ID:mP0GEHd4
>>263
動かないのが実機かPC上かを明記してもらえるとありがたい
サンプルがどんな処理を行うアプリケーションなのかも関係してくる
情報が少なすぎるのでエスパー回答してみるが、

・ファイルが壊れている
終端コードが無かったり、BMPなのに拡張子だけGIFにしたとか
試しにネット上に転がってる別のGIFファイルでテストしてみては?

・ファイル名の指定が間違っている
サンプルと同じファイル名にしてテストしてみては?
大文字小文字、全角半角の違いがないか気をつけて

・容量がオーバーしている
同じサイズというのはピクセル数のことだと思いますが、
バイト数が上限を超えていないか確認してください。
0265名前は開発中のものです。2006/04/06(木) 17:15:27ID:kzyZx0iO
適当に書いてすいません。エラーがでるのはDoja3.5のPC上で、ビルドした後実行すると出ます。
サンプルは簡単なもので、画面にタイトルを表示するだけのものです。十枚ある画像を取り込んで
そのうちの一つを画面に表示するものです。

ファイルが壊れている>壊れているかは私に判断できないんですが、自作の画像はwindowsのペイ
ントで書いて、0という名前で(サンプルで表示されるのが0.gif)形式をGIFにしています。

容量がオーバー>サンプルは色付きですが、自作のものは白と黒のみなのでサイズは小さいです。


いろいろ試してみたんですが、サイズの違う画像の時に一回エラーがでずにちゃんと表示されて、
その画像の大きさをいろいろ変えたんてみても上手く表示されました。やはり元の画像が悪いので
しょうか
0266名前は開発中のものです。2006/04/06(木) 17:20:56ID:kzyZx0iO
あともう一つ。一回エラーが出た後、画像をもとのサンプルの画像にしても、やはり
エラーが出たままなんです。
02672632006/04/08(土) 17:16:17ID:+i1+4exU
ソースも画像も変えてないのに何回かやったら表示されるようになりました。
お騒がせしました。264さんありがとうございます。
0268名前は開発中のものです。2006/04/08(土) 21:22:15ID:MsUK1t+N
何回かやったらってありえね
ビルドしてないとか
0269名前は開発中のものです。2006/04/09(日) 20:57:47ID:S2mcpQ+R
俺の場合、PCを再起動してみたら正常に動いたってことはたまにある。
メモリが不足してたのかな?
02702632006/04/09(日) 23:11:53ID:TOyrHTNi
原因はわからないです。さんぷるの画像の内、一枚だけ入れ替えたらうまくいったんで、
一枚ずつ入れ替えていったらエラーがでなくなりました。言われてみれば一回電源切った
あとかも
0271名前は開発中のものです。2006/04/10(月) 02:20:42ID:tKGbAe46
>>270
わかんないならもうレスしなくていいよ
0272名前は開発中のものです。2006/04/15(土) 01:23:46ID:sf5nUDiw
そのくらいのサンプル段階ならソース晒してもいいでしょう
アップローダにアップしては?
http://gamdev.org/up/upload.php
短いソースならこのスレに書き込んでもいいだろうし。
0273名前は開発中のものです。2006/04/15(土) 10:51:05ID:0dEqMUag
この板寂しいからレスしてくれよ・・・
書き込みがあるとわくわくする
0274名前は開発中のものです。2006/04/15(土) 11:44:35ID:HLCHM0Al
最近アプレットは流行らないよな。
このスレはJavaアプリのこと?アプレットのこと?
サーバ側の話?J2MEのこと? なんでもあり?

それよりなにより、漏れは女とJavaTea飲みたい。
0275名前は開発中のものです。2006/04/15(土) 16:50:42ID:hisjoupK
MEは実装依存度が高すぎるからそちらのスレで
基本はJavaアプリだろうね

アプレットは社内用リッチクライアント用途ではかなりいいけど
アプリと違って起動時のパラメータとかチューニングが限界がある

アプリによってメモリやGC等の設定は細かくかえるのが普通だから
ゲーム用ではさほど・・
フルスクリーンとかファイルアクセスとか限界もあるしね

手軽に配布ということでフラッシュ程度でいいのならフラッシュで作ればいいし
JavaでやりたいのならWebStartにしたほうがまし

JRE同梱してアプリにしたほうがいいよ
0276名前は開発中のものです。2006/04/15(土) 18:40:50ID:nQHtm5rD
某スレに幾つかアプレットの2Dゲームが上がってるけど、
速度的には全然遜色ないな。
アプレットでも結構作れる事は作れるけど、開発環境などその他諸々の点で
フラッシュの方が断然上。
アプレットでゲームを作るメリットは何もないよ。
0277名前は開発中のものです。2006/04/15(土) 18:57:48ID:AcPPvKEl
無料でまともなFlash開発環境があればいいんだけどな
0278名前は開発中のものです。2006/04/15(土) 19:10:16ID:Vc+Xe/9j
ActionScript経由でFlashの機能は全部表現できるんだよね?
だったらActionScript3.0がパブリッシュ(コンパイルの意)出来る環境があれば
あとはAPIリファレンスを手に入れるだけで何とかなりそう
0279名前は開発中のものです。2006/04/15(土) 21:04:45ID:hisjoupK
>>276
配布を考えればの間違いでは?
開発環境はアプレットのほうがどこをどう考えても上

アクションスクリプトきっついよ
0280名前は開発中のものです。2006/04/15(土) 22:36:11ID:lpccgP2z
>>276
ASの開発しづらさを知ってて言ってるのか?
マジキツイっての、アプレットと作り比べてみろよ。
0281名前は開発中のものです。2006/04/21(金) 18:53:51ID:7zcsjMK6
Java使えればゲーム以外にも仕事で役立ちそう
Flashは覚えても応用範囲が狭そう
0282名前は開発中のものです。2006/04/26(水) 22:50:39ID:h83t4bfk
>>281
俺はC→AS→Javaだったよ
ASだけは遊びで覚えたんだけど、OO開発の基礎は自然と身についた
MovieClipの仕様がいいんだろうな
0283名前は開発中のものです。2006/04/29(土) 05:29:13ID:e8m8pSlv
みなさんゲーム作ったんですか?
ここじゃ晒さないんですか?
0284名前は開発中のものです。2006/05/01(月) 20:40:07ID:nUaQGh3S
フリーのは、ふりーむ!とベクターで公開してる。
有料のはDLsite.com等で販売中。
0285名前は開発中のものです。2006/05/07(日) 00:14:23ID:W2WiM6Ar
知っている方がいらっしゃったら教えてほしいことがあります。

以前j2re1.4.1_02でフルスクリーンとウィンドウモードを切り替えるものを作ったのですが
1.5.0_06では解像度の変更が正しくうごかないという事に当たりました。

手順は
1)フルスクリーンにする
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
device = ge.getDefaultScreenDevice();
DisplayMode fullscreen = new DisplayMode(640, 480, 32, DisplayMode.REFRESH_RATE_UNKNOWN);
device.setFullScreenWindow(fullscreen);

2)排他を解除しウィンドウモードにする

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
device = ge.getDefaultScreenDevice();
device.setFullScreenWindow(null);

この後で1)を行った場合、1.4.1_02ではフルスクリーンで解像度が変わったのですが
1.5.0_06ではフルスクリーンにはなるが解像度が変わらないということになりました。

何かご存知の方がいらっしゃったらお願いします。
02862852006/05/07(日) 00:27:33ID:W2WiM6Ar
書き忘れていました。
1)では決まったフレームをフルスクリーン指定してます。

device.setFullScreenWindow(frame);

0287名前は開発中のものです。2006/05/07(日) 02:17:45ID:5a9PuC3k
元々フルスクリーンと行き来するとリークが発生するから起動時に選択させるほうがいい

ところで意味が分かりにくいのだが
1>2>1ってこと?
02882852006/05/07(日) 02:57:40ID:W2WiM6Ar
>287

>元々フルスクリーンと行き来するとリークが発生するから起動時に選択させるほうがいい

ありがとうございます、その方向で考えてみます。

>1>2>1ってこと?

そうです。
0289名前は開発中のものです。2006/05/07(日) 11:37:59ID:5a9PuC3k
いまやってみたけど画面ちゃんと切り替わったよ
02902852006/05/07(日) 14:11:36ID:W2WiM6Ar
>289

j2re1.4.1_02では、繰り返し切り替えたときにちゃんと解像度も一緒に変わったのですが
1.5.0_06ではフルスクリーンにはなりましたが、二度目以降のフルスクリーン切り替えで
解像度が変わりませんでした。(一回目はちゃんと解像度が変わるようです。)

もしうまく切り替わったのでしたらソース、上げていただけませんでしょうか?
0291名前は開発中のものです。2006/05/07(日) 14:15:43ID:5a9PuC3k
こんなかんじ

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice device = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = device.getDefaultConfiguration();
DisplayMode mode = new DisplayMode(640, 480, 32, DisplayMode.REFRESH_RATE_UNKNOWN);

JFrame frame = new JFrame(gc);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
device.setFullScreenWindow(frame);
device.setDisplayMode(mode);

Thread.sleep(1000);

device.setFullScreenWindow(null);

Thread.sleep(1000);

device.setFullScreenWindow(frame);
device.setDisplayMode(mode);
0292名前は開発中のものです。2006/05/07(日) 14:17:41ID:5a9PuC3k
注意事項としてウインドウモードとフルスクリーンモードで
色深度が違う場合テクスチャキャッシュとか全部作り直してね

異なる色深度で転送を行うとすごく遅くなる
02932852006/05/07(日) 14:20:50ID:W2WiM6Ar
ソース、ありがとうございます。
確認してみます。
02942852006/05/07(日) 15:30:17ID:W2WiM6Ar
>292
先ほどのソースありがとうございました。
フレームの非表示をフルスクリーンとウィンドウ毎にきりかえりため
毎度フレームをdisposeし、再作成していたが原因でした。
ところで、上記ソースのやり方でフルスクリーンのときにだけ
frame.setUndecorated(true);
を有効にしたいとおもい、いくつか試しているのですがうまくいっていません。
作成していたソースを載せておきますので、再度も一度だけご指摘いただけますでしょか?
02952852006/05/07(日) 15:33:08ID:W2WiM6Ar
以下がソースです。

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice device = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = device.getDefaultConfiguration();
DisplayMode mode = new DisplayMode(800, 600, 32, DisplayMode.REFRESH_RATE_UNKNOWN);

JFrame frame = new JFrame(gc);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

System.out.println("初期表示");

frame.setSize(800, 600);

frame.setResizable(false);
frame.setLocationRelativeTo(null);//中央配置
frame.setVisible(true);

Thread.sleep(10000);
System.out.println("フルスクリーンへ");
//frame.setUndecorated(true);//フレームの非表示
device.setFullScreenWindow(frame);
device.setDisplayMode(mode);

Thread.sleep(10000);
System.out.println("ウィンドウモードへ");
device.setFullScreenWindow(null);
0296名前は開発中のものです。2006/05/07(日) 16:01:17ID:5a9PuC3k
>このフレームの装飾の有効化と無効化を切り替えます。
>フレームが表示されていない時にだけ呼び出すことができます。

マニュアルどおりだと思うんだが

タイトルバーの表示、非表示はフレームが表示されているときは駄目
一度非表示にする必要があるよ
0297名前は開発中のものです。2006/05/07(日) 16:03:32ID:5a9PuC3k
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice device = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = device.getDefaultConfiguration();
DisplayMode mode = new DisplayMode(640, 480, 32, DisplayMode.REFRESH_RATE_UNKNOWN);

JFrame frame = new JFrame(gc);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setUndecorated(true);
device.setFullScreenWindow(frame);
device.setDisplayMode(mode);

for(int i=0; i<10 ;i++){
Thread.sleep(1000/2);

//ウインドウモード
frame.setVisible(false);
frame.dispose();
frame.setUndecorated(false);
device.setFullScreenWindow(null);
frame.setVisible(true);

Thread.sleep(1000/2);

//フルスクリーンモード
frame.setVisible(false);
frame.dispose();
frame.setUndecorated(true);
device.setFullScreenWindow(frame);
}
0298名前は開発中のものです。2006/05/07(日) 16:06:27ID:5a9PuC3k
あ、最後フルスクリーンモードで終わってるんでALT+F4な
02992852006/05/07(日) 17:03:17ID:W2WiM6Ar
丁寧な反応、本当にありがとうございます。
setVisible(false); の後でdisposeが必要なのですね、
わからずに数ヶ月引っかかっていました。
297でいただいたサンプルなのですが、最後のフルスクリーンの状態で
解像度が640, 480ではなく元に戻っていませんでしょうか?
これを何とかできないかなと
//フルスクリーンモード
frame.setVisible(false);
frame.dispose();
frame.setUndecorated(true);
device.setFullScreenWindow(frame);
device.setDisplayMode(mode);
としてみたのですが、今度はウィンドウモードの解像度が戻らなくなってしまいました。
これが一番最初の質問と同じ状態のようです。
0300名前は開発中のものです。2006/05/07(日) 17:32:54ID:5a9PuC3k
ウインドウモードのタイミングが指定がおかしかった


//ウインドウモード
device.setFullScreenWindow(null);
frame.setVisible(false);
frame.dispose();
frame.setUndecorated(false);
// device.setFullScreenWindow(null);
frame.setVisible(true);

としてごらん
■ このスレッドは過去ログ倉庫に格納されています