X operations(XOPS)に非常に近いFPSゲームを制作・リメイクし、成果物をオープンソースとして公開することを目的としたプロジェクトです。
リビジョン | 347 (tree) |
---|---|
日時 | 2023-01-29 00:37:00 |
作者 | ![]() |
人とマップの当たり判定を修正、マップ着弾音の発生確率を変更
@@ -1630,10 +1630,8 @@ | ||
1630 | 1630 | //移動先がブロックへめり込んでいるなら移動を無効にする |
1631 | 1631 | for(int i=0; i<bs; i++){ |
1632 | 1632 | if( CheckBlockID[i] == true ){ |
1633 | - if( | |
1634 | - (CollD->CheckBlockInside(i, pos_x, pos_y + 2.0f, pos_z, true, NULL) == true)|| | |
1635 | - (CollD->CheckBlockIntersectRay(i, pos_x, pos_y + 2.0f, pos_z, 0.0f, 1.0f, 0.0f, NULL, &Dist, (HUMAN_HEIGHT-2.0f*2)) == true) | |
1636 | - ){ | |
1633 | + // ※レイの始点がブロックの内側かは判定しない。 | |
1634 | + if( CollD->CheckBlockIntersectRay(i, pos_x, pos_y + HUMAN_HEIGHT-2.0f, pos_z, 0.0f, -1.0f, 0.0f, NULL, &Dist, (HUMAN_HEIGHT-2.0f*2)) == true ){ | |
1637 | 1635 | pos_x = pos_x2; |
1638 | 1636 | pos_z = pos_z2; |
1639 | 1637 | } |
@@ -1856,10 +1854,8 @@ | ||
1856 | 1854 | speed = sqrtf(dist_x*dist_x + dist_y*dist_y + dist_z*dist_z); |
1857 | 1855 | |
1858 | 1856 | //移動先との間にブロックがあるならば元に戻す |
1859 | - if( | |
1860 | - (CollD->CheckALLBlockInside(pos_x2, pos_y2 + HUMAN_MAPCOLLISION_CHECK_HEIGHT, pos_z2) == true)|| | |
1861 | - (CollD->CheckALLBlockIntersectRay(pos_x2, pos_y2 + HUMAN_MAPCOLLISION_CHECK_HEIGHT, pos_z2, dist_x/speed, dist_y/speed, dist_z/speed, NULL, NULL, &Dist, speed) == true) | |
1862 | - ){ | |
1857 | + // ※レイの始点がブロックの内側かは判定しない。 | |
1858 | + if( CollD->CheckALLBlockIntersectRay(pos_x2, pos_y2 + HUMAN_MAPCOLLISION_CHECK_HEIGHT, pos_z2, dist_x/speed, dist_y/speed, dist_z/speed, NULL, NULL, &Dist, speed) == true ){ | |
1863 | 1859 | pos_x = pos_x2; |
1864 | 1860 | pos_y = pos_y2; |
1865 | 1861 | pos_z = pos_z2; |
@@ -593,11 +593,11 @@ | ||
593 | 593 | |
594 | 594 | case HIT_MAP: //マップ着弾音 |
595 | 595 | Resource->GetBulletSound(&hitsoundA, &hitsoundB, NULL, NULL, NULL, NULL); |
596 | - if( GetRand(2) ){ | |
597 | - id = hitsoundA; | |
596 | + if( GetRand(3) == 0 ){ | |
597 | + id = hitsoundB; | |
598 | 598 | } |
599 | 599 | else{ |
600 | - id = hitsoundB; | |
600 | + id = hitsoundA; | |
601 | 601 | } |
602 | 602 | volume = MAX_SOUNDHITMAP; |
603 | 603 | break; |