トップページgamedev
982コメント350KB

アクションゲーム製作総合スレッド Part1

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。04/09/26 23:35:52ID:U/f0VG3h
ワンキーゲーから格ゲーまで、様々なジャンルの基礎とも呼べるアクションゲーム。
このスレでは、そんなアクションゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論などについて語り合いましょう。
もちろん自分の作ったアクションゲームを晒してみたり、
プロジェクトをはじめてみるなどもOK!

ただし、アクションゲームの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。
0521名前は開発中のものです。2005/09/18(日) 13:37:00ID:yP69ys0m
60FPSを600FPSにした場合、1フレームの移動量は1/10倍に、
60FPSを6FPSにした場合は、1フレームの移動量を10倍にしないと
玉の速度が変わるわけだが?
0522名前は開発中のものです。2005/09/18(日) 13:39:07ID:vUrboQp9
めり込んでから判定するか、めり込む前に判定するか
0523名前は開発中のものです。2005/09/18(日) 14:01:59ID:d7ieMFyE
>>520
このスレの上の方で、

@移動前に判定
A当たらなかったらちょっと'(1ドット?)移動
これを1フレームの移動量に達するor壁に当たるまで繰り返し

ってやりかたが出てたような気がする
0524名前は開発中のものです。2005/09/18(日) 16:45:57ID:TnJMPUnx
弾が壁に当たったらデカいエフェクトでも出せば〜
そんな気にならんと思うぞ。
0525名前は開発中のものです。2005/09/18(日) 18:17:20ID:+n+8NiI7
マリオが壁にひっかかったりめりこんだりすりぬけたりするバグまで再現するのは、普通にやると難しいんだろうか
0526名前は開発中のものです。2005/09/18(日) 18:50:37ID:fAahe9rg
>>513-519
メガドラ版とかだったらそんな大層な事してなさそう
例えばマップデータにその点での曲線の傾きを入れておいて、傾き2のポイントに左からぶつかったら上に2上がる、みたいな

もちろん上の人はわざわざ「今のパソコンなら」って書いてるわけだし今ならその方がスマートだとは思うんだけど、
ソニックは移動が高速だから多少粗くても問題なさそうだし、処理性能の面でも当時ならそうしたんじゃないかなと
見当違いだったらスルーよろ
0527名前は開発中のものです。2005/09/18(日) 18:52:21ID:fAahe9rg
ごめん寝ぼけてた
忘れて下さい
0528名前は開発中のものです。2005/09/18(日) 20:18:59ID:tilH0X8d
>>524
何げに良いテクを言ってる気ガス。
0529名前は開発中のものです。2005/09/18(日) 20:25:37ID:tilH0X8d

|   ○))))



|  ○))))



| ○))))


・・・
・◆・
・・・

◆◆◆
◆◇◆
◆◆◆

□□□
□□□
□□□




0530名前は開発中のものです。2005/09/19(月) 00:47:45ID:pDDJ7+1W
>>528
そもそも壁にあたったと判定できなくてこまってるんじゃ
あんまり意味がない気がする。
0531名前は開発中のものです。2005/09/19(月) 09:43:08ID:v8vzsqdV
60フレで移動値10ぐらいならそんな気にならんと思うし、
それ以上になるようならデカいエフェクトで対処したほうがいいと思う。
接触をどこで判定するかにもよるが、弾自体をデカくしてもいいかと。
見た目のめり込みドット数は減ると思うぞ。
0532名前は開発中のものです。2005/09/19(月) 09:45:00ID:FeS2reeC
>>523
なるほど
次フレームに位置する玉の場所と現在の場所にスライドするように判定を行うわけだね?

頭いいー!
で、どうやるんだろ…w

がんばってくる!
0533名前は開発中のものです。2005/09/19(月) 09:47:15ID:FeS2reeC
>>弾自体をデカくしてもいいかと。

それ考えたんだけどやっぱそうしたほうがいいのかなぁ。
うぅむ。
ちなみにエフェクトで対処とかっていう案が結構でてるけど
>>528
さんが言うように早すぎると壁抜けてしまうので
エフェクト以前に判定できないのよね。

とりあえず↑の方法を頑張ってみる。
0534名前は開発中のものです。2005/09/19(月) 09:48:32ID:FeS2reeC
すまん。
>>530さんね。

