3Dのゲームで当たると進行方向の逆にちょっと飛ばしたい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
make_unique
記事: 6
登録日時: 2年前

3Dのゲームで当たると進行方向の逆にちょっと飛ばしたい

#1

投稿記事 by make_unique » 2年前

こんにちは。現在3Dゲームを作っています。
そこで衝突したときに当たった方向の逆に飛ばしたいのですがどういう求め方でできますか?
当たり判定は球と球でやっていて現在は当たっているかどうかは判定できます。

アバター
あたっしゅ
記事: 664
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: 3Dのゲームで当たると進行方向の逆にちょっと飛ばしたい

#2

投稿記事 by あたっしゅ » 2年前

東上☆海美☆「

viewtopic.php?f=3&t=21268&p=156518&hili ... 81#p156518
上記は 2 次元での例ですが、3 次元でも、原理的に同じみみ。

もっとも、簡単な方法でやるなら、

コード:

class T3d {
protected:
    float x;
    float y;
    float z;
    float vx;
    float vy;
    float vz;
    void swap( float* a, float* b ) {
        float tmp = *a;
        *a = *b;
        *b = tmp;
    }
    void conflict( T3d* obj ) {
        swap( &vx, &(obj->vx) );
        swap( &vy, &(obj->vy) );
        swap( &vz, &(obj->vz) );
    }
public:
    T3d() {}
    virtual ~T3d() {}
};


int main()
{
    printf("Hello World");

    return 0;
}
https://www.onlinegdb.com/
GDB online Debugger でコンパイル確認。
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

アバター
あたっしゅ
記事: 664
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: 3Dのゲームで当たると進行方向の逆にちょっと飛ばしたい

#3

投稿記事 by あたっしゅ » 2年前

東上☆海美☆「
 ただ今、自分の環境で、DirectX 12 のプログラムで、
パース表示できるようにする段階で、手間取っているみみ。

 DirectX 12 は、なんにもやらないと、
x, y は -1.0..1.0, z は、0.0..1.0 であること、
等角写像(並行写像)になっちゃうこと
が、わかった事が収穫みみ。

 『北山 洋幸、512 ビットベクトルプログラミング入門 AVX-512 命令を駆使しよう、カットシステム』
を買ったので、将来は、AOS-SOA 変換/SOA-AOS 変換 etc. をやりたい所みみ。
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

返信

“C言語何でも質問掲示板” へ戻る