アクションゲーム製作総合スレッド Part1
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
04/09/26 23:35:52ID:U/f0VG3hこのスレでは、そんなアクションゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論などについて語り合いましょう。
もちろん自分の作ったアクションゲームを晒してみたり、
プロジェクトをはじめてみるなどもOK!
ただし、アクションゲームの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。
0423名前は開発中のものです。
2005/04/02(土) 17:12:17ID:s9Y8P34vいきなり自動的にヘンなソフトを
ダウンロードするページみたいだが、何だこれ?
妖しいからキャンセルしたが。
0424名前は開発中のものです。
2005/04/02(土) 17:30:20ID:bcEeWavw0425名前は開発中のものです。
2005/04/02(土) 17:33:59ID:nltxwWQfもう手遅れ
0426名前は開発中のものです。
2005/04/02(土) 18:06:32ID:IBVnthMAダウンロードしなけりゃ大丈夫だよ。
ダウンロードしたなら、HDをフォーマットした方がいいな。
多分、OSが変になるから。
0427420
2005/04/04(月) 22:21:39ID:W+uWA9ao振動したり、壁にくっついちゃったり、きれいにできない
みんなどんな感じでやってるか流れだけでいいから教えてくれー
今時の2Dアクションのマップって、描画は一枚絵、データは線分の集合で衝突判定は法線を元に、とかやってんだろうか
つーか最近の2Dアクション知らねーや俺
0428名前は開発中のものです。
2005/04/05(火) 00:14:28ID:DoQMdZY/1.移動する前に次の座標(移動先)を算出する
2.めり込まないならそのままGO
3.めり込みそうなら障害物の直前で止める
でいけそうなもんだが。
0429名前は開発中のものです。
2005/04/05(火) 00:17:20ID:DoQMdZY/ttp://www.cam.hi-ho.ne.jp/strong_warriors/teacher/chapter09.html
0430名前は開発中のものです。
2005/04/05(火) 02:19:31ID:vtEI2kJKこの方法の場合、複数の物体があった場合に、
片方の手前で止めたら別の方の物体にめり込んだ、
なんて現象が発生する事もあるので、注意して作る事。
0431名前は開発中のものです。
2005/04/05(火) 02:28:58ID:QYk/Va0vあとブロックより移動量が大きくなっちゃうとすり抜けちゃうんだっけ?
まあ、そこまで移動量が大きくなることはほとんど無いだろうけども
0432420
2005/04/05(火) 16:44:56ID:7/2TXIWe・速度の補正に、現在の位置ではなく新しい位置を使っていた
・オブジェクトの持つ矩形の幅、高さのoriginの問題
が主な原因でした
>>428-431
参考になりましたありがとう!固体感ハァハァ
0433名前は開発中のものです。
2005/04/10(日) 18:51:47ID:0EywJ/hC2キャラ間の中心を見るようにしてあとはカメラを中心点から垂直にずらした位置へ
動かせばいいのかと思ってたらその目標地点の算出に手間取り。
もしかして考え方自体が違う?
0434名前は開発中のものです。
2005/04/12(火) 01:06:19ID:KPKJ9Df52人のキャラの中心点をA、Bとすると、カメラの視線の先をCとするとC=(A+B)/2だよね。
カメラが存在する位置はC→A(C→B)のベクトルを90度回転させてもうちょっと伸ばせばいいんじゃないかな。
表記が分かりづらくてスマソ
0435名前は開発中のものです。
2005/04/17(日) 19:47:49ID:AVCbiNha少々遅れたけどサンクス。
どうもC→Aの部分を間違えてたみたい。
その後も伸ばすときにwhile使ったりしてかなりテンパってたようだ…。
0436名前は開発中のものです。
2005/05/07(土) 12:27:56ID:5VRbH+3P0437名前は開発中のものです。
2005/05/07(土) 12:28:45ID:5VRbH+3P0438名前は開発中のものです。
2005/05/13(金) 19:44:59ID:URgSvp8Oとりあえず色々調べたり試しに簡単なのを作ってみようと思ってるのですが、
ツールや言語が色々あってどれを使おうか迷ってます。
ロックマン作るならこれだ!とか、これはだめだ!とかあったら教えてください。
どれもあまり変わらないものですか?
ちなみに2Dです。
あと、垂直の壁を登る壁蹴りなんてアクションはプログラムしだいでどうにかなりますか?
0439名前は開発中のものです。
2005/05/13(金) 21:13:00ID:wwYAXCZ10440名前は開発中のものです。
2005/05/13(金) 21:41:41ID:oNN8yFJZ人間が作ったなら出来るに決まってるじゃないですか。
迷ってる?ならVC++でも買えばいいじゃないですか。10万あれば買えますよ。
ちなみにDelphiはだめですよ。VCLがうんちです。ZGEはマンモス太郎です。
そんな事よりACT系作るなら物理の勉強でもしろ。
0441名前は開発中のものです。
2005/05/13(金) 22:21:20ID:Fb21TaQW参照じゃないクラスなんて考え方が古すぎてめんどっちい。
DelphiのVCLは神です。
JAVA SDKやC#の.NET Frameworkだったら超神です。
というか、HSPでもActive Basicでもなんでもいい。
0442名前は開発中のものです。
2005/05/13(金) 23:25:08ID:O6f7T5KT0443438
2005/05/13(金) 23:59:20ID:URgSvp8O何を使うかよりどう使うか、うまく使えるかが大事なようですね。
まだ迷ってますがみなさんの意見も参考にして頑張っていこうと思います。
それでは、ありがとうございました。
0444名前は開発中のものです。
2005/05/14(土) 15:22:49ID:Gqt+hLdhGameMakerで作るという手もある。
サンプルにロックマンのパクリがあるし・・・w
ttp://www.gamemaker.nl/
Top
>Games
>Stand Alone Games
専用スレもあるよ。
【2D】ゲーム作成ツールGameMaker【マンセー】
ttp://pc8.2ch.net/test/read.cgi/gamedev/1087068523/
0445438
2005/05/14(土) 23:38:10ID:LROjirKMレスありがとうございます。
GameMakerはダウンロード済みです。使うか判りませんが。
とりあえずまだサイトめぐりの段階です。
0446名前は開発中のものです。
2005/06/04(土) 19:47:34ID:F9U0FxWx斜めの壁にぶつかったら勝手にズレてくれるる奴って
マップの地形データに斜めの情報も入れとけばいいんですか?
それとも周囲の地形からそのつど判定した方がいいですか?
0447名前は開発中のものです。
2005/06/05(日) 04:13:09ID:xdkgVqy1大抵の場合は後者。
0448名前は開発中のものです。
2005/06/07(火) 12:10:07ID:YHhQeV4B素材がNEEEE
0449名前は開発中のものです。
2005/06/07(火) 12:57:37ID:bY/pc+ahまあ他のジャンルと比べると、規格化の難しいジャンルだからな……
0450名前は開発中のものです。
2005/06/12(日) 20:06:19ID:WhyZAEvM0451名前は開発中のものです。
2005/06/14(火) 17:25:03ID:9FWtswMcさっきアクションゲースレがあるのを知らずに、
「ゲームのアルゴリズムを教えて」スレに書いちゃったんだけど、
マリオみたいなアクションゲーを作るにあたって、
スクロール・キャラクタ・当たり判定の管理方法の定石とか良い方法ってありますか?
見下ろしのRPGみたいに、自キャラを画面の中心に固定すると、
マップの端に来たときに、
(◇=自キャラ、■=壁)
■■■■■■
■■■■■■
■■■■■■
◇■■■■■■
■■■■■■■■■■■■■
■■■■■■■■■■■■■
■■■■■■■■■■■■■
これだと天井は見えないし、床の奥の方やマップのかなり奥の方まで見えちゃって、
美しくないしゲーム性にも難が出るでしょ。
結構古くから横スクロール系ACTゲームでは、
■■■■■■■■■■■■■
■■
■■
■■
◇■■
■■■■■■■■■■■■■
■■■■■■■■■■■■■
端まで来ると自キャラ中心じゃなくなるじゃん。これってどうやってるんですか?
0452名前は開発中のものです。
2005/06/14(火) 17:45:15ID:SX+8LP/Hキャラの位置(x,y)
画面の位置(gx,gy)
マップの幅と高さ(mw,mh)
画面の幅と高さ(gw,gh)
0453名前は開発中のものです。
2005/06/14(火) 18:19:46ID:QN6CFzmy画面の左上の位置(gx,gy)
マップの幅と高さ(mw,mh)
画面の幅と高さ(gw,gh)
gx = x - gw / 2;
gy = y - gh / 2;
if( gx < 0 )gx = 0;
if( gy < 0 )gy = 0;
if( gx + gw < mw )gx = mw - gw;
if( gy + gh < mh )gy = mw - gh;
あとは自分でアレンジ汁。
0454名前は開発中のものです。
2005/06/14(火) 19:39:31ID:9FWtswMcマップ全体からのキャラ位置(x,y)を、
ディスプレイへの出力位置に変換するのどうしよ。
ちょっと考えてきます。
0455名前は開発中のものです。
2005/06/14(火) 20:29:27ID:OA7ZLhur話は色々と違って来るな。でもって、キャラの足元を
キャラの表示基準位置にするか、頭の先を表示基準位置に
するかでも、話は違って来るな。
0456名前は開発中のものです。
2005/06/22(水) 10:59:34ID:9EAdJ/sh特定のマップチップに当たるとキャラクターを死亡させるようにしたいのですが,
どうにもうまくいきません。
アドバイスを頂けないでしょうか?
ちなみに,現在自キャラの当たり判定に
celhit=8
{中略}
a=-1:mx=x/celx:my=y/cely:ma=x\celx
check=map.mx.my
if check=4 {
map.mx.my
}
if check>=celhit :return
といった式を使っており,
死亡させるのに使いたいマップチップは12番目です。
知識不足で申し訳ありませんが,どうかよろしくお願い致します。
0457名前は開発中のものです。
2005/06/23(木) 10:35:32ID:NNi2CtO/他の人はどうか知りませんが、私は頭が悪いのです。
出し惜しみしてもしょうがないじゃないですか。実際できてないんですから。
0458名前は開発中のものです。
2005/07/01(金) 21:30:15ID:uhCLvFf1無敵 敵配置 無重力・・・・あとは?
0459名前は開発中のものです。
2005/07/02(土) 06:20:49ID:Gk32sIkc0460名前は開発中のものです。
2005/07/18(月) 15:17:29ID:EO3/QU2Tプレイヤーがブロックと当たった時のプレイヤーの座標の修正ってどう考えればいいんでしょうか
0461名前は開発中のものです。
2005/07/18(月) 19:09:10ID:U/+zsg12ブロックに当たっていると判定されない位置までしか移動しないのが基本。
例えば下に8単位移動することで床に当たってしまうのなら、4単位移動して当たるかどうか調べる。
当たれば2単位移動したとき、当たらなければ6単位移動したときに当たるかどうか調べ、
判定を繰り返して床に当たらない限界の移動量を突き止める。
ターゲットマシンの処理能力がファミコン並みの場合、ブロックが16x16単位でしか存在しないという規約を決め、
y=y/16*16 または y=y & 0xfff0
という単純な式で解決する方法がよく使われていた。マリオを作るならこちらがおすすめ。
0462名前は開発中のものです。
2005/07/19(火) 08:49:28ID:h08CCx7/ソースを出し惜しみする罠w
0463名前は開発中のものです。
2005/07/19(火) 12:38:57ID:3gAxftmBはソースが膨大になりがちなんだからさ。
汚いソースは見せたくないのが人情だろ?
0464名前は開発中のものです。
2005/07/19(火) 14:38:07ID:g9RffVxdどうもありがとう御座います
判定後の修正済みの座標の計算自体はわかっていました
質問が言葉足らずでした
例えば右に走りながらジャンプしてジャンプ中に下からブロックに当たった場合(X方向の加速度が+Y方向の加速度が−でブロックに当たった)
修正後のプレイヤーのY座標は当たったブロックのY座標+ブロックの高さ
にしてX座標は変えない
右に走りながらジャンプしてジャンプ中に左からブロックにあったった場合
プレイヤーのY座標は変えない
修正後のプレイヤーのX座標は当たったブロックのX座標ープレイヤーの幅
というふうにすればいいのだと思うのですが
単純に当たり判定をしただけでは下から当たったのか左から当たったのか分からないので
その方法が無いかなと思ったのです
0465名前は開発中のものです。
2005/07/19(火) 18:21:22ID:Q/KJA8ki汚くて読めないと文句言う罠w
0466名前は開発中のものです。
2005/07/20(水) 01:39:59ID:EPNi1Tp/横判定と縦判定を別にすりゃいいんじゃね?
横当たりで戻すなら横だけ戻す。縦当たりで戻すなら縦だけ戻すでいんじゃね?
それなら着地点がカドで両方めり込む場合も対応できるんじゃね?
0467名前は開発中のものです。
2005/07/20(水) 01:44:43ID:EPNi1Tp/足の下にブロックがあって落ちないのを分けられるんじゃね?
0468名前は開発中のものです。
2005/07/20(水) 20:22:11ID:+a5dPNhLどんな状態が上下から当たったという事なのか
まずそれが定義できません
頭がこんがらがってきた
0469名前は開発中のものです。
2005/07/20(水) 20:27:59ID:+a5dPNhLそれは下からブロックに当たったと考えられるけど
Xの加速度が+Yの加速度がーの時ブロックにあった時
下から当たったのか左からあたったのか
どう考えればいいんでしょう
0470名前は開発中のものです。
2005/07/20(水) 22:20:13ID:ZyAL1iJ1下にずらしてみて当たっているようだったら下から
実際に動かす必要はないから
ところで。。。
>右に走りながらジャンプしてジャンプ中に左からブロックにあったった場合
ひょっとして移動ブロック?
0471名前は開発中のものです。
2005/07/20(水) 22:21:22ID:G93mZ0AFif(下)下の判定
if(左)左の判定
if(右)右の判定
こうで良いんじゃないの?
if文4つで判定していけば面倒なこと考えずに済む
0472名前は開発中のものです。
2005/07/21(木) 23:30:52ID:wHTK6m5nそれってマリオで言うところの
下からブロックに接触したときだけキノコを出したいとかそういうことかな?
0473名前は開発中のものです。
2005/07/21(木) 23:35:09ID:HcWPA8Z20474名前は開発中のものです。
2005/07/22(金) 02:20:52ID:C15cS8V21.Xの移動
2.壁との当たり判定(当たっていたらX値を修正)
3.Yの移動
4.壁との当たり判定(当たっていたらY値を修正)
矩形のブロックしか存在しない空間ならこれでOK
精度を上げたければ1/10ずつ移動させてどちらが先にぶつかるかを調べる。
これが気持ち悪ければ、ブロックに対するめり込み量が多いほうを優先するとか、
移動量自体が多いほうを優先するとか、いろいろ方法があると思う。
0475名前は開発中のものです。
2005/07/22(金) 21:01:41ID:rRyf+a+60476名前は開発中のものです。
2005/07/24(日) 17:31:12ID:L6ZxXouSつまりマウスカーソルの移動量を取得して自キャラを動かしているものを、
DirectXなしで作るには、どうすればいいんでしょうか?
/*カーソルがウィンドウの中央からどれだけ動いたかを求めて自機の座標に反映*/
GetCursorPos(&ptCursor);
myX -= (WND_WIDTH / 2 - ptCursor.x);
myY -= (WND_HEIGHT / 2 - ptCursor.y);
/*カーソルをウィンドウの中央に戻す*/
SetCursorPos(WND_WIDTH / 2, WND_HEIGHT / 2);
上記のソースのような処理を自キャラの動作処理の度に行っているんですが、
SetCursorPosが重いのか動きがカクカクになります。
他にDirectXなしで、なにかいい(高速な)方法はないでしょうか?
0477名前は開発中のものです。
2005/07/24(日) 21:19:59ID:Tt4A7o+h私の環境では目立ったガタツキはありませんでした。
>カーソルを自キャラの画像にしていないゲーム
こうしなければならない理由は何ですか?もし背景をスクロールさせているゲームなら、
マウスがすぐ机の端に行ってしまい、何度も持ち上げなければならないと思うのですが…。
個人的にはマウスポインタが画面中央からどの位置にあるかで移動量が決まる、
下記のような手法が好みです。
GetCursorPos(&ptCursor);
myX -= (画面中央X - ptCursor.x)/10;
myY -= (画面中央Y - ptCursor.y)/10;
※ゲーム開始時に画面中央をクリックさせる必要があります。
/10の数値は調整してください。
0478476
2005/07/24(日) 22:00:52ID:L6ZxXouSアドバイスありがとうございます。
カーソルを自キャラの画像にしていなかったのは、カーソルの速度が速すぎたので、
自キャラの移動量をカーソルの移動量の何分の一かにしようと思っていたからです。
実際のソースでは
myX -= (WND_WIDTH / 2 - ptCursor.x) / 5;
myY -= (WND_HEIGHT / 2 - ptCursor.y) / 5;
のように移動量を割っています(すみません、書き忘れました・・・)。
でも、「マウスポインタが画面中央からどの位置にあるかで移動量が決まる」って方法のほうが、
操作性もよさそうですね。僕のPCでは重かった、SetCursor関数も要りませんし。さっそく導入を検討してみます。
0479名前は開発中のものです。
2005/07/25(月) 01:51:00ID:d4SiN8inめり込んでいる部分を押し返すだけでいいんじゃないかな、貫通するほどの速度もないし。
どの方向からぶつかったかというのはあまり意識しなくていいと思う。
ダッシュで1ブロック分の隙間を走り抜けたりするのも、意識しなくても勝手に再現されるよ。
プレイヤーの上昇方向の判定を少し狭くしておくと、
ジャンプが微妙にすり抜けて上の足場に着地するのも再現される。
ある程度めりこみが発生するのは構わないという前提で、甘めに判定するのがコツ。
HTMLとJavaScriptだけで作られたマリオ
ttp://www.janis.or.jp/users/segabito/JavaScriptMaryo.html
0480名前は開発中のものです。
2005/07/25(月) 19:16:34ID:vPG6HPYkどの方向から来たのか分からないと
どの方向に押し返すのか決められないよ
0481名前は開発中のものです。
2005/07/25(月) 21:26:25ID:g1HMM4aW0482名前は開発中のものです。
2005/07/26(火) 07:54:06ID:/o47BJro0483名前は開発中のものです。
2005/07/26(火) 19:52:47ID:SBWFi+sv0484名前は開発中のものです。
2005/07/27(水) 09:05:46ID:cRa0iwYz0485名前は開発中のものです。
2005/07/27(水) 17:39:34ID:JOpFaaQL0486名前は開発中のものです。
2005/07/31(日) 12:32:27ID:1cCJGwcX壁の向こう側に押し出された事ならあるぞw
0487名前は開発中のものです。
2005/08/01(月) 18:10:13ID:JGK4vs8h0488名前は開発中のものです。
2005/08/04(木) 05:34:35ID:0Nyl93/Z複数の物体を動かすと、無茶苦茶大変じゃね?
0489名前は開発中のものです。
2005/08/04(木) 16:30:57ID:YFvDCil8結論:そうでもないよ
0490名前は開発中のものです。
2005/08/04(木) 18:38:45ID:e7pfmO0E矩形にとらわれない形状・空間・移動方向で、直接押された物体以外も連鎖的に
動かそうとなると、一筋縄ではいかないよね。
物理シミュレーションとかかじると面白いんだけど、そっちに気が向きすぎて
ゲーム製作どころではなくなりそう。
0491名前は開発中のものです。
2005/08/04(木) 22:56:58ID:Y2kkgy0i今年の盆休みはコレにチャレンジしてみるか・・・
いつか通る道だし
0492名前は開発中のものです。
2005/08/05(金) 09:30:12ID:BLdYd1nn0493490
2005/08/05(金) 23:47:24ID:j/CQ3Nfi参考になればいいんだけど…
Javaのソースとアプレットのデモを掲載中
ttp://summerclap.hp.infoseek.co.jp/test/PushSample1/
0494名前は開発中のものです。
2005/08/06(土) 00:08:25ID:ozOLA3p2すげー!感動した!!
でもCしか読めん (T_T)
0495名前は開発中のものです。
2005/08/06(土) 01:23:04ID:mdQmR8Ndオブジェクトの衝突判定って所だけ見れば問題なし
キモは動かす玉の加速度からぶつかり先の加速度を求めるんじゃなくて
重なった量からぶつかり先の加速度を求めてる所にあると思われる
ボールが凹んだ分だけ押し返すみたいな感じかな
スマートにまとまってていいね〜
0496名前は開発中のものです。
2005/08/06(土) 09:04:03ID:SCanc4CH昔、キャラが重なる事を、全く想定しない方式で作った事があってな。
運悪くキャラが重なれば、キャラが動作不能におちいるわ、複数の
物体を押そうとすると、自キャラの移動がガクガクするわで、全然
うまくいかなかったんだよ。
Thanx!!
0497名前は開発中のものです。
2005/08/06(土) 10:11:44ID:D5FBVQjr0498名前は開発中のものです。
2005/08/06(土) 12:01:33ID:PNc88TP1そ〜ゆ〜のは何で調べるの?
アルゴリズム辞典には載って無かったんだが。
0499名前は開発中のものです。
2005/08/06(土) 16:15:06ID:gXfKdljo昔はいいサイトがあったんだけど そこの作者winnyつくって捕まっちゃったんだよな
0500名前は開発中のものです。
2005/08/06(土) 17:54:31ID:qONoCor0そうそう
なんか3Dのプログラムとかうpてたよね
0501名前は開発中のものです。
2005/08/06(土) 18:20:37ID:OQXjMLjA逆も珍しくないけどさ。
0502名前は開発中のものです。
2005/08/07(日) 02:45:23ID:5OtBYpxD0503名前は開発中のものです。
2005/08/07(日) 06:13:35ID:R5K/VwOD0504名前は開発中のものです。
2005/08/07(日) 06:26:22ID:ms9PetyD運営される、閉じた共産主義の世界だからなぁ・・・
0505名前は開発中のものです。
2005/08/07(日) 06:50:06ID:ms9PetyD夢や希望、理想を信じていて、現実を直視出来てない点が問題だ。
もっと広い目で世間を見ていれば、違った見方も出来るだろうに。
現実には、Winnyとかの氾濫で、著作権の強化には歯止めがかから
なくなりつつあるのが現状だしな。
0506名前は開発中のものです。
2005/08/07(日) 06:57:31ID:EiSRB336そして著作権は、著作権を所有している人間が弱者だと
認定している法律だ。この意味を、深く考えるべきだね。
0507名前は開発中のものです。
2005/08/07(日) 10:07:54ID:ZFBJiW80>法律は弱者救済が原則。
低脳はマイルールを法律と言い出すから困る
http://www.google.co.jp/search?hs=RFE&hl=ja&c2coff=1&client=firefox-a&rls=org.mozilla%3Aja-JP%3Aofficial&q=%E6%B3%95%E5%BE%8B%E3%81%AF%E5%BC%B1%E8%80%85%E6%95%91%E6%B8%88%E3%81%8C%E5%8E%9F%E5%89%87&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0508名前は開発中のものです。
2005/08/07(日) 11:26:21ID:xz3quRgrそれは藻前の調べ方が悪い
http://www.google.co.jp/search?hl=ja&inlang=ja&ie=Shift_JIS&c2coff=1&client=firefox-a&rls=org.mozilla%3Aja-JP%3Aofficial&q=%8E%E3%8E%D2%8B%7E%8D%CF+%8C%B4%91%A5+%96%40%8Aw&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0509名前は開発中のものです。
2005/08/07(日) 11:56:43ID:DvKZ5TPEhttp://www.google.co.jp/search?hl=ja&inlang=ja&ie=Shift_JIS&c2coff=1&client=firefox-a&rls=org.mozilla%3Aja-JP%3Aofficial&q=%8E%E3%8E%D2%8B%7E%8D%CF+%8C%F6%97%9D+%96%40%8Aw&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0510名前は開発中のものです。
2005/08/07(日) 14:51:33ID:2zoPxgWcお前らみんなスレ違い
0511名前は開発中のものです。
2005/08/07(日) 22:08:23ID:Qhu6bNnu0512名前は開発中のものです。
2005/08/07(日) 23:58:19ID:5OtBYpxD物理シュミレーションの分野。解析法とか。
0513名前は開発中のものです。
2005/09/17(土) 09:10:29ID:Ou43c5rTソニックザヘッジホッグのように
曲線で描かれた地面との衝突判定って
どう処理するのがよいのでしょうか。
地面に沿った曲線方程式を持っていて
それから計算するのでしょうか
ご教授ねがいます
0514名前は開発中のものです。
2005/09/17(土) 09:55:39ID:8tvgUAR/今のマシンのパワーなら、そのぐらいは簡単だよ。
0515名前は開発中のものです。
2005/09/17(土) 14:43:24ID:Ou43c5rT回答ありがとうです
接触判定用の線の配置マップは
やはりマトリクスで管理するのでしょうか?
たとえば↓のように坂道があったら
□□□□□
□□□□/
□□_/□
_/□□□
□□□□□
各マスごとに接触線の有無情報を持つということでしょうか。
00000 0:なし 1:_ 2:/
00002
00120
12000
00000
※おおまかに数値化した例です
マップがでかくなったり、細かいカーブのある地面を表現しようとすると
管理できなくなりそうだなあ。
素人丸出し、すんまそん。
何か良い方法ありますか。
0516名前は開発中のものです。
2005/09/17(土) 15:18:30ID:E0zJ1TH0それは、マップの作り方次第やね。
たとえば515のマップなら、こんな風に作る事もできる。
00000 0:なし 1:床 2:坂
00002
00021
02111
11111
あと、閉じた線リストのグループを組み合わせてマップを作る方法もあるが、
これはちょっち難しいかな?
0517名前は開発中のものです。
2005/09/17(土) 15:37:45ID:Rc3vY+QNレースゲームでは、道の両側の座標を二本のポリゴンで管理する事も珍しくないし、
道幅が固定なら一本のポリゴンで管理する事もある。
0518名前は開発中のものです。
2005/09/17(土) 16:15:52ID:Ou43c5rTソニック系のゲームを作りたくて
どの方法がいいのが決めかねていました。
>>516
>あと、閉じた線リストの〜
例えばマップを10×10マス単位に区切って
その中に含まれる直線式をリスト管理しておいて
キャラクタが居る場所のリストとの当たり判定を
するということでしょうか。
□□□□□□□□□□
□□□A__□□□□
□□□/□□□□□□
□□/□□□□□□□
□/□□□□□□□□
@□□□□□□□□□
□□B―――□□□□
□□□□□□□□□□
□―□□□C―――□
□□□□□□□□□□
リスト1
@y=ax+b
Ay=cx+d
By=ex+f
Cy=gx+h
このマップ内にいたら上記@〜Cの式との衝突判定をする
ってことでしょうかね。
これなら曲線式(円とか)もリストに入れられそうですね。
0519名前は開発中のものです。
2005/09/17(土) 18:01:47ID:ScEP3mCDそして二つの点が決まって居れば、その線の計算式を求める事は可能だ。
(y-y1)=((y2-y1)/(x2-x1))(x-x1)
三つの座標があれば三本の線が描ける。
(x1,y1)〜(x2,y2),(x2,y2)〜(x3,y3),(x3,y3)〜(x1,y1)
四つの座標があれば四本の線が描ける。
(x1,y1)〜(x2,y2),(x2,y2)〜(x3,y3),(x3,y3)〜(x4,y4),(x4,y4)〜(x1,y1)
こうした折れ線が、閉じた線リスト。
三つの座標で、二本の線。
(x1,y1)〜(x2,y2),(x2,y2)〜(x3,y3)
四つの座標で、三本の線。
(x1,y1)〜(x2,y2),(x2,y2)〜(x3,y3),(x3,y3)〜(x4,y4)
こうした折れ線が、開いた線リスト。
0520名前は開発中のものです。
2005/09/18(日) 12:43:56ID:s39mZ4CU今マリオ風アクションゲームを作っているんだが、壁とマリオの衝突判定で問題発生。
マリオの上、下、左、右それぞれに当たり判定を作って上が当たったら頭があたったと判定させ
下が当たったら足と壁(地面)が衝突するからY軸の重力加速度をゼロにして地面の上にたたせる。
右がぶつかったら左にすこし押し返される感じにして左も同様
こんな感じで基本的に動くようになったんだが、このキャラクターが吐く玉があるんだが
その玉にも同様の当たり判定(上下左右)を行ってるのね
だけどこの玉の移動速度があまりにも速いものだから壁にめり込んで正確に動作してくれないんだ
玉のスピードによって当たり判定を伸ばせばいいのかな?ともおもったが色々考えて却下。
最終的に1秒60フレームの60FPSとは別に玉の動作だけ600FPSくらいで判定処理をさせればOKじゃね?とおもってやってみたが
なぜか動かん!
本来マリオ風アクションゲームを作る時のキャラの当たり判定ってどう行うんだ?
0521名前は開発中のものです。
2005/09/18(日) 13:37:00ID:yP69ys0m60FPSを6FPSにした場合は、1フレームの移動量を10倍にしないと
玉の速度が変わるわけだが?
0522名前は開発中のものです。
2005/09/18(日) 13:39:07ID:vUrboQp90523名前は開発中のものです。
2005/09/18(日) 14:01:59ID:d7ieMFyEこのスレの上の方で、
@移動前に判定
A当たらなかったらちょっと'(1ドット?)移動
これを1フレームの移動量に達するor壁に当たるまで繰り返し
ってやりかたが出てたような気がする
■ このスレッドは過去ログ倉庫に格納されています