みんなありがとう!
0535名前は開発中のものです。2005/09/19(月) 20:10:36ID:FeS2reeC
手短にC++について質問

class MOVEOBJ {
public:
**省略**
MOVEOBJ();//コンストラクタ
MOVEOBJ(int x, int y);//コンストラクタ
};

class PLAYER : public MOVEOBJ {
public:
**省略**
};

MOVEOBJ a(8,8);//これは出来るけど
PLAYERn(8,8);//敬称してもこれは出来ない。

どうすればPLAYERクラスからMOVEOBJ内のコンストラクタにアクセス出切る?

場違いかな?
0536名前は開発中のものです。2005/09/19(月) 20:56:48ID:JUxOCKS9
class PLAYER : public MOVEOBJ {
public:
PLAYER( int x, int y ) : MOVEOBJ(x,y){}
**省略**
};
0537名前は開発中のものです。2005/09/20(火) 14:48:01ID:1rmjE96S
>>536
THX
0538名前は開発中のものです。2006/01/05(木) 23:56:28ID:8YIYn0ZE
>>227
年を2つ越えて亀レスだが、俺がPC版アーマード・コア作っちゃっていい?
本家のACはもう行くところまで行ってしまった気がする。
0539名前は開発中のものです。2006/01/06(金) 03:29:23ID:MTbix/3n
>>538
ガンガレ
0540名前は開発中のものです。2006/01/06(金) 14:04:58ID:yOgH2a1d
>>539
dクス、地道にがんがる。
0541名前は開発中のものです。2006/03/07(火) 01:01:48ID:LVgywCzP
横スクロール型アクションゲームを作っているんですが(魔物ハンター舞(知ってるかな?))みたいなやつ、
コマンド技などを実装しようと思いますがコマンドの判定がいまいちわかりません。
1フレーム(約14ms)毎にキー状態を取得し、前のキー状態と比較してAかつBのコマンドがあれば
フラグをONにし、そのフラグがONの状態の時あるボタンを押されたらコマンド技という実装を考えたのですが、
どう頑張っても入力が不可能になってしまいます、どうすればいいでしょうか?
0542名前は開発中のものです。2006/03/08(水) 10:36:03ID:mZu8SEWn
それでいいはずだけど?実際のキー入力見たら?
入力無し状態が間に入って、成立してないって判定してるかも。
0543名前は開発中のものです。2006/03/08(水) 19:45:40ID:LPRPt45/
コマンド解析ロジック
でぐぐって参考にすれば?
05445412006/03/08(水) 21:30:58ID:7jcBB4H/
>>542
その通りでした、くだらないバグですいません。

>>543
ありがとうございます、参考にします。
0545名前は開発中のものです。2006/03/21(火) 18:07:26ID:s8nZYA/R
プレイヤーキャラクタの動かしかたについて質問です。
キー入力をキャラクタの動きに対応させる際に、以下の二通りの実装を考えています。

1. 上位側でキー取得、キーに対応したキャラクタの関数呼び出しで行動。
2. キャラクタ側行動関数内でキー取得、対応した動作を内部で記述。

1、2、どちらがOOPとしてスマートな実装方法だといえるでしょうか?
識者のかたお願い致します
0546名前は開発中のものです。2006/03/21(火) 19:18:13ID:JkFbCiMp
>545
俺もちょうど似たようなところを組んでいたが、OOPとしては当然1じゃね?

ゲーム内のキャラクタが、現実のキー入力という異世界の情報を、直接扱うのは美しくない。
0547名前は開発中のものです。2006/03/21(火) 19:47:18ID:II3VfSa/
なるほど、そういう考え方もあるな。
0548名前は開発中のものです。2006/03/21(火) 19:55:29ID:BETRB9Hh
そうなん?
普通に2がやりやすいと思うが。
0549名前は開発中のものです。2006/03/21(火) 22:51:39ID:nXEENBpa
やりやすいとスマートは違うぞな、もし
0550名前は開発中のものです。2006/03/23(木) 03:37:22ID:2sNSmG50
1だとCPUもキー入力的に動かせる気がして1にしてる。
0551名前は開発中のものです。2006/03/23(木) 17:03:05ID:Ccbbk2h0
てか、2の方法だと、プレイヤーの行動以外のために
キー入力状態が欲しくなったら面倒じゃん。
0552名前は開発中のものです。2006/03/23(木) 17:18:37ID:lA0BaRyH
イベントリスナーを使うのがオブジェクト指向っぽい
0553名前は開発中のものです。2006/03/24(金) 01:57:47ID:4Uk+3T2/
ところでまったくの初心者である俺から質問させてほしいんだが

