• R/O
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

X operations(XOPS)に非常に近いFPSゲームを制作・リメイクし、成果物をオープンソースとして公開することを目的としたプロジェクトです。


Commit MetaInfo

Revision255 (tree)
Time2020-12-31 11:47:59
Authorxops-mikan

Log Message

死亡して倒れる際の腕などのモーションを改善

Change Summary

Incremental Difference

--- trunk/object.cpp (revision 254)
+++ trunk/object.cpp (revision 255)
@@ -1076,6 +1076,18 @@
10761076 //! @return 静止した死体:4 倒れ終わった直後:3 倒れている最中:2 倒れ始める:1 何もしない:0
10771077 int human::CheckAndProcessDead(class Collision *CollD)
10781078 {
1079+ if( hp <= 0 ){
1080+ //腕の角度
1081+ if( armrotation_y < 0.0f ){
1082+ armrotation_y -= DegreeToRadian(6);
1083+ if( armrotation_y < DegreeToRadian(-90) ){ armrotation_y = DegreeToRadian(-90); }
1084+ }
1085+ else{
1086+ armrotation_y += DegreeToRadian(6);
1087+ if( armrotation_y > DegreeToRadian(90) ){ armrotation_y = DegreeToRadian(90); }
1088+ }
1089+ }
1090+
10791091 #ifdef HUMAN_DEADBODY_COLLISION
10801092
10811093 //メモ:
@@ -1119,14 +1131,6 @@
11191131 add_ry = HUMAN_DEADADDRY * -1;
11201132 }
11211133
1122- //腕の角度
1123- if( armrotation_y < 0.0f ){
1124- armrotation_y = DegreeToRadian(-90);
1125- }
1126- else{
1127- armrotation_y = DegreeToRadian(90);
1128- }
1129-
11301134 //死体が埋まらぬよう、高さを +1.0 する
11311135 pos_y += 1.0f;
11321136
@@ -1319,25 +1323,20 @@
13191323 return 2;
13201324 }
13211325 else if( hp <= 0 ){ //HPが 0 以下になった(死亡した)瞬間なら、倒し始める
1322- //体の角度・腕の角度
1323- switch( GetRand(4) ){
1324- case 0:
1325- add_ry = HUMAN_DEADADDRY;
1326- armrotation_y = DegreeToRadian(90);
1327- break;
1328- case 1:
1329- add_ry = HUMAN_DEADADDRY * -1;
1330- armrotation_y = DegreeToRadian(90);
1331- break;
1332- case 2:
1333- add_ry = HUMAN_DEADADDRY;
1334- armrotation_y = DegreeToRadian(-90);
1335- break;
1336- case 3:
1337- add_ry = HUMAN_DEADADDRY * -1;
1338- armrotation_y = DegreeToRadian(-90);
1339- break;
1326+ float tr;
1327+
1328+ //最後に攻撃を受けた方向を計算
1329+ tr = Hit_rx - rotation_x;
1330+ for(; tr > (float)M_PI; tr -= (float)M_PI*2){}
1331+ for(; tr < (float)M_PI*-1; tr += (float)M_PI*2){}
1332+
1333+ //体の角度
1334+ if( ((float)M_PI/2*-1 < tr)&&(tr < (float)M_PI/2) ){
1335+ add_ry = HUMAN_DEADADDRY;
13401336 }
1337+ else{
1338+ add_ry = HUMAN_DEADADDRY * -1;
1339+ }
13411340
13421341 rotation_y += add_ry;
13431342