X



ゲームのアルゴリズムを教えて管sai
0138名前は開発中のものです。
垢版 |
2008/06/24(火) 09:03:16ID:dfjKfTQO
for(i=0;i<25;i++)
{
    if( ScrollY == (ScrollY / 32) * 32 )
    {
      Enemy_temp = StageMap2[i + ( ScrollY / 32 ) * 25 ];
      if( Enemy_temp > 0)
      {
        ShowEnemy( i * 32 , -32 , Enemy_temp , 3 );
      }
    }
}
でいいんでないの?
0139名前は開発中のものです。
垢版 |
2008/06/24(火) 09:57:42ID:r5s8lMOb
俺だったらテキストデータで
E:idx:xpos:ypos:flag
みたいなのを一行づつ読むのを作る、というか実際そうした。
E:1:32:-16
E:1:32:-24
W:30
E:2:64:-16
だったら種類1の敵をx=32 y = -16 と y = -24 に出現さして、30フレーム待って、x=64に敵出現
ゼビウスみたいに背景と連動するにはまた違ったやり方がいいだろうけど
0140名前は開発中のものです。
垢版 |
2008/06/25(水) 01:36:50ID:kmQquf20
俺も絶対的な配置より、>>139みたいな相対的な配置のほうが好きだな。
後々編隊の出現時刻を変えるときとか、相対時間を調整するだけですむ。
enemy命令、wait命令とか。
作り方はシューティングゲームプログラミングって本に載ってる。
あまりきれいなコードじゃないから余裕があるなら自分で組みなおした方がいいと思うが。



0141名前は開発中のものです。
垢版 |
2008/07/06(日) 07:44:15ID:wmyMOr1K
ttp://www.borndigital.co.jp/book/program/4-86246-015-1/index.html

GPGを購入しようと思ってるのですが 1〜5まであって
最新の5を購入しようと思っています 無理して1〜4まで全部買う必要はありませんか?
0142sai
垢版 |
2008/11/02(日) 12:31:11ID:nTsQz3KG
Xi[sai]DXの自動解答ツールでも作ってくれ。
総当り的に解答できるものなのか・・・
0143名前は開発中のものです。
垢版 |
2008/11/02(日) 18:03:02ID:4nEQs4Qs
>>141
バカカシネヨってぐらい高いよなこのシリーズ
0147名前は開発中のものです。
垢版 |
2009/02/13(金) 16:28:05ID:4Bf2H9la
まんまスペースハリアーみたいな疑似3Dシューティングゲームを作ってみようと思うのですが
あの手のゲームは絵や映像の技法で言うところの「一点透視法」な画面だと思うのですが
その考えで行くと自キャラが撃つ弾は全て画面中央の一点に向かってしまう事になってしまいます(リアルに考えるとそれで正しい)
スペハリや亜流はその辺をどうやってそれっぽくフェイクしているのでしょうか?
0149名前は開発中のものです。
垢版 |
2009/02/14(土) 13:48:41ID:YNh7Hq3A
よくわからないけど、画面表示の向きと、画面上の自機の向きをバラバラに考えて、上下左右移動時は時機の向きがそれぞれの方向に慣性付きで移動するようにして、その方向に弾がでるようにすればいいんじゃない?
0150名前は開発中のものです。
垢版 |
2009/02/17(火) 17:38:25ID:R5C7BuD2
>>147
まず、一点に集中しちゃうのは平行線だけだぜ

よしんば自機の弾が平行にしか撃てないとしても、集中するのは無限遠点だ
ゲーム時間中に到達するのかい
0152名前は開発中のものです。
垢版 |
2009/02/21(土) 00:00:04ID:T1jozkkK
crysisの四脚の敵とか
モンハンのシェンガオレンみたいのってどうやって作るんでしょう?
アニメーションさせれば平の地面を歩く程度はできると思うんですが
凹凸の地面を歩かせたりするにはプログラムからボーンを調整したりするんでしょうか?


0155名前は開発中のものです。
垢版 |
2009/02/21(土) 17:45:04ID:T1jozkkK
いや、モンハンは分かりやすいかな?程度で出しただけなんで。
IKでやるのは理解してるんですが、
ボーンと地面の判定→先端ボーンの位置を指定→IKで根元までって感じなのでしょうか?

・・・今思うとDirectXの話な気がしなくもない。
0159名前は開発中のものです。
垢版 |
2009/02/26(木) 02:31:56ID:aQvkhPES
地面の高さに、モデル空間の座標を合わせるだけだと思うが

それとも、実行時にモデルアニメの計算をするのか
そんな事しないだろう


