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

JAVAでゲーム作成

■ このスレッドは過去ログ倉庫に格納されています
0001JAVA初心者・・・04/01/17 22:47ID:eiE+Mw3o
はじめまして!!
今年に入ってからJAVAでゲームを作ってみようと勉強しています。
どなたか宝さがしゲームを作るうえで参考になるゲームとツール知りませんか??
知っていたら教えてください。<(_ _)>ぺこり
0047名前は開発中のものです。04/01/31 10:17ID:w5l48wti
>>46
公開しよーぜ
0048名無しさんは14才04/01/31 22:12ID:hh2D93X9
なかなかメインにたどりつかない……。
モノ作るのって大変だね。わかってはいたけど。

最低スペックの目標はセレロン400MHzくらい……にしたいなあ。
挫折したらG4-700MHzくらいの予定。
0049名前は開発中のものです。04/02/01 15:08ID:MnR+Lyp0
私も久しぶりに何か作ってみようかな…
いつも悩むのは、速度調整をどうするかってところ。
ミリ秒単位で確実に時間を計る方法が見つからなくて、
30FPSとかで安定して動作させられないんです。
0050名無しさんは14才04/02/01 21:08ID:fOPkl1f+
ああ、今日もメインにたどりつかず……。

>49
普通はTimerでだいたい10msecくらいまでは測れるんじゃないかな。
それ以下は物理的に無理なハードが多い気がする。
安定動作は、う〜ん。
遅延時間が大きくなったらFPSを落とすとかはダメかしら?
0051名前は開発中のものです。04/02/01 21:14ID:BE2pVZMt
仮にアプレットなどで公開をするつもりなら、
初めから10〜15FPSで遊べるように作ればいい。
2Dでムリに30、60FPSと出す必要なし。
0052名前は開発中のものです。04/02/01 21:17ID:lw1srjwx
>>49
ハードウェア依存なので不可能
FPSに依存しないように作るべし
0053名無しさんは14才04/02/03 00:05ID:6rtDLibz
たしかBio100%の人が「マリオは偉大だ」って言ってたけど、
今、わたしはツクールも偉大だと思っていたりして。
……来年の夏ごろの公開を目指そう。
0054名前は開発中のものです。04/02/03 15:55ID:5vbFE2g9
普通、ゲーム開発するなら、まずツール類を作るものだ。
というわけで、ツクール程度が作れなければ話にならんよ。
0055名無しさんは14才04/02/03 19:01ID:6rtDLibz
そうだよねぇ。
先は長そうだし、まったりまったり。
ツクールはDelphiだよね。
あのデータファイルの圧縮は単純だけど意表をついていて、チョット感動した。
0056名無しさんは14才04/02/03 22:42ID:6rtDLibz
がーん!
Javaを1.4.1から1.4.2にアップデートしたら、ゲーム中で描画される文字の色が変わった!
どこかで初期化忘れてるんかなあ。あうあう。
0057名無しさんは14才04/02/04 00:06ID:LWgzCY+W
配列作ったくせに、要素newするの忘れてた。超おバカ。
でもついでに文字色変更のエスケープシーケンスのバグ退治完了♪
00584904/02/04 21:07ID:6w0e1fuL
ちなみに過去に作ったプログラムではこうしていたよ。
メイン処理を半無限ループでぶん回す昔ながらのやりかた。
その1は実行環境によって極端な誤差が出でしまうんだ。

その1
 スレッド1 while(終了条件){メイン処理;wait();}
 スレッド2 while(終了条件){wait(33);notify();}