C言語とかDelphiとかどれがお勧め?

いま友達が簡単だからお勧めっていうHSPってのを勉強してるんだが
使ってるのによって何か弊害とかあるのですか?
あのプログラムができない云々とか(´・ω・
0554名前は開発中のものです。2006/03/24(金) 03:03:04ID:HlGxkzvX
言語にお勧めなんて無いよ、使い慣れたのが一番だ

あとの質問は意味が理解しきれないのでパス
#使ってるコンパイラなのか言語なのか
#プログラムができないってどういう意味なのか
0555名前は開発中のものです。2006/03/24(金) 03:12:01ID:7W3qOTI+
プログラムの基礎を学ぶ意味でCを最初にやる事を強く勧める
0556名前は開発中のものです。2006/03/24(金) 04:00:40ID:4Uk+3T2/
>>554使いなれたのが一番・・・なるほど、あと説明が変ですみませぬ
>>555やっぱりCが押されるようで、ありがとう
んーやっぱC言語からって意見をよく聞くからC言語がいいのかな


なんかHSP使うと細かな命令がやりにくいとか、
処理が重いとか言われてて、もしHSPに満足できなくて
C言語に乗り換えて使うとしてもHSPの知識では役に立たないとか?
だったら早期に見切りを付けてC言語やったほうがいいのかなって
(;´・ω・
いずれは3Dアクションゲームを作ろうと思ってるからなおさらC言語なのかなと
(こう発言して散っていった先人達は星の数ほどいるらしいから
今は笑い飛ばしてくれていい)
だけど早期にそれなりのアクションゲーム作りたいならHSP使えと言われるジレンマorz
0557名前は開発中のものです。2006/03/24(金) 06:09:45ID:lhqBkY85
とりあえずHSPで何か作っちゃうのが良いよ
0558名前は開発中のものです。2006/03/24(金) 06:57:50ID:fkaCWNcU
HSPの言語の知識は役に立たないかもしれないが、
HSPでのプログラムの経験は、役に立つかもな
0559名前は開発中のものです。2006/03/24(金) 10:40:32ID:6JV0Yf7q
結果が全てなのだぁ
0560名前は開発中のものです。2006/03/24(金) 10:53:44ID:7W3qOTI+
最初はコンソール画面でオセロでも迷路でも作ればいいよ
プログラムすることの面白さに気付ければ
後は誰の後押しも無く自分で学んでいける

HSPはポインタあるのかな?
ポインタって何?(・∀・)
という状態になるのが怖いな

Cでグラフィカルな表現に進む場合にはWindows、DirectXが立ちはだかるわけだが
SDLという道もあるので頑張って欲しい
0561名前は開発中のものです。2006/03/24(金) 17:07:56ID:ynvPJr33
>>553
マジレスするとRuby。趣味言語として。
しかし趣味でゲームつくるくらいならHSPで間違いなく十分。

モチロン職に就くなら話は別だが。
0562名前は開発中のものです。2006/03/24(金) 17:10:41ID:ynvPJr33
連レススマソ

>>560
HSPでも一応ポインタは使えるよ。

ところで、>>555もそうなんだが
なぜ職でプログラミングをやるわけでもない初心者に
Cを進めるのか理解できないんだ。
煽りとかじゃなくて真剣な話ね。

ちょっと答えてくれるとウレシス
0563名前は開発中のものです。2006/03/24(金) 17:19:20ID:6JV0Yf7q
>>562
2DゲームならHSPでもいいかもしれんけど、
3Dゲームになると明らかにdirectXとか使ったほうが良いし
そのためにはC言語くらい出来ておくべき。

それと俺の場合はシューティングゲームを良く作るんだけど、
最近の弾幕バリバリ系のをHSPで作ると凄く処理が重たくなる。
05645532006/03/24(金) 17:25:42ID:4Uk+3T2/

>>557とりあえずHSPで作ってみます

>>558という思考からやっぱり最初からCやるべきなのかと思ってしまう

>>559同意

>>560なんか擬似的にポインタっぽい仕様があるとか聞いた

>>561.562んー趣味LVだからなァ、たしかに・・・


とまあ、Rubyとか出てきたしそれぞれに特徴があるんだったら
説明をお願いしたいんですがorz
初心者すぎてゴメン、とりあえずCはプロ向きで
HSPは初心者向きで他のを使うときには役に立ちにくい感じのでいいのかな
他のDelphiとかどうなんでしょ(´・ω・

とりあえずいずれの目標は
つ{http://www.geocities.jp/ikachi_soft/saintpaulia/index.htm
↑のをもうちょいゲームとして遊べる仕様なのを作ってみたいです
0565名前は開発中のものです。2006/03/24(金) 17:32:18ID:7W3qOTI+
最初に身に付ける言語が基礎になると思うから。

05665532006/03/24(金) 17:38:50ID:4Uk+3T2/
おっと書き込み中にレスが増えてました

>>563
そう、その意見をHSPを使ううえでよく聞かれるんだよね
「処理が重たくなる」っての、それが心配なんだけど
Cで作る場合とかなり違うと思っていいんですか?


C言語が優秀なのはわかった
とりあえずこのスレで質問した結果から
明日書店へひとっ走りして入門書を購入してこようと思います

ちなみに今手元にあるのは
「HSP3プログラミング入門」
「12歳からはじめる、HSP3.0ゲームプログラミング教室」
中古本ですけど値段が手ごろだったので
0567名前は開発中のものです。2006/03/24(金) 17:41:50ID:7W3qOTI+
書籍代はケチるんじゃないぞ
ゲーム買うの我慢しても良書を買うべきだ
05685622006/03/24(金) 17:42:27ID:ynvPJr33
>>563
HSPでも3D扱えるしDirectXでなくとも
今なら[SDL]+[OpenGL]も十分実用に耐え得るようになってきている。
にもかかわらず、未だに皆初心者にCを進めるんだよなー。
HSPの速度は同意。[hspdxfix]を使うとかなり軽減はされるが。
……と[C++] +[DirectX]でゲーム作ってる職業プログラマ志望の
漏れが考えていますw

>>565
だからその基礎にするのがなぜCなのか理解できない。
初心者がCやるくらいならJAVAからはじめたほうがずっといいと思う

>>566
早まるな、HSPならネットの資料で十分足りる、金の無駄だ

やべぇ、長文な漏れキモスwwww
0569名前は開発中のものです。2006/03/24(金) 17:46:37ID:7W3qOTI+
>初心者がCやるくらいならJAVAからはじめたほうがずっといいと思う

初心者がいきなりオブジェクト指向を理解できるとは思えないんだよね
手続き型の限界を知ってからのほうが身につくんじゃない?
CならC++に無理なく移行できるし
Cは色んな意味で入門言語として手堅いんだと思うよ。
0570名前は開発中のものです。2006/03/24(金) 19:44:31ID:UCMQhwlE
C++かJava、それと企画書はUMLの技法を使う
つまりオブジェクト指向を勉強したほうが良い
(C++の言語を作った人(ストラウストラップだっけ?)が、C++から始めることを薦めていた)
手続き型言語のCは、もはや時代遅れ

例えば敵機にしても、一つ一つがオブジェクトであり、個々に判定したり動くのが原則
またクラスを派生させ、敵機などは系統立って設計されるべき
0571名前は開発中のものです。2006/03/24(金) 20:29:43ID:ynvPJr33
>>569
そっか。漏れは初心者の頃オブジェクト指向には目から鱗だったんだが。
今度新規生がまたくるから、ウチの人員を研究対象として
今年は手続き型とオブジェクト指向型とどちらがわかりやすいか
調査なんかしてみるかな。

>>570
趣味プログラマがUMLなんか使うかよ禿www
0572名前は開発中のものです。2006/03/24(金) 20:34:18ID:mFmDrFXE
手続き型を先にやったがために、
オブジェクト志向になじめないってパターンもあるしな
05735532006/03/24(金) 20:40:01ID:4Uk+3T2/
ん、通常はC→C++という流れで覚えると思ったんだが
>>570のいうC++から始めることを薦めてるってのが気になるなぁ

ついさっき本屋でC++の入門本に
「本書はCを知らなくてもC++ができるようになる本です」
ってのがあったんだけどC++から覚えるってのも
一つの手段として考えたほうがいいのかしら
聞けば聞くほどHSPに不安が出てくるな(笑
05745702006/03/24(金) 21:01:26ID:D/m13lxQ
C++よりもCのほうが難しい
Cの本には、こういうプログラミングをすれば処理速度が上がるなどの個別のテクニックの解説が多い
またわけのかわらん自己中なプログラムを組む奴が多い

またクラスが無いから構造体を使うが、構造体にはアクセス権が無いため、
その構造体がどこでアクセスされているか、ソースコードを追っていくのが大変

プログラミングが難しい
0575名前は開発中のものです。2006/03/24(金) 21:29:57ID:ynvPJr33
>>573
この程度の情報量でHSPに不安がでてくるようなら
HSPやるにしてもCの勉強をはじめるにしても長続きしない。
とりあえず手軽に始められるんだからHSPで1ヶ月もやってみ。
そしたらHSPで足りるのか足りないのかわかるから。
なんにしろ3DACTなんて初心者が独学で数ヶ月でできるもんじゃない。

>>574
ただのOOP厨でしたか。お帰りください
0576名前は開発中のものです。2006/03/25(土) 03:43:31ID:lNWu+DsU
ってか、Cから始めるといろいろめんどいというか、
ゲーム作り始めるまでに覚えることが多々有りすぎるから、
だったらまずはゲームってどんなふうに作られてるのか知る上でも、
メッチャ簡単なものでいいからHSPで作っちゃえば良いと思うんだけど。
0577名前は開発中のものです。2006/03/25(土) 04:26:04ID:9+AYDTvc
単純な内容ですぐ遊べるものが欲しいならHSP。
じっくり学んでたくさん作るつもりがあるならC。
0578名前は開発中のものです。2006/03/25(土) 10:55:59ID:Xo5AkaJL
>>577
嘘ばっかか。
たくさん作るつもりならむしろ手軽なHSPだろ
Cで作るならクオリティに凝ってもらいたいものだ
0579名前は開発中のものです。2006/03/25(土) 13:24:10ID:oCQS7gTs
Cは低水準よりの言語だからなあ、ある程度プログラミングに慣れてからのほうが覚えやすいと思うな


結論としては、C言語は覚えておいても損は無いよってことで
0580名前は開発中のものです。2006/03/25(土) 21:19:25ID:1d6aG4+O
俺としては
HSP→手軽、限度低い。
C,C++→とっつきは悪いかも。ただ覚えさえすれば、かなり使える言語。

って感じ。
なんでHSPがよく批判されるかっていうと
入門者に手軽なHSPを薦めること自体は別にいいんだけど
HSPの簡単さになれると他の言語に移りににくくなるんだよね。
まぁそれでもいいって言うんならいいけど
0581名前は開発中のものです。2006/03/26(日) 03:38:03ID:eIBmOWGN
>>580
どうせ向上心のあるやつは半年もすれば
ほうっておいてもHSPから離れていくんだから、
当面初心者にはHSPを進めておけばいいと思うんだ。

ただ、
>まぁそれでもいいって言うんならいいけど
な上から見た態度はすこぶる気に食わないんだ。
0582名前は開発中のものです。2006/03/26(日) 04:19:19ID:5pnITBBi
そだね、やりたいことができないってわかったら、自分で他に移るんだし
これで十分だと思ったら、そのままでいいし。
0583名前は開発中のものです。2006/03/29(水) 00:14:45ID:9KBKOr3E
とりあえずJavaScriptとかでプログラムの雰囲気を覚えるのもいいかと思う。
結果がすぐ分かるし。
つーか他の言語に移るとかよく分かんない。
今まで使ってきたもの全部適材適所で使うでしょ?
全体をC++とかJavaで作ってるときに、使い捨てツールが急に
欲しくなったときにHSPとかPerlとか使う、みたいな。
0584名前は開発中のものです。2006/03/29(水) 00:30:48ID:QNwATx3h
>>583
ヒント:いきなりたくさんやるのむり
0585名前は開発中のものです。2006/03/29(水) 00:54:46ID:hjjCj64h
漏れ、Javaなんて全く使った事が無い
で、初めての人にはJavaが良いのか、HSPが良いのかは分からない

が、BASICから入った漏れとしては、プログラマとして初心者なら、
初めの1〜3年ぐらいは簡単な言語を使うことをオススメしたい

ちなみに今は、C++から全く動けない体になってマス
0586名前は開発中のものです。2006/03/29(水) 17:16:40ID:FqCl1dxd
HSPは一番最初にお付き合いする言語にはちょうど良いんじゃない?
簡単にウインドウ出せて、描画も出来る、日本語資料いっぱい。

理解できなきゃプログラムは組めないわけだし
最初の言語は分かりやすさ優先にするのが良いんじゃないかな、と思ってる
0587名前は開発中のものです。2006/03/30(木) 04:19:50ID:56EhH4Nk
スーパーマリオ3系の2Dアクションゲームを作ってるんですが、
斜めの坂と接触したときの自機のずらし方向について悩んでいます。

・自機の当たり判定を1点(1x1の大きさ)で、あたりを判定した場合には、
 坂のパターンに応じてうまく動かせます。

・自機の当たり判定を大きく(16x32)した場合には、マップデータが8x8ドット
 単位なので、どこで判定をとればよいか悩んでおります。

たとえば、16x32の4スミ(※)でそれぞれあたりを取った場合、
 ※4スミ=(0,0) (16,0) (0,32) (16,32)
あたるマップチップがそれぞれ別のものになりますので、
どうしてもずらし方向が矛盾してしまうのです。

ここ1年ほど、この論理についてずっと悩みっぱなしなのですが
作例、論理などわかるかたいらっしゃいませんでしょうか。
0588名前は開発中のものです。2006/03/30(木) 15:00:35ID:Ehg64lwS
ttp://pc8.2ch.net/test/read.cgi/gamedev/1017730241/634n
0589名前は開発中のものです。2006/03/30(木) 15:29:26ID:Wa3+p1az
ちょっとマリオ3をやってみたら
?ブロックや土管とか通常の地面は、足先までの長めの判定をとってるけど
坂とかを含んでるチップでの、足元判定は下底の中心1x1でしかやってないっぽいな

0590名前は開発中のものです。2006/03/30(木) 17:37:15ID:1FMFXNfJ
つまりこうか?マリオの座標を
123
456
789
として、通常当たり判定は1379の4隅を使って
坂の当たり判定処理だけ8の位置のみでしている。と?
0591名前は開発中のものです。2006/03/30(木) 21:06:27ID:iAtYOob+
>>589
===
***=
****=
*****=
******=======
って判定で、見た目だけずれてるとかじゃなくて?
0592名前は開発中のものです。2006/03/31(金) 00:34:18ID:hNd3BF7c
>>591
ごめん、図がよく分からんけど
おそらく見た目とかそういう話じゃないと思う
あと、敵はどんな地形でも足元は1ドットしか判定見てないっぽいな
05935872006/03/31(金) 03:33:00ID:akpZ63XX
>>588,589
有用な情報をホントにありがとうございます。

590さん風にいうと、
とりあえず2段階にわけて、どこに立っているかは8で判定して
坂でなければ、1379の4隅を使って判定する、を
やってみようと思います。

ただ、まじめに判定するとすれば、588さんに教えてもらったURLの
チュートリアルの内容を実装する必要がありそうですね。
まさにこのノウハウが知りたかったのですが、めちゃ奥が深そうです。
ありがとうございました。

このサンプルの重さを解析してみないとわかりませんが、
8bitゲーム機でも耐えうる速度がだせる判定方法であれば
マリオ3的なアクションゲームでは、まさにこれを実装する必要が
ありますよね。頭がいたいですが。

説明が英語だけにかなり厳しいですが
アクションスクリプトをCに移植しながら、理解を深めてみますです。
もしスピードが稼げる方法でなければ、これと似た結果をだせる
簡易計算方法が他にもあるかもしれませんね。
0594名前は開発中のものです。2006/03/32(土) 13:26:32ID:gZPGpn4t
>>589
それは結構難しそうな気が
0595名前は開発中のものです。2006/04/05(水) 01:59:43ID:NKcmYNvl
gああああ。
斜めの坂むずかシー。
誰か概念を教えて栗。
0596名前は開発中のものです。2006/04/08(土) 22:47:03ID:o8GmMFvy
つ「内積、外積」

自分で調べて学ぶ事も重要
0597名前は開発中のものです。2006/04/09(日) 01:37:25ID:n8SWzf4S
内積、外積、垂線の求め方などが考え方に必要なのはわかるが
2Dアクションゲームのプログラムには必要ない。3Dでは必須。
のハズ。
0598名前は開発中のものです。2006/04/09(日) 23:47:28ID:n8SWzf4S
>596
念のため、2Dベクトルでの内積による当たりを判定してみましたが、
sqrt()の負荷がちょっと高いけど、全然実用的でした。
ごめんなさい。悪かったです。
0599名前は開発中のものです。2006/05/18(木) 21:31:48ID:vFoh02c7
保守
0600名前は開発中のものです。2006/05/22(月) 00:55:20ID:oNNgZz3T
sqrtなんて使わなくね?
0601名前は開発中のものです。2006/05/22(月) 00:57:22ID:invPdzO+
単位ベクトルとか求めるとき必須
0602名前は開発中のものです。2006/05/22(月) 01:45:22ID:oNNgZz3T
もしかしてみんな点と三角形の当たり判定じゃなくて
線と三角形の当たり判定でやってるの?
0603名前は開発中のものです。2006/05/22(月) 21:38:24ID:oNNgZz3T
点と三角形の当たり判定

点(px,py) 三角形(p1x,p1y),(p2x,p2y),(p3x,p3y)
v1x=pxーp1x v1y=pyーp1y
v2x=pxーp2x v2y=pyーp2y
v3x=pxーp3x v3y=pyーp3y
v1=v1x*v2yーv2x*v1y
v2=v2x*v3yーv3x*v2y
v3=v3x*v1yーv1x*v3y
(v1>0)かつ(v2>0)かつ(v3>0)
または
(v1<0)かつ(v2<0)かつ(v3<0)
のとき当たり


誰か線と三角形の当たり判定教えて
0604名前は開発中のものです。2006/05/22(月) 21:39:15ID:9H//M9F4
お前に教えるハンテイはねぇ!
0605名前は開発中のものです。2006/05/22(月) 21:40:28ID:oNNgZz3T
あれ なんか表示がおかしい
0606名前は開発中のものです。2006/05/23(火) 01:07:00ID:ig3OAxwb
2D上で線と三角形だと連立方程式立てられないんじゃないかな。
むしろ線と線(三角形の辺)でやったほうが良い希ガス。
0607名前は開発中のものです。2006/05/24(水) 00:14:18ID:w03ixZiV
>>606
サンクス
0608名前は開発中のものです。2006/06/09(金) 06:37:51ID:/Hg1o1U9
衝突処理書き上げたらスタックが発生しまくり
ムカムカage
0609名前は開発中のものです。2006/06/10(土) 00:44:59ID:INde8ODr
スタックが発生するとはまたよく分からない言葉ですね
0610名前は開発中のものです。2006/06/10(土) 22:00:32ID:YNMEkrNo
データ構造のスタックしか知らん人が登場した。
さすがゲ作板だ。
0611名前は開発中のものです。2006/06/16(金) 00:44:02ID:FNjrQ/wZ
スタックってなーに?
0612名前は開発中のものです。2006/06/21(水) 00:34:39ID:RcYQeqBn
オー人事オー人事
0613名前は開発中のものです。2006/06/21(水) 10:02:38ID:xkmiQecp
>>612
ソレ書こうと思ったけどツッコミなさそうなので
書かなかったよ、そんな勇者なおまえに

スタッ○サービスじゃねーかよ
0614名前は開発中のものです。2006/06/27(火) 22:10:52ID:zklAs/7x
誰か>>603の解説お願いします
どうしても分かりません
0615名前は開発中のものです。2006/06/27(火) 22:34:22ID:G7pNNqKH
http://gamdev.org/up/img/6301.jpg
0616名前は開発中のものです。2006/06/27(火) 23:34:17ID:kVI76xNg
>614

v1x=pxーp1xは

 ・(px,py)          ・(p1x,p1y)

           ・(p2x,p2y)          
                    ・(p3x,p3y)
のとき

(px,py)     線分v1
  ・-----------------------・(p1x,p1y)

           ・(p2x,p2y)          
                    ・(p3x,p3y)
v1xは線分v1のxの長さ
同じくv1yはyの長さ

v1=v1x*v2yーv2x*v1y はもしv1=0だと
0=v1x*v2yーv2x*v1yでv2x*v1y=v1x*v2yで
v1x:v1y=v2x:v2yとなる
つづく
0617名前は開発中のものです。2006/06/27(火) 23:35:15ID:kVI76xNg
つまりv1=0の状態は
(px,py)    (p1x,p1y)     (p2x,p2y) 
  ・-----------・-------------・

(p1x,p1y)   (px,py)     (p2x,p2y) 
  ・-----------・-------------・

(p2x,p2y)   (p1x,p1y)     (px,py) 
  ・-----------・-------------・
・・etc
と3点が同直線上にあることを指す
v1>0やv1<0なのは互いに同直線上にないこと指す

値が全て正のとき
v1=v1x*v2yーv2x*v1y がv1<0のとき常に

(px,py)    
  ・
 
 (p1x,p1y)     (p2x,p2y)
  ・----------->・  
となる

v1=v1x*v2yーv2x*v1y がv1>0のとき常に

 (p1x,p1y)     (p2x,p2y)
  ・----------->・ 
 
(px,py)    
  ・
となる
つづく
0618名前は開発中のものです。2006/06/27(火) 23:38:37ID:kVI76xNg
3つの辺を同時に考えると点(px,py)は
(px,py)@    
  ・
 (p3x,p3y)     (p1x,p1y)
  ・----------->・  
   ▽  (px,py)C|
     \   ・  |  ・(px,py)A
      \    ..|
        \  ..|
  ・       \ V 
 (px,py)B     ・(p2x,p2y)
の4つが考えられる
@は (v1<0)かつ(v2>0)かつ(v3<0)か
   (v1<0)かつ(v2<0)かつ(v3>0)かになる
Aは (v1>0)かつ(v2<0)かつ(v3<0)か
   (v1<0)かつ(v2<0)かつ(v3>0)かになる
Bは (v1>0)かつ(v2<0)かつ(v3<0)か
   (v1<0)かつ(v2>0)かつ(v3<0)かになる
Cは (v1<0)かつ(v2<0)かつ(v3<0)になるこのとき点は面上にあることになる
 もし値が全て負なら符号が全て逆転するので
@は (v1>0)かつ(v2<0)かつ(v3>0)か
   (v1>0)かつ(v2>0)かつ(v3<0)かになる
Aは (v1<0)かつ(v2>0)かつ(v3>0)か
   (v1>0)かつ(v2>0)かつ(v3<0)かになる
Bは (v1<0)かつ(v2>0)かつ(v3>0)か
   (v1>0)かつ(v2<0)かつ(v3>0)かになる
Cは (v1>0)かつ(v2>0)かつ(v3>0)になるこのとき点は面上にあることになる
 すなわち
(v1>0)かつ(v2>0)かつ(v3>0)
または
(v1<0)かつ(v2<0)かつ(v3<0) になるこのとき点は面上にあることになる
0619名前は開発中のものです。2006/06/28(水) 19:32:25ID:PGbIKTZD
>>618の訂正
3つの辺を同時に考えると点(px,py)は
(px,py)@     (px,py)A
  ・   \     ・     |・(px,py)B
       \          |
      --・----------->・-----  
   (p1x,p1y) ▽  (px,py)F|(p2x,p2y)
           \   ・  |  ・(px,py)C
            \    ..|
              \  ..|
        ・       \ V 
       (px,py)E      ・  (p3x,p3y)
                  |\
                  |  \
                    ・(px,py)D
の4つが考えられる
@(v1<0)かつ(v2>0)かつ(v3<0)、
A(v1<0)かつ(v2>0)かつ(v3>0)、
B(v1<0)かつ(v2<0)かつ(v3>0)、
C(v1>0)かつ(v2<0)かつ(v3>0)、
D(v1>0)かつ(v2<0)かつ(v3<0)、
E(v1<0)かつ(v2<0)かつ(v3>0)、
F(v1>0)かつ(v2>0)かつ(v3>0)になるこのとき点は面上にあることになる

 もし値が全て負なら符号が全て逆転するので
 すなわち
(v1>0)かつ(v2>0)かつ(v3>0)
または
(v1<0)かつ(v2<0)かつ(v3<0) になるこのとき点は面上にあることになる
0620名前は開発中のものです。2006/07/11(火) 16:18:01ID:Ogk6iPLD
>>618
当たり判定を中心の1ドットで
坂道判定するのって可能ですか?
平面はx座標、y座標を独立させて当ったときに
境界線ぎりぎりの座標までのを取得しています
■ このスレッドは過去ログ倉庫に格納されています