Violet Vreath is Shooter Game for Windows XP+(個人制作シューティングゲーム)
Revision | feedd07270e11b910b11c45df49258fc0d93acbf (tree) |
---|---|
Zeit | 2023-05-25 20:43:20 |
Autor | gecchi <gecchi@boch...> |
Commiter | gecchi |
MyBunshinWateringLaserChip001をまたちょっとなめらかに。解像度をダラバー基準にしようと思った。
@@ -44,7 +44,7 @@ MyBunshin::MyBunshin(const char* prm_name, MyBunshinController* prm_pBunshinCont | ||
44 | 44 | _class_name = "MyBunshin"; |
45 | 45 | pBase_ = prm_pBase; |
46 | 46 | pBunshinController_ = prm_pBunshinController; |
47 | - _laser_kind = LASER_THUNDER; //LASER_KOANYA; //LASER_THUNDER | |
47 | + _laser_kind = LASER_KOANYA; //LASER_KOANYA; //LASER_THUNDER | |
48 | 48 | |
49 | 49 | //自弾ストック |
50 | 50 | pDepo_MyBunshinShot_ = NEW GgafCore::ActorDepository("Depo_MyBunshinShot"); |
@@ -24,10 +24,10 @@ using namespace GgafLib; | ||
24 | 24 | using namespace VioletVreath; |
25 | 25 | |
26 | 26 | const velo MyBunshinWateringLaserChip001::MAX_VELO = PX_C(512); //この値を大きくすると、最高速度が早くなる。 |
27 | -const int MyBunshinWateringLaserChip001::R_MAX_ACCE = 18; //MAX_VELO に対する加速度、この値を大きくすると、カーブが緩くなる | |
27 | +const int MyBunshinWateringLaserChip001::R_MAX_ACCE = 20; //MAX_VELO に対する加速度、この値を大きくすると、カーブが緩くなる | |
28 | 28 | const velo MyBunshinWateringLaserChip001::INITIAL_VELO = MAX_VELO*0.7; //レーザー発射時の初期速度 |
29 | 29 | const acce MyBunshinWateringLaserChip001::MAX_ACCE_RENGE = MAX_VELO/R_MAX_ACCE; |
30 | -const velo MyBunshinWateringLaserChip001::MIN_VELO_ = MyBunshinWateringLaserChip001::INITIAL_VELO/20; // ÷8 は、最低移動する各軸のINITIAL_VELOの割合 | |
30 | +const velo MyBunshinWateringLaserChip001::MIN_VELO_ = MyBunshinWateringLaserChip001::INITIAL_VELO/3; // ÷3 は、最低移動する各軸のINITIAL_VELOの割合 | |
31 | 31 | GgafDx::Model* MyBunshinWateringLaserChip001::pModel_ = nullptr; |
32 | 32 | int MyBunshinWateringLaserChip001::tex_no_ = 0; |
33 | 33 |
@@ -92,7 +92,7 @@ void MyBunshinWateringLaserChip001::processBehavior() { | ||
92 | 92 | double power = active_frame <= 300 ? UTIL::SHOT_POWER[active_frame] : UTIL::SHOT_POWER[300]; |
93 | 93 | getStatus()->set(STAT_AttackPowerRate, power); |
94 | 94 | _power = power; |
95 | - GgafDx::NaviVehicle* const pNaviVehicle = getNaviVehicle(); | |
95 | + GgafDx::NaviVehicle* pNaviVehicle = getNaviVehicle(); | |
96 | 96 | MyBunshin::AimInfo* pTipChip_AimInfo = pTipChip_AimInfo_; |
97 | 97 | |
98 | 98 | if (active_frame >= 60*10) { |
@@ -102,9 +102,23 @@ void MyBunshinWateringLaserChip001::processBehavior() { | ||
102 | 102 | } else { |
103 | 103 | GgafDx::GeometricActor* pAimTarget = pTipChip_AimInfo->pTarget; |
104 | 104 | if (pAimTarget) { |
105 | + | |
106 | + //前方チップのNaviVehicleの影響を若干うけるようにしてなめらかにする試み | |
107 | + MyBunshinWateringLaserChip001* pB = (MyBunshinWateringLaserChip001*) getBehindChip(); | |
108 | + MyBunshinWateringLaserChip001* pF = (MyBunshinWateringLaserChip001*) getInfrontChip(); | |
109 | + if (pB) { | |
110 | + GgafDx::NaviVehicle* pB_pNaviVehicle = pB->getNaviVehicle(); | |
111 | + pNaviVehicle->setVeloByVc( | |
112 | + pNaviVehicle->_velo_vc_x*0.9 + pB_pNaviVehicle->_velo_vc_x*0.1, | |
113 | + pNaviVehicle->_velo_vc_y*0.9 + pB_pNaviVehicle->_velo_vc_y*0.1, | |
114 | + pNaviVehicle->_velo_vc_z*0.9 + pB_pNaviVehicle->_velo_vc_z*0.1 | |
115 | + ); | |
116 | + } | |
117 | + | |
118 | + | |
105 | 119 | frame aim_time_out_t1 = pTipChip_AimInfo->aim_time_out_t1; |
106 | 120 | //先端チップ時(消える可能性のあるLeaderChipにあらず!)、T1が相変わらずロックオンターゲットならば更新 |
107 | - if (getInfrontChip() == nullptr && pAimTarget == pLockonCursor_->pTarget_ && pTipChip_AimInfo->spent_frames_to_t1 < aim_time_out_t1) { | |
121 | + if (pF == nullptr && pAimTarget == pLockonCursor_->pTarget_ && pTipChip_AimInfo->spent_frames_to_t1 < aim_time_out_t1) { | |
108 | 122 | pTipChip_AimInfo->updateT1(pAimTarget->_x, pAimTarget->_y, pAimTarget->_z); //t1更新 |
109 | 123 | } |
110 | 124 | MyBunshinWateringLaserChip001* pAimLeaderChip = pTipChip_AimInfo->pLeaderChip; |