その2
 while(終了条件){
  メイン処理;
  sleep(待ち時間);
  if(1秒に1回){
   直前の1秒間の描画回数をチェックして待ち時間を調整;
  }
0059名無しさんは14才04/02/05 00:00ID:3xSHt1O0
>49サンのやりたいことはTimer#scheduleAtFixedRate()でできると思うんだけどどうかな。
わたしは画面の描画これでやってます。
アクションとかじゃないから正確である必要とかゼンゼンないんだけどね。
00604904/02/05 21:29ID:Qsr/iS2M
ありがとう。早速Timer、TimerTaskクラスをチェック、
どれくらいの精度が出るかテストプログラムを組もうと
した矢先、気が付くと
> 導入されたバージョン:
>    1.3

_l ̄l○ アプレットで作ってるんだった…
exception: java.lang.ClassNotFoundException: java.util.TimerTask
※IE6.0 + MicrosoftVM で実行
0061名無しさんは14才04/02/05 22:59ID:3xSHt1O0
そっか。アプレットじゃ使えないんだ。
知らなかった。ごめんね。
0062名前は開発中のものです。04/02/05 23:55ID:DW9dyzsn
>>60
appletを動作させるためのHTMLタグで
sunのVMを使うように指定すれば使えます

ツールを利用すれば特に悩まないと思います
appletでTimerTask等が使えることは確認しときました

http://java.sun.com/j2se/1.4/ja/docs/ja/guide/plugin/developer_guide/html_converter.html
00634904/02/07 00:08ID:UiLI4Lv9
重ねてありがとう。
ヘタレな自分には即実装というわけにはいかないけど、TimerTask自体の
性質についてテストしてみます。
スレッドの作成を乱発しているせいか、「動きがカクる」頻度が>>58の2よりも
高いような気がします。
ドキュメントに「固定頻度実行」と書いてあるとおり、処理落ちが発生した
直後は遅れを取り戻すために速い回転でrun()が呼ばれるようです。
006449 テスト04/02/07 00:12ID:UiLI4Lv9
import java.applet.*;
import java.awt.*;
class TimerTaskA extends java.util.TimerTask
{
 public Component compenent;
 public int count;
 public void run(){
  Graphics gr = compenent.getGraphics();
  if(gr != null){
   gr.clearRect(0, 0, 100, 16);
   gr.drawString(count/100+"."+count%100, 4, 14);
   gr.drawRect(count%100, count/100+20, 1, 1);
   count++;
   gr.dispose();
}}}
public class TimerTestApplet1 extends Applet
{
 java.util.Timer timer;
 TimerTaskA timerTask;
 public void init(){
  timer = new java.util.Timer();
  timerTask = new TimerTaskA();
  timerTask.compenent = this;
  timer.scheduleAtFixedRate(timerTask, 0, 10);
 }
 public void destroy(){
  timer.cancel();
}}
0065名無しさんは14才04/02/07 12:53ID:fA3+Cn/e
さあ気をとりなおして、今日こそメイン!
0066名前は開発中のものです。04/02/08 20:53ID:P+SbX93B
Javaで作る2Dゲーで床とか壁の判定する時って、やっぱしifの類で
「自キャラ座標が壁の座標と一致したら、ボタン操作無効」
として一個一個地道にやってくしかないんでしょうか?
質問系スレが無いんでここで・・・。意見聞かせて下さい。
0067名前は開発中のものです。04/02/08 21:24ID:gFVP5jpw
答えはYES。ただ、どれだけ簡単にできるかはその人しだい。
0068名前は開発中のものです。04/02/08 21:37ID:bR1dx6jB
>>49

ゲーム処理用のスレッド内で、System.currentTimeMillis()を監視する、とか。
0069名無しさんは14才04/02/08 21:42ID:jDa33yn9
うーん。歩くのって意外と難しい。
どうしてもスケートやってるみたいになってしまう。
0070名無しさんは14才04/02/09 02:46ID:VUMO8CDO
ようやく自然に歩くようになったけど……重い。
10キャラを10fpsで歩かせると、すでに800M〜1GHzクラスのハードがいるなあ。
やっぱりJava3Dやらないと厳しいかしら。
0071名無しさんは14才04/02/09 02:47ID:VUMO8CDO
うう、夜更かししすぎた。今日はもう寝よ。
0072名無しさんは14才04/02/09 14:11ID:+ZIoUGKf
MacとWinでCPU利用率が倍くらい違うなあ。Winで実行するなら1.8GHzくらい必要っぽい。
何でこんなに違うのかしら……?
0073名前は開発中のものです。04/02/09 14:54ID:4GHKSFKN
sleepを上げれば改善される可能性がある
00744904/02/09 22:57ID:/GqD/yBB
>>66
ボンバーマンのように壁の大きさが全部同じなら、
2次元配列に壁データを入れておくことになるね。
進行方向の要素を数点調べて、全部空なら移動
できると。

ドンキーコングの1面のような面構成だったり、
動く床がメインの構成なら、66のように総当りで
調べていくのが良いと思います。

>>68 System.currentTimeMillis()
ミリ秒単位の時間をきっちり返す実装には
なっていないようです。
0075名前は開発中のものです。04/02/10 01:33ID:ttbTnUhw
>>64
スケジュールやるときfixedはやめとけ
スワップ入ったときいっきにはやまわしになるから

1.4でいいのならTimerTask+フリップやればほぼ垂直同期とった綺麗なの動いてるよ
垂直同期はビデオの設定によるけどね

俺作るとjavaのゲーム(1.4.2なら)全然おもくないんだけど
500MHzもあれば大概40fps以上はいける
0076名無しさんは14才04/02/10 13:08ID:xCsQuF6a
あ、スワップのことぜんぜん考えてなかった。
固定遅延で、自動調整しよっと。

でも40fpsってすごい……というか、わたしがオバカなコード書いてるだけか。
0077名前は開発中のものです。04/02/10 13:29ID:ttbTnUhw
どういったゲームかにもよるね

ゲーム自体の処理が重いのならそれの改善は厳しいかもしれないけど
描画自体は思ったよりネックにならない
2Dゲームの場合はね

600MHzあれば60fpsもだいたいCPU使用率70%以下で回る

ポイントはVolatileImageつかわないことか
あれは透過関連うまく動かないはずだからスプライト量増えれば増えるほど厳しい
メモリの中で処理して結果をバックバッファに書き込み、フリップとすればいい
そしてそのメモリの中で作るバッファの作成は
Image work = gf.getGraphicsConfiguration().createCompatibleImage(320,240,Transparency.OPAQUE);
って感じで作ればいい

速度を重視するなら16bppあたりのフルスクリーンモードに切り替えてこの320*240のバッファを
2倍にして書き込むだけ
640*480のソフト描画はDirectXでも厳しいのでやめるがよろし

フルスクリーンモードとウインドウモードの2つ用意した方がいいよ
0078名無しさんは14才04/02/10 14:01ID:xCsQuF6a
VolatileImage、こんな便利なImageがあったなんて!
……存在知らずに、自分で作っちゃったよ。すごいマヌケ。

重たいのは多分透過色を含む大きなImageをガンガン重ねて合成してるからだと思います。
きちんとクリップして無駄な描画省けば、少しは軽くなるかも。
640x480はDirectXでも重いのかぁ。困ったな。ていうか、見透かされてる……。

助言ありがとうございます。
画面サイズだけは絵描きさんの要望で削れないのですが、がんばって工夫してみますね。
0079名前は開発中のものです。04/02/10 14:31ID:ttbTnUhw
2DSTGじゃないのなら30fpsでもいいんじゃないかな
2DSTGだけは最低限40fpsってところ

640*480の描画は1GHzくらいを対象にしているのなら問題ない
たぶん開発中にまた世の中のマシンの平均スペック上がっていく
1年後には1GHzを要求スペックにしても問題ないような気がする

VolatileImageしらないってことはフリップとかやってなかったのか・・・
んじゃ、ここおしえておくか
http://www5.airnet.ne.jp/sakuraba/java/laboratory/JDK1.4/contents.html
いっておくけどこれ結構前の文章
べつに最近高速化された訳じゃないのだ
みんなjavaのグラフィックスまわりには注目してないのかねぇ
0080名無しさんは14才04/02/10 15:45ID:xCsQuF6a
作っちゃったよ、とか言って、大嘘でした。
説明よく読んだら、VariousImageは作ってたものとはぜんぜん違うものだった。ふう。

直描画できたんですね。URLありがとうございます。勉強しなきゃ。
ぜんぜん知らなかったです……って、SDKドキュメントの新機能の章にもしっかり書いてあるなあ。
読んでないのバレバレじゃん。
明日一日かけて、画像周りのクラス書きなおそっと。

わたしが作ってるのは2DRPGです。一応ツクール+αレベルが目標。
とりあえず、Javaだから遅い、とか言われないようにがんばるつもり。
0081名無しさんは14才04/02/10 15:47ID:xCsQuF6a
×VariousImage
○VolatileImage

Variousは自分で作ってた方だった。うー、ボケすぎ。
0082名前は開発中のものです。04/02/10 18:36ID:ttbTnUhw
2DRPGなら30fpsでもいいし
むしろ戦闘エフェクトあたりは重い方が溜があるかんじでいいかも
バテンカイトスは絵は綺麗でもそのへんがイマイチなのが大杉なんだよね

Java2Dのαブレンドは通常合成はあっても加算合成はないようなので
自分で実装することになるかもしれない
00834904/02/10 20:23ID:anba1aLx
イメージが湧かないのでサンプルを作ってみました。アプレットです。
http://www.geocities.co.jp/SiliconValley-Sunnyvale/6003/sample/wall1/
描画周りは最も単純な手法で、アプレットのgetImageで読み取ったGIFファイルを、
同じくcreateImage(width,height)で作成したバッファに描画しています。

私は「フラっとページを訪れた人が軽く遊んでいくゲーム」を目指しているため、
初心者がオールインワン型のWindowsパソコンを買って何も設定を変えていない
状態で、追加プラグインをダウンロードせずに動かなければならないという
条件を自分につけています。
そこで、描画効率、動作速度の安定、効果音・BGMの再生、セーブデータの保存方法
にはいつも悩まされます。

みなさんが想定しているターゲットユーザ・配布方法はどんな感じですか?
0084名前は開発中のものです。04/02/10 20:37ID:eScm2IF2
>>83
Pen3 1GHzでもJ2SDK1.4.2だとFPS=32, INTERVAL=24出たよ。
あと、隊列を組むのは正面衝突したときに先に処理した方だけが反転するからでは。
↓な感じ。
衝突前:人→←人
衝突後:人→人→
0085名前は開発中のものです。04/02/10 21:37ID:ttbTnUhw
超低電圧版PentiumM1GHzで
J2SE1.4.2
fps32/interval29
CPU使用率10%くらい

軽いやね
00864904/02/10 23:14ID:anba1aLx
調子良く動いているみたいですね。名無しさんは14才さんのように
ある程度大きな画像を扱うとなると、この方法ではきつそうです。

話は飛びますが、音の再生のサンプルを作ってみました。
http://www.geocities.co.jp/SiliconValley-Sunnyvale/6003/sample/sound1/
データの通信量を極力少なくし、かつ多くの環境で再生させる方法って無いでしょうか?
0087名前は開発中のものです。04/02/10 23:23ID:ttbTnUhw
画像はごまかしごまかしでも1.1で扱えるからいいけど
サウンド周りがまともになったのは1.3からだしなぁ
きびしいやね
00884904/02/10 23:24ID:anba1aLx
>>84
なるほど、二人とも振り返るようにまじめに処理しないと、
自然に動き回ってるようには見えないわけだ。
00894904/02/10 23:30ID:anba1aLx
>>87
周波数も8000Hz固定だし、なんだかブツブツ音が途切れる感じ。
短い音を連続再生すると遅延も発生します。
ミニゲームを作る分には、それでも十分なんですけどね。
実行環境がヘタレな方がライトクリエイター(?)には有利というし。
0090名前は開発中のものです。04/02/10 23:48ID:ttbTnUhw
今だとランタイムのインストール簡単にさせることできるから
俺は苦労したくないな
http://www.java.com/ja/download/windows_automatic.jsp

サウンドだけはどうしようもなくてJava2に逃げたへっぽこの話なんで
我が道突き進んでくれぃ

ほんと全く解決不可能だった
効果音だけならまだいいけどねぇ
0091名無しさんは14才04/02/11 00:38ID:UcjbfHdV
FPS 28 INTERVAL 1くらいでした。

で、描画周りを全部書き直して、かなりの高速化に成功。
というか、元のが無駄が多かったんですけど。
400MHzくらいあれば10〜20FPSで普通に動きそうな感じ。
これから処理増やしていくとどうなるかわからないけど。

VolatileImageでもう少し早くなりそうなんですが、
わたしのところではcreateCompatibleVolatileImageの中でなぜか
しばらくするとOutOfMemoryErrorが出ます。
他のパソコンで試したらエラーは出なかったので、とりあえず相性かなぁ
とあきらめました。
BufferStrategyも試してみたけど、かえって遅くなっちゃったので保留です。
0092名前は開発中のものです。04/02/11 01:17ID:OWgEanPU
ループの中ででかいVolatileImageガンガン生成してるとか?
その変数のスコープをみてみるべし

BufferStrategyはバッファサイズを2にしてフリップ処理をしてますよね?
これ、DirectX・・・というかビデオまあ割の知識あるならわかるけど
ほとんどの環境で垂直同期とります
単純にベンチとるとマシンパワーが低い場合fpsは少し落ちますが
ティアリングのない綺麗な描画になります

0093名無しさんは14才04/02/11 13:04ID:UcjbfHdV
最初はでっかいVolatileImage作りすぎたせいだと思っていろいろ変えてみたんだけど、
どうやらそうじゃないみたい。
最終的には640x480を毎秒10回だけ生成して、古いのはすぐにflush&null代入
としてみたんだけど、やっぱりおんなじエラーになりました。
描画方法変えてBufferStrategyを使えばVolatileImageは使わないですむようにしたので、
とりあえず問題解消です。解消というか、逃げただけだけど。

話し変わりますけど、MacのVMはダブルバッファリングとかしなくても
画面がちらつかないんですよ。
パフォーマンス調べようと思ってバッファリングしない版を試しにWinに持って
いったら、画面ちらちらでひどかったのでびっくりして元に戻しました。
0094名前は開発中のものです。04/02/11 13:52ID:OWgEanPU
VolatileImageでの不具合がでた環境って具体的にはなんだ?
ビデオチップあたりが聞きたい

MacってMacOSXか?
あれはOS自体がウインドウバッファをちらつかせないように描画しているから
Windowsみたいなのとだいぶ違う

OSXのほうがシンプルでいいけどね
つーか、今GUI新設計したらだれでもそう作ると思う
0095%96%bc%96%b3%82%b5%82%b3%82%f1%82?P%82S%8d%cb04/02/11 14:04ID:UcjbfHdV
カードはGeForce FX 5200です。32MB。
やっぱりMacOSXのVMの問題なのかなあ。WinのSunVMでは問題でませんでした。
0096名無しさんは14才04/02/11 14:05ID:UcjbfHdV
がーん!名前が化けた。
0097名前は開発中のものです。04/02/11 14:14ID:OWgEanPU
基本的にヒープメモリが不足してなければ大丈夫
VolatileImageはVRAM足りないとヒープメモリ使うから

vi.getCapabilities().isAccelerated()

って感じで調べてみるといい

MacOSはその辺の実装が違うのか、デフォルトのメモリMAXサイズが小さいのか
MacOSの起動時のオプション違うかもしれないからわからないけど
ヒープサイズの可能性も高そうだから
-Xmx128M
とヒープメモリの設定してみては?
0098名無しさんは14才04/02/11 14:22ID:UcjbfHdV
ヒープの方は大丈夫だと思います。
Runtime.freeMemoryの戻り値は、OutOfMemory出るときも十分あったし。
なんでエラーになっちゃうのがわたし的には不可解。
isAcceleratedとかヒープの設定は後で試してみますね。
0099名無しさんは14才04/02/11 14:54ID:UcjbfHdV
isAcceleratedを試してみました。
残念?ながら常にtrueで、OutOfMemoryが出るときもfalseにはなりませんでした。

貼ってもしょうがないけど、こんな感じ。
java.lang.OutOfMemoryError
at java.nio.Bits.reserveMemory(Bits.java:619)
at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:95)
at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:285)
at apple.awt.DataBufferNIOInt.getBufferOfSize(DataBufferNIOInt.java:135)
at apple.awt.DataBufferNIOInt.<init>(DataBufferNIOInt.java:31)
at apple.awt.IntegerNIORaster.createNIORaster(IntegerNIORaster.java:26)
at apple.awt.CGraphicsConfig.createCompatibleImage(CGraphicsConfig.java:54)
at apple.awt.OSXOffScreenSurfaceData.createData(OSXOffScreenSurfaceData.java:33)
at apple.awt.OSXVolatileImage.createHWData(OSXVolatileImage.java:77)
at apple.awt.OSXVolatileImage.initAcceleratedBackground(OSXVolatileImage.java:87)
at sun.awt.image.SunVolatileImage.<init>(SunVolatileImage.java:98)
at apple.awt.OSXVolatileImage.<init>(OSXVolatileImage.java:70)
at apple.awt.CGraphicsConfig.createCompatibleVolatileImage(CGraphicsConfig.java:48)
at jp.gr.java_conf.nocon.reday.base.UserInterface.paint(UserInterface.java:116) //JFrame.paintをオーバーライド
at javax.swing.JFrame.update(JFrame.java:392)
まだ続くけど以下略。
これはバグパレード行きかも。
0100名前は開発中のものです。04/02/11 15:11ID:OWgEanPU
paintってもしかして毎フレームVolatileImage確保してるの?
それは問題ある希ガス
0101名無しさんは14才04/02/11 15:20ID:UcjbfHdV
がーん!毎フレーム確保しちゃいけないの?
……使い回しやってみます。
0102名無しさんは14才04/02/11 15:28ID:UcjbfHdV
同じVolatileImage使い続けるようにしたら怒られなくなりました。
ああ、ぜいたくは敵だったのね……。