0160名前は開発中のものです。
垢版 |
2010/03/22(月) 01:51:39ID:6l2lJBs0
広大なマップを動き回るシミュレーションみたいなのを考えてて
とりあえずA*というアルゴリズムで2048x2048のマップで
1ドット単位で移動可能としてやってみたら遅くてとても実用的じゃないと判明した
もっと早い方法はあのかな?
マップを小さくしろってのは無しでお願いしますよ
考えてるゲームがマップの広さを利用したものなんで
0163160
垢版 |
2010/03/22(月) 21:39:10ID:6l2lJBs0
調べてたらいろいろやり方はあるみたいだ
ちょっといいアイデアを思いついたんで今実験中
0164160
垢版 |
2010/03/26(金) 06:17:01ID:+4Bq9SSB
あれからいろいろ実験して完全オリジナルのアルゴリズムを考えてやってみた
2048x2048の1ドット単位移動マップで端から端あたりまでの検索の1秒も掛からなくなった
A*を継承してるんで検索漏れはないはず
なにげにすごい発明をしたのかも
0167名前は開発中のものです。
垢版 |
2011/01/26(水) 00:07:21ID:+BkN1N82
ドカポンなどの双六式のゲームで、「おまかせ」というモードがありますよね?
でた目の数で丁度いけるマスを自動検索してくれるというものなんですが、
あれのアルゴリズム分かる方いますか?言語はなんでもかまいませんので
教えていただけないでしょうか。
0168名前は開発中のものです。
垢版 |
2011/01/26(水) 10:00:10ID:xvFFQPkH
マップが分岐なし一方通行なら一次元配列で出目を足せばいい。
分岐がたくさんあるなら、マップを二次元配列にするとして、
「ゲーム シミュレーション 移動範囲」を検索し応用。
0169名前は開発中のものです。
垢版 |
2011/02/01(火) 23:17:29ID:lxouVGdC
>>168
SRPGの移動範囲みたいなのはわかるんですが、双六だと途中の経路にループがあったり、
飛ばせるマスがあったりしてそこを含めて出目に丁度合うように移動可能か判定するには
どうすればいいか、そこが今ひとつわからないんです。
0170名前は開発中のものです。
垢版 |
2011/02/03(木) 11:10:31ID:fi6n2hpv
それは簡単。印をつけてループしなくさせればいい
たしか移動歩数的なものを記録すればよかったんじゃない
0171名前は開発中のものです。
垢版 |
2011/02/03(木) 12:33:35ID:B9uesdLi
いや、ループはさせないとダメでしょ。
桃太郎電鉄でもリニアカードや新幹線カードを使うとサイコロをたくさん振れて
ループも含めて目的の駅に入りやすくなる。

単純に隣接マスを走査していけばいいと思う。
再帰でやれば楽だろう。
0172名前は開発中のものです。
垢版 |
2011/02/08(火) 21:49:20ID:cbwItMD0
とりあえずマップを二次元スクエアとして、シティブロック距離を測定、移動可能距離が足りなかった場合はそこで打切り、
これを基本にして虱潰しにやるというのが一番いいですかね?
あとは直前のマスには戻れない、飛ばせるマスや通過点は移動距離に足して計測、とか細かい点が多いものの
当時のスーファミでも出来るくらいだからどのみち計算量は大したことないんですが
0173名前は開発中のものです。
垢版 |
2011/02/14(月) 00:38:02ID:uC7Rwf/v
リブルラブルやギャルパニ3みたいに「プレイヤーが引いて囲んだ線の内側」って
どうやって判定すればいいんでそ?
0174名前は開発中のものです。
垢版 |
2011/02/20(日) 00:02:26.60ID:+32StJ0O
「線のどちらが内側か」という問題なら符号付き面積を求める方法があります。

もしくは、「確実に外側である適当な点から最初に線を横切った先は内側」
という判定方法もあります。
0175名前は開発中のものです。
垢版 |
2011/03/15(火) 13:41:09.98ID:tsoNTB10
2Dアクションゲーム何ですけども、
キャラに引っ張られる様にスクロールさせるにはどうすれば良いでしょう。
常にキャラが中央に来るのではなく、中央から一定距離離れた所からキャラを追う といった感じです。
0178名前は開発中のものです。
垢版 |
2011/06/19(日) 15:45:00.60ID:bk5db9DH
スーパーマリオブラザーズの様なゲームの場合、
ブロック等を全てスプライトで処理するのは やはり無理がありますよね
0179名前は開発中のものです。
垢版 |
2011/06/20(月) 00:09:15.70ID:c6jbBPQT
あまり今のPCのマシンパワーを舐めないほうがいい

表示範囲外のところは勝手に無視してくれたりするんで
最適化とか効率はモノが動いてからでも十分間に合う

