トップページ > 記事閲覧
HitCheck_Triangle_Triangleについて
名前:コバン 日時: 2017/03/16 23:46

初めまして。 HitCheck_Triangle_Triangleという関数を見つけ この関数を使う際にVECTORのz値を0にすれば2Dゲームに利用できると考え、下の様なプログラムを実行したのですが 衝突していないという判定になってしまいました。 これは3D関数の仕様ですか? #include "DxLib.h" int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { ChangeWindowMode(TRUE); SetDrawScreen(DX_SCREEN_BACK); //裏画面設定 if (DxLib_Init() == -1) { //DXライブラリの初期化 return -1; } //画面更新 & メッセージ処理 & 画面消去 & 簡易画面出力履歴クリア while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0 && clsDx() == 0) { VECTOR a, b, c, d, e, f; a = VGet(50, 200, 0); b = VGet(400, 200, 0); c = VGet(400, 400, 0); d = VGet(200, 100, 0); e = VGet(300, 100, 0); f = VGet(200, 400, 0); DrawTriangle(a.x, a.y, b.x, b.y, c.x, c.y, GetColor(255, 0, 0), FALSE); DrawTriangle(d.x, d.y, e.x, e.y, f.x, f.y, GetColor(0, 0, 255), FALSE); int r = HitCheck_Triangle_Triangle(a, b, c, d, e, f); printfDx("%d\n", r); } DxLib_End(); // DXライブラリ終了処理 return 0; }
メンテ

Page: 1 |

Re: HitCheck_Triangle_Triangleについて ( No.1 )
名前:管理人 日時:2017/03/20 00:54

> これは3D関数の仕様ですか? すみません、関数名と関数の解説が誤っていました… こちらの関数は、厳密には「当たっているかの判定」ではなく「交差しているかの判定」なので、 二つの三角形の頂点の Z が全て 0 の場合、「接してはいるが交差はしていない」状態になり、 戻り値が FALSE となってしまいます 2D用の三角形同士の当たり判定をするための関数を追加したバージョンをアップしましたので、 よろしければダウンロードしてください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.exe // Windows版 C++ Builder 10.1 Berlin 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest.exe // Android版 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』をして下さい) 以下の関数を追加しました // 三角形と三角形の当たり判定( 2D版 )( TRUE:当たっている FALSE:当たっていない ) int HitCheck_Triangle_Triangle_2D( VECTOR Triangle1Pos1, VECTOR Triangle1Pos2, VECTOR Triangle1Pos3, VECTOR Triangle2Pos1, VECTOR Triangle2Pos2, VECTOR Triangle2Pos3 ) ; 使い方は HitCheck_Triangle_Triangle と同じです ( 引数は VECTOR ですが、Z の値は無視されます )
メンテ
Re: HitCheck_Triangle_Triangleについて ( No.2 )
名前:コバン(解決) 日時:2017/04/05 05:54

返事が遅くなってすみません。 なるほど、交差してるかの判定でしたか。 バージョンアップ版まで作っていただき本当にありがとうございます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存