エラーも出ないし、処理も速くなりました。
本当にありがとうございます。
がんばって完成めざしますね。
0103名無しさんは14才04/02/12 17:30ID:7aKkxoTY
日記を書いているような気がする今日この頃。

今日は画面のスクロールに挑戦中♪
あっさりできるかと思ってたら、意外と強敵。
画面更新通知のイベントがループしてハングしてるし……困った。
0104名前は開発中のものです。04/02/12 17:50ID:b4hZT/7C
イベントって自分のフレームワーク内のことだよね?
Swingの描画イベントは無視していいよ
0105名無しさんは14才04/02/12 19:30ID:7aKkxoTY
あ、そうです。自前のイベントです。
Swingのイベントはぜんぜん見てなかったり。

スクロールの契機に「絵が移動しました」イベント流用してるからいけないんだなあ。
「わたしを見て!」イベントを新設しよっと。
0106名無しさんは14才04/02/13 18:10ID:hMwbcsup
イベントはいまいちイメージがわかなかったので、
Cameramanインターフェース作成ちゅう。
我ながら安直なネーミングだなぁ。
そんな感じで、明日くらいにはぐりぐりスクロールできる予定。

……進みが悪い日はいまいち書くことがないね。
0107名無しさんは14才04/02/14 15:14ID:/FZU4ECn
スクロール完成♪