まずは思いついた方法、いちばん簡単にコーディングできそうな方法でやってみるが吉
0181名前は開発中のものです。
垢版 |
2011/07/13(水) 21:44:59.63ID:71MLorzn
スクロールゲームでの、オフセット方式で座標を更新するとして、
画面のオフセット位置の更新ってどのタイミングでやるべきなのでしょう。
位置はプレイヤーに追従させるとして、プレイヤーの処理後だと プレイヤーの処理中にオフセット位置を用いる処理があればズレてしまうし、
結局どのタイミングでも、完全な同期は無理なのでしょうか。
0184名前は開発中のものです。
垢版 |
2015/03/12(木) 17:13:40.27ID:6Gcknge4
2Dの無限マップってどうやってデータ保存しとけばいいんだろう
2次元リストだとプラス方向にしか伸ばせないし
0185名前は開発中のものです。
垢版 |
2017/02/03(金) 02:21:27.57ID:lSw/ej4u
age
0186名前は開発中のものです。
垢版 |
2017/12/31(日) 22:24:26.27ID:/rN76OKL
簡単にお金が稼げる方法興味ある人だけ見てください。

グーグル検索⇒『来島のモノノリウエ』

FNI7DS9IDU
0187名前は開発中のものです。
垢版 |
2018/06/04(月) 19:43:36.48ID:VMODjZSK
>>184
基本的には動的に生成(プロシージャル)
乱数はパーリンノイズ
変化があったとこだけ差分を記録

見てないところでマジレスする快感
なお正しい方法かは知らん(俺だったらそうするってだけ)
0188名前は開発中のものです。
垢版 |
2018/07/13(金) 20:31:25.63ID:qlBuPuiL
せっかくなので補足。
パーリンノイズは、「改良パーリンノイズ」のほう。

改良は、各頂点座標をシードにしたハッシュ値を乱数替わりにするので、
時間的にもメモリ的にもほぼノーコストで、各頂点のベクトルを再現できる。
(各頂点のベクトルを、メモリ等に保存しておく必要がない)

なので、無限マップの任意の座標の地形を、いつでも同じ形に再現できる。
0189名前は開発中のものです。
垢版 |
2018/07/26(木) 22:53:35.87ID:DlWlB+js
昔のドラクエなどにあるメッセージ表示ってどうやるのでしょうか?
一文字づつ文字が表示されるみたいな。
0193名前は開発中のものです。
垢版 |
2021/04/12(月) 19:31:38.14ID:M9M+4c7u
2Dシューティングのホーミング弾が作れません
外積計算して正負で軸があってるか判断、
それを弾の個数分やるって事であってるんでしょうか
0194名前は開発中のものです。
垢版 |
2021/06/17(木) 16:49:26.83ID:Yiidicu+
もう見てないだろうが、

ホーミング弾の進行方向から見て、目標物が右側にあるのか左側にあるのか調べる。
(弾の移動ベクトルのatan2と、弾から物への方向ベクトルのatan2との比較)

右側にあるなら、ホーミング弾の移動ベクトルを右回転、左なら左回転。
ただし、回転角度には上限を設けないと、カクッと動くことになるw

最近のコンピュータって速いから、こんなもんで十分じゃないかな。。。と妄想w
0195名前は開発中のものです。
垢版 |
2021/06/17(木) 20:18:18.12ID:PcUJNFVD
みてます!ありがとうございます
今はホーミング弾の目標が軸の左にあるか右にあるかを外積の正負で判断し、
弾一つ一つをループさせてみています
衝突判定に使う4分木の様な、効率的なアルゴリズムがあったりするのでしょうか
0196名前は開発中のものです。
垢版 |
2021/06/18(金) 17:26:24.06ID:yzvTwA4D
見られてたw

ホーミング弾って、距離離れてても追尾するイメージあるから、
四分木みたいな領域分轄はできないんじゃないかなぁ

処理速度の最適化は、一番重い処理を見極めて、
そこを高速化するのが効果的と思うけど、

ホーミング弾って、回転行列を使うから、
ホーミング角度θに応じたsinθとcosθを、あらかじめ計算しておくって手はあるかも。
(ホーミング角度θは、固定値なはずなので)
0197名前は開発中のものです。
垢版 |
2021/08/19(木) 22:31:46.49ID:YTJh6kAo
わざと0.5秒とか一定間隔をあけてホーミングしたほうが
動きがカクカクしないしゲーム難易度的にもいいと思うぞ
(右回転なら右回転を0.5秒続ける)
0199名前は開発中のものです。
垢版 |
2023/09/25(月) 01:59:21.44ID:Itcq5bDg
public int Sayu(Pos arg)
{
var buf = arg.posF - posF;
return Lib.GetSeiFu((vecF.X * buf.Y) - (vecF.Y * buf.X));
}
これを貼れと言われた気が。
レスを投稿する


ニューススポーツなんでも実況