初心者専用スレ「シミュレーションゲーム」を作らない?
レス数が1000を超えています。これ以上書き込みはできません。
0001名前は開発中のものです。
04/03/20 10:18ID:HjCApWI8各レベルの課題に沿って作ってみてあぷしてみましょう。
まとめ:
SLGを作らない?
http://gamdev.org/w/?%5B%5BSLG%A4%F2%BA%EE%A4%E9%A4%CA%A4%A4%A1%A9%5D%5D
あぷろだ:
http://gamdev.org/up/
話題元:
初心者のためのゲームプログラミング
http://pc2.2ch.net/test/read.cgi/gamedev/1023119134/852-
関連スレは>>2
各レベルの課題は>>3
0984983
2007/02/20(火) 23:56:42ID:5TPql8m6ttp://72.14.253.104/search?q=cache:J4s8x9xl4W4J:dream.freespace.jp/perl-bin/puma/lng/joyful.cgi%3Fprint%2Blog3/04120004.txt+hsp+mousex&hl=ja&ct=clnk&cd=3&gl=jp&lr=lang_ja&client=firefox
0985名前は開発中のものです。
2007/02/20(火) 23:59:30ID:EXLCFI7m味方に個性があって面白いな。
飛べるキャラは移動コストが低く、素早そうなキャラは移動力が高く、
女の子は間接専用とか、攻撃法が多いキャラは直間両用とか。
気になった所は、移動する時、一歩毎のウェイトが短いのと、
コースが遠回りで移動力が足りなくコースを通る場合がある。
>>982
ヘックスのは作ったこと無いから良く分からんが、
スクエアの場合は、回り4方向チェックをマップ全体にやるのを
何回か繰り返してチェックする感じだから、
ヘックスは6方向に同じようにやる感じなんかな。
0986名前は開発中のものです。
2007/02/21(水) 00:29:41ID:k8mWChj0>>985の通り、基本はスクエアの方法と同じだね。
移動方法の設定の仕方は色々なやり方があるから、調べたりするといい。
周り6方向のセルだけど、cell[x,y]を中心とすると、
真上=cell[x,y-1]
真下=cell[x,y+1]
左上=cell[x-1,y-x%2]
左下=cell[x-1,y-x%2+1]
右上=cell[x+1,y-x%2]
右下=cell[x+1,y-x%2+1]
になる。X軸が奇数か偶数かで要素が変わってくるのが厄介だけど頑張れ。
0987名前は開発中のものです。
2007/02/21(水) 01:52:18ID:vYb6bbT/最短経路探索の話じゃないよね?
少し解答からズレるけど、
奇数と偶数に分けるのはデータ形式としてはいいが
ずれた配列をそのまま使うとコードが複雑になる。
なので 配列<->仮想座標 の座標変換メソッドを作り、
仮想座標で色々計算した方がよいと思う。
この辺のノウハウは↓のサイトの Hexagonal Grids の項目に沢山ある。
http://www-cs-students.stanford.edu/~amitp/gameprog.html
0988名前は開発中のものです。
2007/02/21(水) 07:04:24ID:dBNuLTUtスタートの地点からさっきのメソッドを使って外周上をぐるりと回す(X)
Xの外周上にXまでの必要コストとXからのコストを足したものを代入(それより小さい値が入っていればそのまま)
ゴールの周に来て終わったら、逆に数字が小さいますを辿ってスタートへ戻り、経路を記憶する
こんな感じで僕はやってました
0989名前は開発中のものです。
2007/02/21(水) 10:31:11ID:tXUNnTZVHSP 3.xでは実行ファイル内にデフォルトでWindows XP以降向けの「Luna」スタイル
データを持っているのが原因だったり?
HSPIC!ていうソフトで除去できるみたいだから試してみては?
UPX圧縮、icon変更、バージョン情報付与、でウマー
0990982
2007/02/21(水) 12:02:48ID:Mxu0R3ynありがとうございます。とりあえず読んでみます。
ご指摘のとおり、最短経路探索ではなく、最短「距離」の話です。
ぶっちゃけますが、A*アルゴリズムで最短経路を探索する際に、
この最短距離の計算が必要になるので調べていました。
矩形セルを使用する場合については最短経路まで問題なく計算できています。
どうせならHEXにも対応しておきたいなーと思いまして質問しました。
0991名前は開発中のものです。
2007/02/21(水) 12:12:11ID:juyyBLL1984のが当たりだろう
どうせwait/awit時しかマウス座標は変化しないんだから
最初に
#undef mousex
#undef mousey
#undef wait
#undef await
#define wait(%1) wait@hsp %1 :mousex=limit(mousex@hsp,0,640):mousey=limit(mousey@hsp,0,480)
#define await(%1) await@hsp %1 :mousex=limit(mousex@hsp,0,640):mousey=limit(mousey@hsp,0,480)
って、定義しちゃえば他は変更しないで、そのまま動く
0992名前は開発中のものです。
2007/02/21(水) 12:31:24ID:Az2RuQ79最短距離を求めるのに最短経路探索を使うのではないの?
0993名前は開発中のものです。
2007/02/21(水) 12:53:39ID:Pu4x1zp+X = Abs(X1-X2)
Y = Abs(Y1-Y2)
if (X1 % 2 = 0) {
if (X2 % 2 = 1) { if (Y1 > Y2) Y++; }
}else {
if (X2 % 2 = 0) { if (Y1 < Y2) Y++; }
}
Y = Y-(X+1)\2;
if (Y < 0) Y = 0;
Value = X+Y;
0994982
2007/02/21(水) 14:53:21ID:Mxu0R3ynhttp://www.drking.plus.com/hexagons/misc/grid.html
に欲しい式がありました。ありがとうございました。
HEXをこう並べるのは気づきませんでした。
http://gamdev.org/up/img/8986.lzh
に、作成したサンプルをアップしました。
.NetFramework2.0が必要になりますので、すみませんが
Windowsupdateなどからインストールをお願いします。
その他の注意点はreadme.txtを参照してください。
>>992 さん
A*法で最短経路を求めるとき、残り距離の見積もりとして、最短距離を使用します。
ルートAとルートBのどちらが短かそうか、などという判断です。
詳しくは
http://ja.wikipedia.org/wiki/A%2A
をどうぞ。
0995名前は開発中のものです。
2007/02/21(水) 16:58:44ID:Az2RuQ79どうもです
教えていただいたのですが
どうプログラムに反映するのかさっぱりわかりません orz
独自で作って後でこれは〜法だったのか!ってのが多いので
数式見てもピンと来ないです
0996名前は開発中のものです。
2007/02/22(木) 01:04:54ID:tSJbMxqg0997名前は開発中のものです。
2007/02/22(木) 19:05:52ID:Qy+LhnRX----------------------------------
ここはシミュレーションゲームをみんなで作るスレです。
各レベルの課題に沿って作ってみてあぷしてみましょう。
まとめ:
SLGを作らない?
http://gamdev.org/w/?%5B%5BSLG%A4%F2%BA%EE%A4%E9%A4%CA%A4%A4%A1%A9%5D%5D
あぷろだ:
http://gamdev.org/up/
前スレ:
http://pc10.2ch.net/test/read.cgi/gamedev/1079745509/
関連ページ:
段階的学習!
http://gamdev.org/w/?%5B%5B%C3%CA%B3%AC%C5%AA%B3%D8%BD%AC%A1%AA%5D%5D
各レベルの課題はまとめ参照
0998名前は開発中のものです。
2007/02/22(木) 19:47:27ID:LXiAekOY初心者専用スレ「シミュレーションゲーム」を作らない?2
http://pc10.2ch.net/test/read.cgi/gamedev/1172141181/
0999名前は開発中のものです。
2007/02/22(木) 21:45:54ID:Qy+LhnRX初心者専用スレ「シミュレーションゲーム」を作らない?2
http://pc10.2ch.net/test/read.cgi/gamedev/1172141181/
1000名前は開発中のものです。
2007/02/22(木) 21:46:46ID:Qy+LhnRX初心者専用スレ「シミュレーションゲーム」を作らない?2
http://pc10.2ch.net/test/read.cgi/gamedev/1172141181/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。