提示コードの///コメント内部のコードですが当たり判定をしてめり込み量を補正するのですが右キーを押しっぱなしにすると補正しているのにも関わらず右に動いいてめり込んでしまうのですがこれはどうしたらいいのでしょか?何かの誤差だと思い色々値をいじりましたが原因がわかりませんどうすればいいのでしょうか?
右キーを押して補正されて1ドットづつ右に動いてめり込んでしまいます。
getVector();というのは緑(プレイヤー)の移動している方向です。
cpp
1 2//交差判定 3void CircleCollision::Intersect(CircleCollision& col) 4{ 5 //printf("あああ%d\n",col.getRadius()); 6 //printf("あああ%d\n",getRadius()); 7 8 int c = sqrt((col.getCenter().x - getCenter().x) * (col.getCenter().x - getCenter().x) + 9 (col.getCenter().y - getCenter().y) * (col.getCenter().y - getCenter().y)); 10 11 //printf("C:%d\n",c); 12 if ( c <= (col.getRadius() + getRadius()) ) 13 { 14// printf("true\n"); 15 16 //タグと当たり判定 17 setCol(true); //当たり判定を設定 18 setColTag(col.getMyTag()); //タグを取得 19 col.setColTag(getMyTag()); //タグを設定 20 21 if (getTriggerType() == false) 22 { 23 int len = sqrt((col.getCenter().x - getCenter().x) * (col.getCenter().x - getCenter().x) + 24 (col.getCenter().y - getCenter().y) * (col.getCenter().y - getCenter().y)); 25 printf("len %d\n",len); 26 27 float m = (col.getRadius() + getRadius()) - len; //めり込み量 28 29// printf("いいい %d\n", getRadius()); 30// printf("ああああ %d\n", col.getRadius()); 31 32// printf("m %f\n",m); 33 34 glm::vec2 vec = getVector(); 35 vec = vec * -1.0f; //ベクトルを反転 36 printf("vec : %.2f , %.2f \n", vec.x, vec.y); 37 38 vec = glm::normalize(vec); 39 vec.x = vec.x * m ; 40 vec.y = vec.y * m ; 41// printf("vec : %.2f , %.2f \n", vec.x, vec.y); 42 43 44 glm::ivec2 pos = vec; 45 printf("pos : %d , %d \n",pos.x,pos.y); 46////////////////////////////////////////////////////////////////////////////////// 47 glm::ivec2 p = getCenter() += (pos); 48 //printf("p : %d , %d \n",p.x,p.y); 49 setCenterValue(p); 50 51///////////////////////////////////////////////////////////////////////////////// 52 53 } 54 } 55 else 56 { 57 //交差していない 58 // printf("false\n"); 59 60 //タグと当たり判定 61 setCol(false); //当たり判定を設定 62 setColTag(Tag::Invalid); //タグを取得 63 col.setColTag(Tag::Invalid); //タグを設定 64 } 65} 66
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/03/14 07:22
2021/03/15 01:10 編集
退会済みユーザー
2021/03/15 01:09
2021/03/15 01:11
退会済みユーザー
2021/03/15 01:12
2021/03/15 01:20
2021/03/15 01:44
退会済みユーザー
2021/03/16 23:58 編集