今気づいたけど、topを見てるとメモリ消費量が毎秒40kB位ずつ増えていくのが危険な予感。
0108名前は開発中のものです。04/02/14 16:36ID:AfuYsNqY
メモリーリークじゃなければメモリ使用量は気にしなくていいと思う
RuntimeのFreeMemoryあたりでGC動いてるか監視するのがいいね
0109名無しさんは14才04/02/14 21:28ID:/FZU4ECn
freeMemoryみてるとGCはちゃんと動いてるっぽいのでとりあえず大丈夫かなあ。
totalMemoryが変わらないのに、topの表示だけが……謎。

明日はマップでもつくろ。
0110名前は開発中のものです。04/02/14 22:01ID:N1atDb5V
>>109
プロファイラを使うと良さげ。

エクリプスならこの辺を参考に。
ttp://www.atmarkit.co.jp/fjava/rensai2/eclipse2_06/eclipse06_1.html
ttp://eclipsewiki.net/eclipse/index.php?Profiler%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3
非エクリプスならJINSIGHTとか。
ttp://www-6.ibm.com/jp/developerworks/java/jinsight.html
0111名無しさんは14才04/02/14 23:59ID:/FZU4ECn
すいません……Xcode使いなもので。
付属のSampler使ってみたら、VM自体の解析してくれてガッカリ。

