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

421 :名前は開発中のものです。:2015/02/24(火) 23:23:20.49 ID:zq7H1j8+.net
>>419~420
一つの大きなマップはいくつのも小さなエリアの集合体で構成されているので,
その小さなエリアの幅が決まっています。
よって描画画面がそのエリア幅を超えたら、そのエリアに接している別のエリアも映し始めなければならないので。
後、今プレイヤーが何番のマップにいるのかはわかる様にしています。

ちょっと説明が出来ないのでソース上げてもいいですか?

422 :名前は開発中のものです。:2015/02/25(水) 00:02:04.33 ID:wwS95ney.net
仕組みは理解できてると思うよ。

表示範囲が1エリアの範囲を超えるでもなければ、プールしておくべきは最大4エリア
その4エリアから表示範囲分を表示すれば良いだけ。

423 :名前は開発中のものです。:2015/02/25(水) 00:41:58.65 ID:sF3guJ4N.net
エリア座標(0, 0)               エリア座標(1, 0)
    グローバル座標(0, 0), (1, 0)        グローバル座標(2, 0), (3, 0)
              (0 1), (1, 1)                  (2, 1), (3, 1)
エリア座標(0, 1)               エリア座標(1, 1)
    グローバル座標(0, 2), (1, 2)        グローバル座標(2, 2), (3, 2)
              (0 3), (1, 3)                  (2, 3), (3, 3)


描画するべき範囲が四つのエリアに跨っていようとも、
グローバル座標で考えればいいんだよ。

グローバル座標(1, 1), (2, 1)
          (1, 2), (2, 2)

グローバル座標からエリア座標に変換する関数が一つあれば十分でね。

プレイヤーの居る座標(グローバル座標)が判るのだから、
後はプレイヤーを中心に表示する仕様だとして、
クライアント領域に描画する必要なタイル数も判るのだから、
描画の開始点となるグローバル座標も判るし、その座標から何座標分(もしかするとタイル分)描画するかも判るよね。

後はその範囲をfor文でループでもさせて、毎回グローバル座標からエリア座標に変換させて、
エリア上の該当する位置の情報にアクセスすればいいだけでしょ。

これは理屈の話であって、もっと効率的にアクセスできるように設計し実装することも、個々の仕様により可能な場合もあるでしょう。
とかくこれで問題ない筈だよね?

424 :名前は開発中のものです。:2015/02/25(水) 01:19:14.73 ID:Opsz/SjB.net
>>422~423

なるほどなるほど。グローバル座標などで処理する等で問題は解決しそうです。
ちょっと道が見えてき始めたのでがんばってみます。
ありがとうございます。

425 :>>199:2015/02/25(水) 17:58:43.51 ID:Jzpyh/K8.net
2年経っても同じことやっててワロタ

4エリアだと計算が難しいから、エリアを少し小さくして
主人公の周り全方向8エリアを処理するようにすれば?

426 :名前は開発中のものです。:2015/02/25(水) 23:36:51.01 ID:wwS95ney.net
全体マップをエリア単位で分けた座標をブロック座標とした場合、
現在位置の要素を調べるのには、全体マップでの現在位置を1エリアの大きさで割って、商が全体マップ中のエリアのブロック座標、余りがエリア内の要素座標。
これは現在位置の足元の要素を調べる考え方だけど、右隣の要素を調べたいなら右隣を現在位置座標とした同じ計算をしてみればいいだけ。
プレイヤー周囲3x3の要素を調べたいのなら、計9回分基準となる座標を入れ替えて同じ事をすればいい。

427 :名前は開発中のものです。:2015/02/26(木) 02:32:54.21 ID:BXfNXTEu.net
巨大マップを作るのにしても迷路状のMAPなら、迷路生成の為のツール作って大枠を作成、その上で細部を手直しするとか、
2Dのフィールドマップならマップタイル1つを1色の色に見立ててペイントで大雑把に描いて、その後に通常のマップタイルを組み合わせた表示で細部を手直しするとか。
3Dのフィールドマップなら上記のやり方に組み合わせて、等高線地図的なもので凸凹のMAPを生成し、細部を手直しようにするとか。

巨大な皿に一つ一つ米粒並べるよりも、米をぶちまけて均等にならした方が早い。
グローバル座標からブロック座標、エリア内座標を生成するのも、それと似たような考え方。

428 :名前は開発中のものです。:2015/02/27(金) 13:30:27.20 ID:RNDSqU89.net
ふお===
何かスパゲッティー通りこしてペペロンチーノになってきた。
ちょっと今思ったのですが、もう一つグローバル変数だけのマップをつくればいいかな。
小さいエリア集合のマップを最初から一つの大きなマップ(グローバル座標もち)にすればいいんじゃね?
そうすればエリアからG座標の計算やエリアが跨った時の計算も楽になるので。

しかし、問題はどうやって
エリア座標(0, 0)               エリア座標(1, 0)
    グローバル座標(0, 0), (1, 0)        グローバル座標(2, 0), (3, 0)
              (0 1), (1, 1)                  (2, 1), (3, 1)
エリア座標(0, 1)               エリア座標(1, 1)
    グローバル座標(0, 2), (1, 2)        グローバル座標(2, 2), (3, 2)
              (0 3), (1, 3)                  (2, 3), (3, 3)

(0, 0), (1, 0), (2, 0), (3, 0)
(0 1), (1, 1), (2, 1), (3, 1)
(0, 2), (1, 2), (2, 2), (3, 2)にするのにはどういう風にループまわそう?
concatみたいなものjavaにありますかね?

皆さんの助言凄く助かるのですが、如何せん実装時にペペロンチーノ化する。

429 :名前は開発中のものです。:2015/02/27(金) 16:35:54.45 ID:KBJyPpkG.net
グローバルマップのサイズはGX256xGY256。
エリアマップのサイズはAX32xAY32。
すると、グローバルマップは、BX4xBY4のブロックマップとなります。

プレイヤーの現在位置は、PX72,PY24。
この場合、プレイヤーが存在する場所は、

PX72 (プレイヤーのグローバル座標)
PY24

(PX72 / AX32) = bPX2 (プレイヤーの存在するブロック座標)
(PY24 % AY32) = bPY0

(PX72 / AX32) = aPX8 (エリア内のプレイヤー座標)
(PY24 % AY32) = aPY24

演算子は理解できてるよね?

430 :名前は開発中のものです。:2015/02/27(金) 16:39:11.64 ID:KBJyPpkG.net
エリアマップの集合体がグローバルマップなわけで、その集合体を管理するのがブロックマップでありブロック座標。
エリアマップの集合体を管理する座標体系が、まるっきりすっぽ抜けてんだよ。

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

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