Javaでゲーム作成 2本目
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2005/10/27(木) 09:43:50ID:dzSvRQXEゲーム作成以外の話題はム板(http://pc8.2ch.net/tech/)、
他言語に関する話題は他スレでお願いします。
前スレ
JAVAでゲーム作成
http://pc8.2ch.net/test/read.cgi/gamedev/1074347252/
テンプレは>>1->>10あたりを参照
0752738
2007/01/28(日) 03:54:34ID:rcpB4oX3return (Skills)Class.forName("skills."+jobName+"$skill"+No).newInstance();
}
try~catch文は省略していますが
この様にして内部クラスをオブジェクトとして得ました。
例としてSoldierクラスの内部クラスです。
public static class skill1 extends Soldier{
public skill1(){
skillName="剣士1";
}
}
JVMがstaticに関してどのタイミングでメソッドをロード?するのかは
分かりませんが 上述の通り、「上手いやり方」が見つかるまでこれで行こうと思います
初心者なのに、dojaはきついなぁ…
String.splitもStringTokenizerも無いので自分で作ってます…
0753名前は開発中のものです。
2007/01/28(日) 12:06:30ID:caDqapimそういうスレがあるはずだから
また、容量が少なかったり速度が出なかったりするような環境の場合、
本来あるべきアルゴリズムを端折ることが多いから勉強にはむかんね
0754名前は開発中のものです。
2007/01/28(日) 20:06:02ID:ItnxVFSkSkill を扱いたいのか Skills を扱いたいのかよくわからんが
int でナンバー振ってサブクラスがガチガチに定義するんなら
Skill の配列かリストで済むんじゃないのか
public abstract class AbstractJob implements Job {
protected Skill[] skills;
// ジョブのスキルを返す
public Skill getSkill(int no) {
return skills[no];
}
}
というかリフレクションの使いどころを完全に間違えてる
あれはいざという時に使う伝家の宝刀みたいなものだ
0755名前は開発中のものです。
2007/01/28(日) 23:07:22ID:caDqapimdojaとかいってることからしてそういう目的ではないだろうしな
RPG用フレームワーク作るんです!とかいうのならなおさら
基本的にメソッド先で生成したオブジェクトを返すって使い方はしないよ
自前で登録してコンテナへ登録、もしくはコンテナが自動的に生成のどちらかかと
そしてコンテナからインスタンスを取得する。場合にっては使いまわしたり
0756738
2007/01/29(月) 00:36:23ID:X8Jeor0Aお二方とも有難うございます
稚拙なコードを晒すのは恥ずかしいですが、本当に勉強になります。
生成時にコンテナに追加という形でやってみたいと思います。
754さんの意見も大変参考になります。感謝しています。
0757名前は開発中のものです。
2007/02/17(土) 08:06:32ID:L15CXcqa古い記事だけど起動が遅いのは今も変わらないよな
ttp://www2.plala.or.jp/Cool/okite/red02.html
■Flashで動作する3Dエンジン「Papervision3D」
ActionScriptに浮気したくなる今日この頃
ttp://gigazine.net/index.php?/news/comments/20070212_papervision3d/
0758名前は開発中のものです。
2007/02/17(土) 15:10:04ID:5v908nqHアプレットがすさまじかったのは原因はネスケで使ってたシマンテックJITの出来の悪さだろ
あれ起動中にネイティブに全部変換してる
おかげで1.3から標準でHOTSPOTVM搭載されるようになってVMのサイズが何倍にも膨れ上がったわりに
起動時間は何分の一にもなった
その後VMの起動速度はゆるやかに改善されていくことになるがJavaSE6は起動が急にはやくなったのは確か
適当なWEBに置くコンテンツとしてはFlashなりなんなりでいいだろう
ただ、規模がある程度大きくなり本格的なアプリとなれば別
0759名前は開発中のものです。
2007/02/24(土) 22:19:26ID:/rYZcxU7http://edony.tuxfamily.net/~grad/arkanae.tuxfamily.org/en/index.html
ソースコードもあり
こんなのがあったとは知らなかった
0760名前は開発中のものです。
2007/02/25(日) 00:29:28ID:PImIuZ8Lプログラミングを行う観点で見れば、
「開発環境死亡・ライブラリ設計死亡・Flash9でもJITの性能しょぼい」
と選択肢にも挙がらないぞ。
アニメーション作成ツールとして見れば素晴らしいが、
残念ながらアプリ開発には使い物にならない。
0761名前は開発中のものです。
2007/02/25(日) 12:31:39ID:6L67UnbH0762名前は開発中のものです。
2007/02/25(日) 19:01:35ID:LGf8AXIi「使い物にならない」のがFLASHなのか、おまいのプログラム開発力なのか、世の中の「FLASHアプリケーション」でも見ながらもう一度考えてみるんだなw
0763名前は開発中のものです。
2007/02/25(日) 21:47:35ID:o7vkhh81出来ることできないことがあってFlashはまだまだ制限は多い
アプリの種類によってはFlashでもいいこともあるが、開発コストとかそういうのもみてからな
0764名前は開発中のものです。
2007/02/26(月) 03:01:50ID:3IqZBjOxPhysics For Games Programmers
http://www.amazon.co.jp/exec/obidos/ASIN/159059472X/
0765名前は開発中のものです。
2007/02/26(月) 21:37:19ID:g0XTbe0A0766名前は開発中のものです。
2007/02/26(月) 22:47:55ID:YymhnNULttp://www.apress.com/book/supplementDownload.html?bID=418&sID=2642
0767名前は開発中のものです。
2007/02/27(火) 17:21:30ID:ZjZJQFQd初心者なのですが、こういう感じのはFlashで作った方が簡単なのですか?
0768名前は開発中のものです。
2007/02/27(火) 17:56:16ID:B4ufeums0769名前は開発中のものです。
2007/02/27(火) 18:54:43ID:ZjZJQFQd本屋行ってJavaの参考書を見てきます。
0770名前は開発中のものです。
2007/02/27(火) 19:00:07ID:B4ufeums比較的新しい書籍でもなぜか10年前のJavaの環境用につくっていたりするし
>>11のところにあるライブラリやゲーム、過去の日記がわりと参考になる
0771名前は開発中のものです。
2007/02/27(火) 19:02:10ID:OwhxanSJもちろん java で覚えた事は他の言語でも役に立つけど。
つまり初心者が目的の作品を完成させるまで、
という意味では flash の方が簡単。
プログラミングそのものに興味があるなら java
それらしいものを作りたいだけなら flash でいいとおもう
0772名前は開発中のものです。
2007/02/27(火) 19:10:29ID:IkeFh1JT保守性考えたらjavaだよな。
javaゲームはハードウェアアクセラレータ効かんとバリバリの3Dとか無理だが。
0773名前は開発中のものです。
2007/02/27(火) 19:12:53ID:B4ufeumsだが、flashは開発環境がお粗末なのでお世辞にも初心者が作りやすいとはいえないのが癌
JavaSE6ならJavaスクリプト+Javaのライブラリという使い方も出来るがIDEのお世話になることも出来ないので
ある程度の規模になるときつい
0774名前は開発中のものです。
2007/02/27(火) 19:50:28ID:3CmlaFoIそれを避けるためのオマジナイが多いとか聞いたけどこれは本当?
あとは>>771に同意。
0775名前は開発中のものです。
2007/02/27(火) 20:47:13ID:IkeFh1JTバザールモデルの基本・・・
とか言ってみる。
結局間接的にOSSなライセンスされてんだし。
0776名前は開発中のものです。
2007/02/27(火) 21:20:09ID:1qONjX2aずいぶん長い間いじってる割に画面が小さくて見づらい、flashの方が簡単に作れるんじゃないの?音もかなり悪いし
0777名前は開発中のものです。
2007/03/01(木) 11:25:25ID:Q/MrFJlJけっこうゲームらしくみえる
0778名前は開発中のものです。
2007/03/01(木) 12:14:46ID:ycm+eBTUむしろFlashのほうが制限が大きすぎる
0779名前は開発中のものです。
2007/03/01(木) 21:03:18ID:8CEVVUMCアプレットからの利用では制限があったような気がする。
ひょっとしてJava1.1辺りでも波形を生成して発音可能?
0780名前は開発中のものです。
2007/03/01(木) 21:26:44ID:J8EC7Q4JAS2で3000行以上のコーディングが必要なもの書いてみろ。
開発環境は酷い、ランタイムエラーを吐かないで正直死ねるぞ。
0781名前は開発中のものです。
2007/03/01(木) 21:28:47ID:BnQANlH3それでもアポロ登場まではアプレット比較前提だが
0782名前は開発中のものです。
2007/03/01(木) 22:56:33ID:J3C3KVJNJavaSoundは1.3以上
>>781
ゲーム用途ならWebStartのほうがいいんじゃね?
0783名前は開発中のものです。
2007/03/02(金) 04:04:27ID:Isc+NXUT開発者がwebstartに対して無知だから使いこなせてないんじゃね?
鯖丸ごと立てるかホスティングしちゃう他国と違ってレンタルスペース主体の日本じゃwebstart置けないしね。
クリック一つで必要なもん全部落としてキャッシュして後は差分だけネット越し・・・他はスタンドアローンと同じってのは使う側から見れば楽で良い。
同じ事はMEのAMSで出来るけどあっちは実装依存ヒドスw
0784名前は開発中のものです。
2007/03/02(金) 12:01:55ID:AlxNYkg40785名前は開発中のものです。
2007/03/02(金) 22:28:33ID:e7ng/jU40786名前は開発中のものです。
2007/03/03(土) 00:52:32ID:LWiJuDbd0787名前は開発中のものです。
2007/03/03(土) 07:49:54ID:94HMLa1l0788名前は開発中のものです。
2007/03/03(土) 09:09:45ID:Lb6a9eHr0789名前は開発中のものです。
2007/03/03(土) 09:10:53ID:vVu9iFKK0790名前は開発中のものです。
2007/03/03(土) 12:49:41ID:e8MDKGEx0791名前は開発中のものです。
2007/03/03(土) 14:05:57ID:YkFSkvir0792名前は開発中のものです。
2007/03/03(土) 14:54:27ID:S2NfJpKC0793名前は開発中のものです。
2007/03/03(土) 16:27:50ID:cZ+W9Vw8更にJava Web Startもインストールしないと動かないんですね。
ttp://sdc.sun.co.jp/java/docs/products/javawebstart/ja/download-windows_ja.html
helloサンプルがダウンロードになるので、混乱してしまった。
今のところJava Web StartはWindows版だけ?
0794名前は開発中のものです。
2007/03/03(土) 17:03:50ID:nfMBIjTB0795名前は開発中のものです。
2007/03/03(土) 17:31:56ID:cZ+W9Vw8夢のJava Web Startのデモが動いた〜
ttp://java.sun.com/products/javawebstart/demos.html
もう少しアクションするゲームが見たかったなあ
なぜか日本語サイト行くと動かないです。
0796名前は開発中のものです。
2007/03/03(土) 17:40:52ID:6WDz0MUgjdkだけだった?
0797名前は開発中のものです。
2007/03/03(土) 17:51:56ID:lyCQr1W4ttp://www.java.com/ja/download/faq/java_webstart.xml
>Java Web Start ソフトウェアの入手
>Java Web Start ソフトウェアは、Java Runtime Environment (JRE) のコンポーネントで、JRE と一緒にインストールされます。
0798名前は開発中のものです。
2007/03/03(土) 18:13:05ID:xt9rX0Kwブラウザ閉じればまたダウンロードが入ってしまう
あとは署名関係が5.0から柔軟になったのでライブラリが使いやすくなったというのは大きい
0799名前は開発中のものです。
2007/03/03(土) 21:37:25ID:4m5N8dVe0800名前は開発中のものです。
2007/03/03(土) 23:59:20ID:sBNSOExJだったと思うのだけど...
0801名前は開発中のものです。
2007/03/04(日) 00:33:57ID:u4tLbN0aブラウザのディスクキャッシュがある
>>800
sunがハードウェアアクセラレータ利かす前にcocoaと統合してOpenGL使っちゃったから描画周りが違ってたり、5.0の途中までしか出てない。
0802名前は開発中のものです。
2007/03/04(日) 01:51:19ID:KQd1C5T20803名前は開発中のものです。
2007/03/05(月) 22:47:43ID:b9ULYpEbhttp://fivedots.coe.psu.ac.th/~ad/
http://fivedots.coe.psu.ac.th/~ad/jg/
http://fivedots.coe.psu.ac.th/~ad/jg2/
0804名前は開発中のものです。
2007/03/06(火) 14:55:45ID:VaqQcumjPro Java 6 3D Game Development(発売予定)
Killer Game Programming in Java
0805名前は開発中のものです。
2007/03/07(水) 04:01:52ID:uOMRHvf+同じ Java5 SDK、同じ DirectX8(笑) を入れたはずなのに
2k で普通にサクサク動く画面が me ではものすごく重くて意外。
ウィンドウモードでのゲームを作りたくて、
あらかじめ BufferedImage から int[] を取得しておいて
そいつに描画して JFrame に貼り付ける、という処理を
wait() と Timer、notify() を組み合わせる常套手段で回してるんだけど
このどこかで 9x系 = 本質的に 16bit てのが足かせになってるのかな。。。
タイマの精度か、synchronized のコストか。。。
今まで C++ で書いてた時は、ここまでの差は見た事なかったんで
ちょとショックですた。。。
0806名前は開発中のものです。
2007/03/07(水) 11:55:36ID:zPOySlRdソフトウェア描画は60fpsやるなら320*240くらいが限界だね
0807名前は開発中のものです。
2007/03/08(木) 06:19:38ID:K32nYRwNdirectX9以降のカード+ドライバだとdx8の対応がいい加減になって来てる。
まあ、javaが5.0ならハードウェアはあんま期待出来んが・・・
0808名前は開発中のものです。
2007/03/09(金) 02:15:59ID:De8bQ7Op色深度は両方とも32bit。
カードは6年前のDX8全盛期のもの。
だからおいらなかなかDX9に手出しにくいのですよ。
そんなわけで今プロファイラ勉強中。楽しくて萌え。いや萌えとかないけど。
0809名前は開発中のものです。
2007/03/09(金) 02:36:59ID:uJO/ivat組み方によっては差が出るだろうね
プロファイルとればどこが遅いのかすぐにわかるはず
勉強することもないのでは?
IDEが一発で円グラフや棒グラフでビジュアル化してくれるし
0810名前は開発中のものです。
2007/03/09(金) 04:25:06ID:dk7DCFktこりゃベンチマークでマシン側の2Dと3D性能調べた方が良いね。javaの問題じゃなさそう。FF11がDX8世代だからちょうど良いと思うよ?
後はまあ、メモリの転送速度とか?java自身は十年前でも徹底的に叩きあげればそれなりに出たからね。
下手するとDX8末期に出た
イリュージョンのエロゲすら危ういかもしれんし・・javaで演算量を馬鹿みたいに増やしたベンチ組むと顔出すかも。
5.0だと初めから性能が大方バランス良く出てるから叩き甲斐の無いイケナイ子になってしまって残念。
6.0なんてそりゃあもう・・・再コンパイルなしであの速度はビビった。調教師いらねぇ。
けどサポートがxp sp2以降なんだよね。
vistのドライバが出そろってから乗り換えようと思ってる奴には正式サポートはなしですか?
0811名前は開発中のものです。
2007/03/09(金) 10:54:20ID:pyER6LIF6.0っつーのはJava SE 6のことか?
どうでもいいことかもしれんが、Java SE 6のサポートはWindows2000以降
(厳密にはWindows2000以降とは書かれてないが面倒なので他バージョンは省略)。
XP SP2以降でなければならないとはどこにも書かれていない。
ていうかすでにSunは6.0といった名称は使っていない。Java SE 6。
こういうことは調べてから書いてくれよな。
そういう俺はWindows2000ユーザー。
サポートがXP SP2以降とか書いてあったので焦ったぜ。
0812名前は開発中のものです。
2007/03/09(金) 12:18:07ID:e7LFbbBG動くがsp2移行にしろインストール続けるか?って聞かれた。
システム要件の所にはサービスパックの事までは書いてないはずだし。
書いてあるのは98,MEはサポート外ってだけ
0813名前は開発中のものです。
2007/03/09(金) 21:59:28ID:9+hAo8dr> Javaのゲームの本たくさんあるけど、比較的まともなのは14歳からとかいうやつだけだったような
そう、15歳からはじめる Javaゲームプログラミングとかいう題名の本、結構良いよね。
とにかく、読みやすいし、アクションゲームの基礎をきっちり学べる。
画像、MIDI,、wav、地形スクロール、タイマー とか。
ただし、この本を買うのは恥ずかしい。
あと、はがきを送ると、オマケPDFがもらえるとあるのだが、まったく返事なかった。
サポート宛にメール送っても返事も返さない出版社である。
0814名前は開発中のものです。
2007/03/09(金) 23:51:00ID:QfQeHSSr0815名前は開発中のものです。
2007/03/10(土) 08:06:06ID:5n5eAt2115歳からはじめるjava〜は当たりだった。
pdfはこれか
ttp://www.rutles.net/books/134.html
だれかこれ読んだ事ない?
ttp://www.amazon.co.jp/Javaゲームプログラミング-アルゴリズムとフレームワーク-長久-勝/dp/4797318422/ref=pd_sim_b_3/250-1688549-7177063
0816名前は開発中のものです。
2007/03/10(土) 09:32:39ID:4+e7EI8M0817名前は開発中のものです。
2007/03/10(土) 11:21:26ID:+DX9YtFE古いJavaで動くように書かれてるんだよね。
新しいJavaを使いたかった俺としては少し物足りなかった。
0818名前は開発中のものです。
2007/03/10(土) 12:10:01ID:xgekqMwwエロゲでも作る?
>>817
1.4.2,5.0,6と全部別モンだから新しいっても書く方はバージョン毎に出せるよね。
何処ぞのeclipse本の様に
0819名前は開発中のものです。
2007/03/10(土) 12:30:12ID:/HVMBhqBどの本について?
>>818
最新版対応とかかかれていて1.1時代のコードの本大量にあるから困る
音を出すにはauファイルにコンバートしましょうとかみると泣けてくる
なんで10年前のままなんじゃぁと
0820名前は開発中のものです。
2007/03/16(金) 02:12:26ID:xob5GmNSやさしいJava第二版なんて5.0対応とか言って触れてる言語仕様は前版(1.4.2)のままで5.0仕様には一切触れずにコードもなく加筆しただけだった気ガス・・・
ただ単にこの本のサンプルコードがそのまま5.0のコンパイラ通るだけ。
当たり前だのくryと言いたい所だが小一時間・・・
0821名前は開発中のものです。
2007/03/21(水) 20:05:26ID:PxlWoCAm[Javaでゲーム作りますが何か?]ttp://javagame.main.jp/
を見ながらコーディングしています。
[ボールを動かす]http://javagame.main.jp/index.php?%A5%DC%A1%BC%A5%EB%A4%F2%C6%B0%A4%AB%A4%B9
で挙動が理解できないことがあります。
サンプルどおりうつと、おもったどおりなんですが、クラス構成を変更すると、移動元のボールが削除されず、棒状態で描画されてしまいます。
ソースをミテモ理由が分からなかったのでコメントをもらえないでしょうか?
・変更後クラス構成
Sample.class
MoveBall.class
MainPanel.class
・実装
Sample -> main()があり、main()内ではMoveBallインスタンス、MoveBall.work()呼び出し の2つ
MoveBall -> サンプルとほぼ同じ、main()内のインスタンス化を削除、main()内の処理をwork()に変更
MainPanel -> サンプルと同じ
・環境
JDK1.5.0_11
Window Vista
0822名前は開発中のものです。
2007/03/21(水) 20:14:18ID:p5zCnQO1ソースあっぷしてもらわんと
0823821
2007/03/21(水) 21:52:26ID:PxlWoCAm自己解決しますた。
>>822スマソ、おっしゃるとおりでした。クラス構造はまったく関係ない箇所でした。
何がおこったのか簡単に書いておきます。
MainPanel(JPanelのサブクラス)内に、コンポーネントを描画するメソッドとしてpaintComponent()があるのですが、その中で
paintComponent(Grahics g) {
super.paintComponent(g);
//以下青いボールの描写が続く
}
と書く箇所で、以下のミスをしていました。
super.paintComponents(g);
本来JComponent.paintComponent()を呼び出すのを、Container.paintComponents()を呼び出してしまったのが原因でした。
#JComponent.paintComponent()とContainer.paintComponents()の違いは良く分からず
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/javax/swing/JPanel.html
0824名前は開発中のものです。
2007/03/21(水) 22:02:54ID:p5zCnQO1普通にfillしたらええ
0825821
2007/03/21(水) 23:10:05ID:PxlWoCAmしかし現状ではなぜ必要/不必要なのか、分かりません。
Java Tutorialに引き篭もってきます。λ............
ttp://java.sun.com/docs/books/tutorial/ui/index.html
0826名前は開発中のものです。
2007/03/22(木) 00:48:34ID://UyzQId0827名前は開発中のものです。
2007/03/29(木) 03:53:53ID:V9bhDi93自分で調べてもこれ以上わからなかったので、お力を貸して頂けないでしょうか?
単純に、Sun のチュートリアルのとおりに排他的にフルスクリーン化しました。
↓のようにゲームループを作って、アクティブレンダリングを行い、
もちろん bufferStrategy を使ってページフリッピングを行っています。
↓のを1秒間に実行できる回数が、ウィンドウモードに比べて
フルスクリーンだと激減します。(→800x600x32xUNKNOWN)
do {
update();
Graphics2D g = (Graphics2D)bs.getDrawGraphics();
rendering(g);
g.dispose();
if(!bs.contentsLost()) bs.show();
}
これが、αを使ったりすると、ウィンドウモードでは 40fps 出るのに対してフルスクリーンでは 3fps。
明らかにお前のやり方間違ってるということですよね。
rendering(g) をコメントアウトしたときでも、ウィンドウモードは 1000fps、
フルスクリーンで 60fps でした。この60という数字を見るとふと505さんの発言に関係している気がしたんですが、
調べてもわかりませんでした。ここを見れば?でも結構ですんで、よろしくお願いします。
0828名前は開発中のものです。
2007/03/29(木) 09:34:49ID:DOhi2zRK0829名前は開発中のものです。
2007/03/29(木) 16:17:47ID:TdF2VMR1あとJava2Dのアルファブレンドはソフトウェア描画なのでネイティブなVRAMにバッファが置かれると大幅に遅くなる
そもそもフルスクリーン時で、というか高FPS時にイベントベースでの描画はつかうものではないぞと
0830名前は開発中のものです。
2007/03/29(木) 17:47:03ID:QM1oZ8YSそれを使ってて描画速度を上げる為のものじゃないってイメージだったけど
それで合ってるって事かな?
0831827
2007/03/29(木) 18:09:59ID:V9bhDi93800x600 のウィンドウを作ってます。フルスクリーンでは 800x600x32 にしました。
ウィンドウの初期化時にフラグでフルスクリーンとウィンドウモードを場合分けしてます。
要するに描画ルーチンはウィンドウモードでもフルスクリーンでも
同じゲームループ(上に描いたやつ)を使ってます。
αを使ったら激遅になるのはわかってますが、αを使ったときに
フルスクリーンでここまで遅いというのが納得いかなかっただけです。
このやり方ってイベントベースっていうんですかね…。
フルスクリーンにすると処理範囲も狭くなるし、排他的に画面全体を使うとなると
う〜む、どう考えてもフルスクリーンの方が速いはずではないんですかね…。
一応、大枠はここのやり方を真似てるつもりです。
ttp://fivedots.coe.psu.ac.th/~ad/jg/ch03/index.html
0832名前は開発中のものです。
2007/03/29(木) 20:38:15ID:TdF2VMR1あってない
0833名前は開発中のものです。
2007/03/29(木) 20:42:13ID:TdF2VMR1フルスクリーン時描画してるのはVRAM
ウインドウ時描画しているのはメモリ内ビットマップ
あわせるのならまずメモリ内のバッファで描画をしてそれをVRAMへ転送とする
描画の仕方が大幅に違うのだから速度も大幅に違うのは当たり前
イベントベースってのはみまちがいだったようだ
updateというメソッドがあったのでな
0834名前は開発中のものです。
2007/03/30(金) 10:14:03ID:CxiJR9tXRPGを作っていて、
マップと自キャラを表示するところまでは
作ったのですが、NPCを表示させる
いい方法が思いつきません。
背景画像のように、固定ならいいのですが、
動き回るNPCをうまく表示できません。
効率のいい表示方法があれば教えてください。
いまは、
1.背景描画
2.自キャラ描画
3.表示範囲内にいるNPCを探し、描画
今は、この3の処理が無駄な動きになっている
気がします。
0835名前は開発中のものです。
2007/03/30(金) 14:54:44ID:QwdAmNT9とりあえず MVC でやってみると単純になるよ。
1. モデルを次の時間に進める (キャラ座標の計算など)
2. ビューがモデルの内容をまとめて描画 (キャラの座標は 1. で計算済み)
あと表示範囲内の判定はJVMも勝手にやってくれるので、必要になったら実装でいい。
0836名前は開発中のものです。
2007/03/31(土) 14:47:41ID:aOuaJNjw画面に表示されないから無駄かもしれないけど、マップのキャラクターが多くなってもそんなに重くはないんじゃ・・・
0837名前は開発中のものです。
2007/03/31(土) 15:21:06ID:bPcXSKJZクリップ外に描画すること自体は重くはないのだが、
その前にテクスチャ座標とか計算して渡す処理だけははいるから
重くはならないというのは間違い
画面外かどうかの判定なんてスプライト描画処理で一括して扱うだろうからいれとけ
最初はまったく処理をしないラッパでいいから
0838名前は開発中のものです。
2007/04/02(月) 00:03:15ID:0q+4yudy0839名前は開発中のものです。
2007/04/02(月) 11:01:35ID:M2CzSpdn画面外のキャラも、さほどの数にはならないので、
描画する方向で作成してみます。
0840831
2007/04/03(火) 01:04:07ID:Wawfbgtrう〜む、色々試してますがウィンドウで BufferStrategy 使った場合も
VRAM直…ではないんですかね…
505さんの
>フルスクリーン時は垂直同期取るのに対してウインドウモードは取らない
って何か関係してませんかね?そもそも垂直同期って言葉自体なじみがなかったんですが、
垂直同期を取ってるのでいくら処理が速くても bs.show でリフレッシュレート以上に
ならないようになってる、と考えるのは間違いですか?
それだとしてもα使って 3fps って明らかな処理落ちか…う〜む…
0841名前は開発中のものです。
2007/04/03(火) 02:08:11ID:tJ3eBjgjVRAM直になるかはVM実装(つまり環境)依存
でも問題はなかろう?
Windowモードと同じようにいったんメモリ内で作ればいい
どういうゲーム作ろうとしているのかにもよるけど
あとは逆に積極的にハードウェアアクセラレーションを使うという方法もある
>>11のところでOpenGL対応してJava2D以上の表現が可能になったようだ
Java2Dはゲームで多用する加算合成がないしね
0842名前は開発中のものです。
2007/04/03(火) 11:37:06ID:QAPO4Fq8これスゲーな
0843名前は開発中のものです。
2007/04/03(火) 16:29:50ID:Js4qFq6o前見たときあまり内容無かった気がしたが地味に進めてるのね
今後に期待しとこ
0844名前は開発中のものです。
2007/04/04(水) 12:34:42ID:xNft8wzX確かに遅すぎるようにも思うが、それだけの情報じゃ何とも言えない。
α使わないようにしてみたり、rendering(g)の中身を1行ずつコメントアウトしてみたりして原因をもっと追求してみたら?
フルスクリーン時にのみ毎回妙な処理してたりしないかい(毎回DisplayMode変更してたり…さすがにそれは無いか)
ともかく・どの部分で遅くなっているか・現象を再現できる最小限のコードはどんなか をもっと追求した方がいいと思うよ。
0845名前は開発中のものです。
2007/04/05(木) 23:12:06ID:IyGK/jzk使ってる奴居る?
0846名前は開発中のものです。
2007/04/06(金) 00:02:37ID:xOHyAwJg0847840
2007/04/06(金) 21:28:03ID:/J9SjvCfrendering(g)の中身を1行ずつコメントアウトしてみたりってのは
やってるんですが、rendering の中身を空にすると今度は bs.show で
時間かかってたりして、どうにも思うように動いてくれないんですよね。
つまり、プログラムの動作速度をはかって原因を探るだけでは解決できず
そこで、ここで皆様の力を借りようという経緯です。
コードはどうあがいても結局 60fps になってるんですよね…。
BufferStrategy は実装依存、なんですね。
15歳から始めるJava〜ではウィンドウのみのサンプルがあって
そこで「BufferStrategy はビデオメモリに直接書き込むので高速」と
断言してあったような気がしてそこは疑ってませんでしたが。
実装依存としてウィンドウモードと同じ方法を用いる、という方法は
そういえばまだ試してませんでしたね。一度試してみます。
0848名前は開発中のものです。
2007/04/07(土) 02:14:29ID:2RXqF7NFだからメインメモリでの描画はどうなんだと
0849名前は開発中のものです。
2007/04/07(土) 07:28:23ID:Y1V3BpGY0850名前は開発中のものです。
2007/04/07(土) 08:23:33ID:2RXqF7NF0851名前は開発中のものです。
2007/04/07(土) 11:27:10ID:GIyVfDKh指定するとD3D。javaでのOpenGLとD3Dの基本的な使い方は同じで
どっちも極力VRAMに置こうとする。
けどだからと言って早くなるわけじゃない。
■ このスレッドは過去ログ倉庫に格納されています