今夜はpopcapで遊んでました。ああ、わたしのおさかなさんが……!
0112名前は開発中のものです。04/02/15 04:18ID:KU5gbX0i
pure javaのプロファイラだとこの辺りが有名かも。

hprof+HAT(最近はあまり使われていない気がする)
ttp://developer.java.sun.com/のどこか
HPjmeter(実は使ったことない)
ttp://docs.hp.com/ja/2858/web0-1251.html
0113名無しさんは14才04/02/16 16:45ID:SnyaQpG/
全然関係ないけど、今日は宿題忘れてピンチだった。

>112さん、どうもです〜。
PureJavaのもあったのね。今度使ってみます。

今はマップエディタ作るか悩み中。
ツクールのマップ読めるようにしようと思ったけど、
実際読めるように作ったらたら使用許諾違反だしなあ。

テキトーに作ってXMLか何かに落とせばいいかしら(←安易)。
0114名無しさんは14才04/02/16 18:48ID:SnyaQpG/
たらたら♪
0115名無しさんは14才04/02/18 23:31ID:X0zbF4LW
マップ作りは置いといて、GarageBandで遊んでました。
で、思ったんだけど、JavaってそのまんまじゃMP3とかの再生できないよね。
無条件に使えるMIDIのデータはいまいち手に入んないしAIFFはデータばかでっかいし。
JMFの追加必須とかはヤだしなあ。
0116名無しさんは14才04/02/20 07:48ID:nxvtS631
地面の上に芝生があってその上にわたしがいて、
わたしを操る運命は神様が作り、時の流れが握っている。
隣の芝生が青いのも運命のチカラで、
隣に行ったわたしは元のわたしじゃないかもしれない。
でもそれは結局運命。

