2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

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

Javaで作るスタンドアローンゲーム

1 :名前は開発中のものです。:2012/12/27(木) 16:04:18.62 ID:rl+qGRHn.net
スレタイはアプレットとの対比的な意味と考えてください。
Javaでのゲーム開発は賛否ありますが、国外では割と盛んになってきているように思います。
裏を返せば日本語だけでは情報が得辛い状況であり、寂しく開発してる人が多いのでは・・・。

関連スレ
JAVAアプリでゲーム
http://toro.2ch.net/test/read.cgi/gamedev/1033926010/


参考になりそうなサイト
・どのイメージタイプを使うべき?
http://weblogs.java.net/blog/chet/archive/2004/08/toolkitbuffered.html
・弱点と言われる?ベクタグラフィックス関連の改善
http://docs.oracle.com/javase/1.5.0/docs/guide/2d/flags.html
・大量のソースコードを公開して下さっている国内サイト
http://aidiary.hatenablog.com/entry/20040918/1251373370
・Java 2D games tutorial
http://zetcode.com/tutorials/javagamestutorial/
・出入りが最も盛んな?フォーラム
http://www.java-gaming.org/index.php
・スプライトシートの切り方等(国内)
http://sky.geocities.jp/kmaedam/java2/java2.htm

動画
3D Game Programming tutorial
http://www.youtube.com/watch?v=iH1xpfOBN6M

411 :名前は開発中のものです。:2015/02/17(火) 01:02:02.75 ID:chIOmG3A.net
>>410
そのレスで、もう一個質問したいことを思い出しました
私はシミュレーションやRPGが作りたいです
色々と、windowを作る必要があると思うのですが、ゲームの場合、それらは自作すべきですか?

たとえば、モンスターが出てきたときに、windowで「たたかう」「にげる」「防御」「魔法」とか表示するとします
その場合、その4個の選択しを表示する枠のようなものはJavaのDialogを使うべきなのか、それとも自前で絵として描画すべきなのかどっちなのかイマイチわかりません
一般的な方法を知りたいです

仮に、自前で絵として表示する場合、SwingでもJavaFXでもあんまり変わらない気になりました

412 :名前は開発中のものです。:2015/02/17(火) 03:25:28.71 ID:6qHepVXs.net
自作というか、継承してカスタマイズするパターンが一番多いよ
JPanelを継承してCommandPanelとか、そういう感じ。
ボタンとかも押した時のイベント処理とか画像の変化とか備わってるものをベースにするのが現実的。

413 :名前は開発中のものです。:2015/02/17(火) 10:37:33.20 ID:gXwJ1qVD.net
guiを自前で実装しようとするとフォーカス制御という面倒事が待ってるからswingなりfxなり使った方が手堅いよ。

414 :191:2015/02/22(日) 11:24:59.12 ID:x5Svrr+/.net
199を参考にマップの処理を実装しようとしているのですが、いまだに詰まっていることがあります。
現在実装中の方法
1000万x1000万等の巨大なマップは自分じゃ一気に作れないので、20x30位のエリアを何個か作り最後に結合する。
一エリアはpublic class Area {
private int[][] map = { {1,1,...,1,1}, .. {1,0,...,0,1} };に格納。
マップはpublic class Map {
    private Area[][] map;//全体地図
private int[][] area;// 画面に表示する範囲(エリアじゃない)
map[0][0] = new Area(1);map[0][1] = new Area(2);map[0][2] = new Area(3);
map[1][0] = new Area(4);map[1][1] = new Area(5);map[1][2] = new Area(6);
map[2][0] = new Area(7);map[2][1] = new Area(8);map[2][2] = new Area(9);のように格納。

そしてプレイヤーの現在位置からどの”エリア”にいるかを算出して
int indexTPX = (int) (topLeft.getX() / (areaWidth * TILE_SIZE));//topLeftは表示画面の為の座標
int indexTPY = (int) (topLeft.getY() / (areaWidth * TILE_SIZE));
area = map[indexTPY][indexTPX].getArea();

そのエリアを描画する。

問題は、例えばmap[0][0],map[0][1],map[1][0]とmap[1][1]の境界付近(+)にプレイヤーがいて
「そのときの描画はどうやればいいのか?」です。
for (int i = 0; i < areaHeight; i++) {for (int j = 0; j < areaWidth; j++) {.....}}だと4つの該当するエリア描画できないし。

415 :名前は開発中のものです。:2015/02/22(日) 12:11:59.61 ID:9tzD8toT.net
先ず、更新と描画は別。

416 :名前は開発中のものです。:2015/02/23(月) 10:06:47.59 ID:Lz998WDk.net
表示される範囲座標一つ一つ、どのエリアのどこの座標になるか見ればいいんじゃないの。

417 :名前は開発中のものです。:2015/02/23(月) 12:44:13.38 ID:0EQ3KecF.net
複数の座標系は変換して使うもの。
グローバル座標、タイル座標(=グローバル座標の場合あり)、エリア座標は相互変換できないとおかしい。
そしてそれら座標系が描画時にウインドウのクライアント座標に変換できないといけない。

この辺が整理できていないからやり方が判らないんだよ。

418 :名前は開発中のものです。:2015/02/24(火) 00:16:43.29 ID:zq7H1j8+.net
>>415 ~ 417
変換系の整理ですか...
int indexTPX等で表示画面の左上座標を算出して後は表示画面の幅や高さでそれぞれの座標計算は出来るのですが。
/** private Area[][] map
* [1][2][3]
* [4][5][6] 5 -> はじまりの町
* [7][8][9]
*/
1,2,4,5の中心付近にいて4つのエリアを描画するとき、
どうやって各エリア情報を取得して使用するかが確かに整理できない気がします。

419 :名前は開発中のものです。:2015/02/24(火) 00:53:43.94 ID:hT1osW/a.net
>>418
4つの中心付近とか関係ないだろ…?
今プレイヤーは何番のマップにいるのか。
そのマップはどれだけオフセットしてるのか。
チップのサイズ、マップのサイズはいくらか。

420 :名前は開発中のものです。:2015/02/24(火) 04:46:34.32 ID:FyTelkQO.net
>>418
エクセルでも方眼紙でも何でもいいから、簡単に入子の箱書いてみれば理解しやすいんじゃない。

総レス数 484
173 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★