運命とわたしの関係で悩み中。おぶじぇくとしこう?
……てゆうか、新しい宗教みたい。Java神様。
へんな宗教のおばさんがきたら教えてあげよ♪
0117名前は開発中のものです。04/02/20 08:34ID:O3GxsjmG
?(゚Д゚;三(;゚Д゚)??
0118名前は開発中のものです。04/02/20 20:06ID:5YVWqqkD
ついにデムパか・・・
0119名前は開発中のものです。04/02/20 21:25ID:iQWnf5FG
ここまでまじめにつきあってきたがとうとう悟りを開いたか
0120名無しさんは14才04/02/20 22:17ID:nxvtS631
がーん!わたしすっごいマジメだったのにぃ。
0121名無しさんは14才04/02/24 00:31ID:cCMRhn9d
まったりの日々……。

ところで、二点Point a = new Point(aX,aY)とPoint b = new Point(bX,bY)があるとき
dx = b.x - a.x; dy = by - ay;であるベクトル(だっけ?)dを作りたいんですけど、
dは何のクラスで作るべきなんでしょ?
最初dつながりでなんとなくDimensionにしてみたけど、みょ〜に違和感。
結局Pointにしちゃってるんだけど、これも微妙に違うような……。
0122名前は開発中のものです。04/02/24 00:45ID:CkCDH7ui
2値だけならPointで問題ない
が、名前が気にくわないとか拡張しちゃう予定があるとか考えると
Pointを内蔵するか継承、もしくは新規に作ってしまうほうがいいかも
0123名前は開発中のものです。04/02/24 04:52ID:hhdjFz7F
muu
0124名前は開発中のものです。04/02/24 13:02ID:a+AOgXxf
Java3D悪くないね。Direct3DRMみたいで。
これからはJava3D+VRMLでいくなり。
0125名前は開発中のものです。04/02/24 13:05ID:a+AOgXxf
>>電波御釜
Vector2dとか
0126名無しさんは14才04/02/24 20:16ID:cCMRhn9d
電波はしょうがないかなとか思うけど、オカマはちょっと悲しい。
ていうか、もしかしてさらし上げ?

>122さんのいう通り、Pointの名前変えて使おうかな。
Vector2dも手だけどdoubleまではいらないし、winの人とかはvecmath使える環境の人少なそうだし。
みなさんどうもでした♪
0127名前は開発中のものです。04/02/25 14:04ID:m/Y8IXxl
Javaって演算子オーバーロード出来ないのな。
vector1.add( vector2 );ってダサすぎ。かなりガッカリ。
XMLみたいにプリミティブ型を定義出来るようにするとか
せめてfloat4とかfloat4x4とか用意するようにすてほすィィ
0128名無しさんは14才04/02/25 17:03ID:ARHG1qlf
クラス設計ヘンだったかなあ。地面をうまく管理できない……。
0129名前は開発中のものです。04/02/25 18:47ID:XE+PtX5j
>>127
1.5でできるようになってなかったっけ?
うろ覚えなので自信なし。
0130名前は開発中のものです。04/02/26 11:05ID:R1Qiwg/0
>>129
演算子オーバーロードはない。
しかも、SUNは今後の導入にも否定的。
0131名前は開発中のものです。04/02/26 14:10ID:wf+RKCVI
>>130
本来複雑すぎるC++に対し〜っていうポリシーはわかる。
まあ仕方ないかって感じだね。(その割にはGenericsとか入れてるが。)
つうかfloat4などのプリミティブなベクトルクラスはどの言語でも必須だと思うなあ。
せっかくどのCPUにもSIMDユニットが付いている時代になったんだし。
仕様もCgをまんまパクれば問題なし。
0132名前は開発中のものです。04/02/26 14:25ID:1jY9CYNa
まあ、ゲーム作るヤツも含めて、数値計算するヤツは
大人しく他の言語を使えってこった。

by iアプリ開発者_| ̄|○
0133名前は開発中のものです。04/02/26 14:57ID:R1Qiwg/0
>>131
>float4などのプリミティブなベクトルクラスはどの言語でも必須だと思うなあ。

その辺りはJITで片付けるべき、というよりその為のJITでしょ。
まあ、JITの掛け方に関する指定も出来た方が嬉しいんだけどね。
0134名前は開発中のものです。04/02/26 15:37ID:KERBVAki
Genericsの場合は型をより強化するためのもので
自然じゃないのかなぁ
0135名前は開発中のものです。04/02/26 17:48ID:wf+RKCVI
>>133
いや、単にfloatやdoubleなどスカラー型だけを使う言語のプログラムを
SIMD使ってコード生成しろってのは厳しい話。つーか無理だよ。

0136名前は開発中のものです。04/02/26 18:03ID:33s9KynI
>>135
ttp://java.sun.com/j2se/1.4.2/1.4.2_whitepaper.html
SSE and SSE2 Instruction Sets for Floating Point Computation
って項目があるから一応対応はしているらしい。
0137名前は開発中のものです。04/02/26 18:46ID:wf+RKCVI
>>136
信じられないが、本当みたいだね。
ttp://www.mit.msn.to/misc/j2sdk1.4.2.html
ここなんて2.11倍だってさ。うそくせーしんじらんね。
0138名前は開発中のものです。04/02/26 19:06ID:wf+RKCVI
>コマンドラインオプション「-XX:UseSSE=0」を指定します。
こんなのもあるみたい、後で実験しる。
0139名前は開発中のものです。04/03/01 03:33ID:24Kq2JSz
jxta使ったゲーム出しても
初期設定できるかな?

0140名無しさんは14才04/03/02 12:48ID:W0CJyzOg
飲酒運転の車に特攻されてムチウチになりました。
しばらくお休みします。

はあ……うつだわ。
0141名前は開発中のものです。04/03/02 16:18ID:dWkMRuu+
うわーお大事に・・・
0142名前は開発中のものです。04/03/03 01:24ID:9bM7JDER
アプレットの領域内を一回クリックしないと
動作しないのですが、どうにかなりませんか?
0143名前は開発中のものです。04/03/03 08:57ID:x4jnmRCC
キーボードのこと?
フラッシュも同じだけどカレントオブジェクトがあわないとどうしようもないやね
1つのhtmlに複数のアプレットとかflashおけるから
一番手っ取り早いのはスタートにクリック使うこと

java2使うのならwebstart使えばもっといい
0144名前は開発中のものです。04/03/03 20:19ID:80+x+sMk
製作者様、携帯アプリ版にて活躍してください
0145名前は開発中のものです。04/03/03 23:10ID:x4jnmRCC
マルチポストうざいよ
0146名前は開発中のものです。04/03/04 03:35ID:2BAkZRo7
>>142
ページ内にアプレットが1つしかないなら、
public void init()
{
  ・・・
  requestFocus();
}
■ このスレッドは過去ログ倉庫に格納されています