• R/O
  • HTTP
  • SSH
  • HTTPS

提交

Frequently used words (click to add to your profile)

javac++androidlinuxc#objective-cqtwindows誰得cocoapythonphprubygameguibathyscaphec翻訳omegat計画中(planning stage)frameworktwittertestdomvb.netdirectxbtronarduinopreviewerゲームエンジン

Violet Vreath is Shooter Game for Windows XP+(個人制作シューティングゲーム)


Commit MetaInfo

修订版2167b6d7153c2eae6ef85498dd6c6895a51d7cd0 (tree)
时间2022-05-15 21:20:22
作者gecchi <gecchi@boch...>
Commitergecchi

Log Message

MyBunshinWateringLaserChip001 のアルゴリズム見直し中。こっちのほうがいいかな?

更改概述

差异

--- a/GgafLib/src/jp/ggaf/lib/util/CollisionChecker3D.cpp
+++ b/GgafLib/src/jp/ggaf/lib/util/CollisionChecker3D.cpp
@@ -99,6 +99,7 @@ CNT:
9999 coord max_dx = pColliPart->_hdx + pOppColliPart->_hdx;
100100 if ((ucoord)( (pOppActor->_x + pOppColliPart->_cx) - (pActor->_x + pColliPart->_cx) + max_dx ) < (ucoord)(2*max_dx)) {
101101 //↑左辺計算が0より小さい場合 unsigned キャストにより正の大きな数になるので条件成立しない事を利用し、ABSの判定を一つ除去してる。
102+ //BOX vs BOX の当たり判定頻度はパフォーマンスに大きな影響を与えるため、わずかでも高速化したいため。
102103 coord max_dz = pColliPart->_hdz + pOppColliPart->_hdz;
103104 if ((ucoord)( (pOppActor->_z + pOppColliPart->_cz) - (pActor->_z + pColliPart->_cz) + max_dz ) < (ucoord)(2*max_dz)) {
104105 coord max_dy = pColliPart->_hdy + pOppColliPart->_hdy;
--- a/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/Bunshin/MyBunshin.cpp
+++ b/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/Bunshin/MyBunshin.cpp
@@ -25,8 +25,6 @@
2525 #include "jp/ggaf/dx/actor/supporter/Colorist.h"
2626 #include "jp/gecchi/VioletVreath/actor/effect/EffectTurbo002.h"
2727
28-
29-
3028 using namespace GgafLib;
3129 using namespace VioletVreath;
3230
--- a/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/Bunshin/MyBunshin.h
+++ b/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/Bunshin/MyBunshin.h
@@ -4,6 +4,7 @@
44 #include "jp/gecchi/VioletVreath/actor/VvEffectActor.hpp"
55 #include "jp/ggaf/lib/actor/DefaultMeshSetActor.h"
66 #include "jp/gecchi/VioletVreath/God.h"
7+#include "jp/gecchi/VioletVreath/actor/my/MyShip.h"
78 #include "jp/gecchi/VioletVreath/scene/Spacetime.h"
89 #include "jp/gecchi/VioletVreath/scene/Spacetime/World.h"
910 #include "jp/gecchi/VioletVreath/scene/Spacetime/World/GameScene.h"
@@ -12,6 +13,7 @@ namespace VioletVreath {
1213
1314 DECLARE_HASHVAL(EVENT_MyBunshin_ChangeGeoFinal);
1415
16+#define MAX_AIM_INFO_NUM (MAX_BUNSHIN_NUM * MAX_LOCKON_NUM)
1517
1618 //class MyBunshin : public GgafLib::DefaultMorphMeshActor {
1719 class MyBunshin : public VvEffectActor<GgafLib::DefaultMeshSetActor> {
@@ -45,11 +47,11 @@ public:
4547 t2_x,t2_y,t2_z);
4648 }
4749 };
48- AimInfo pass_p_[20];
50+ AimInfo pass_p_[MAX_AIM_INFO_NUM];
4951 int pass_p_seq_;
5052 AimInfo* getAimInfo() {
5153 pass_p_seq_++;
52- if (pass_p_seq_ >= 20) {
54+ if (pass_p_seq_ >= MAX_AIM_INFO_NUM) {
5355 pass_p_seq_ = 0;
5456 }
5557 AimInfo* ap = &(pass_p_[pass_p_seq_]);
--- a/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/Bunshin/MyBunshinBase.cpp
+++ b/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/Bunshin/MyBunshinBase.cpp
@@ -19,7 +19,7 @@
1919 using namespace GgafLib;
2020 using namespace VioletVreath;
2121
22-const int MyBunshinBase::MAX_BUNSHIN_NUM = 10; //最大分身数
22+
2323 const frame MyBunshinBase::BUNSHIN_D = 16; //トレース時の分身と分身の間隔
2424 const angvelo MyBunshinBase::ANGVELO_TURN = D_ANG(2.7); //分身の向きの角速度
2525 const angvelo MyBunshinBase::ANGVELO_EXPANSE = D_ANG(2.7); //分身広がり回転角速度
@@ -49,7 +49,7 @@ MyBunshinBase::MyBunshinBase(const char* prm_name, unsigned int prm_no) :
4949
5050 trace_offset_.set(0,0,0);
5151 no_ = prm_no; //1〜
52- delay_r_ = RCNV(1,MyBunshinBase::MAX_BUNSHIN_NUM,no_,0.4,1.0);
52+ delay_r_ = RCNV(1,MAX_BUNSHIN_NUM,no_,0.4,1.0);
5353 std::string bunshin_name = "Bunshin" + XTOS(no_);
5454 pBunshin_ = NEW MyBunshin(bunshin_name.c_str(), this);
5555 this->appendGroupChildAsFk(pBunshin_,
@@ -449,7 +449,7 @@ void MyBunshinBase::resetBunshin(int prm_mode) {
449449 GgafDx::VecVehicle* pVecVehicle = getVecVehicle();
450450 GgafCore::Phase* pPhase = getPhase();
451451 //完全にデフォルト状態に元に戻ために、最低限必要なフレーム数基準値
452- return_default_pos_frames_ = MyBunshinBase::BUNSHIN_D * (MyBunshinBase::MAX_BUNSHIN_NUM+1); //少しばらつかせる演出
452+ return_default_pos_frames_ = MyBunshinBase::BUNSHIN_D * (MAX_BUNSHIN_NUM+1); //少しばらつかせる演出
453453 //エフェクト
454454
455455 //土台がの向きが元に戻る(前方に向く)指示
@@ -543,7 +543,7 @@ MyBunshinBase::~MyBunshinBase() {
543543 void MyBunshinBase::setBunshinNum(int prm_num) {
544544 MyBunshinBase::now_bunshin_num_ = prm_num;
545545 MyBunshinBase** papBase = pMYSHIP_SCENE->papBunshinBase_;
546- for (int i = 0; i < MyBunshinBase::MAX_BUNSHIN_NUM; i++) {
546+ for (int i = 0; i < MAX_BUNSHIN_NUM; i++) {
547547 MyBunshinBase* p = papBase[i];
548548 if (i+1 <= prm_num) {
549549 //活動して無い場合活動させる。活動中だったら何もしない。
--- a/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/Bunshin/MyBunshinBase.h
+++ b/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/Bunshin/MyBunshinBase.h
@@ -95,8 +95,6 @@ private:
9595 void addTurnAngleAroundAx2(float prm_ax_x, float prm_ax_y, float prm_ax_z);
9696
9797 public:
98- /** 最大分身数 */
99- static const int MAX_BUNSHIN_NUM;
10098 /** [r]トレース時の分身と分身の間隔 */
10199 static const frame BUNSHIN_D;
102100 /** [r]分身の向きの角速度 */
--- a/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/Bunshin/MyBunshinWateringLaserChip001.cpp
+++ b/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/Bunshin/MyBunshinWateringLaserChip001.cpp
@@ -24,10 +24,10 @@ using namespace GgafLib;
2424 using namespace VioletVreath;
2525
2626 const velo MyBunshinWateringLaserChip001::MAX_VELO_RENGE = PX_C(512); //この値を大きくすると、最高速度が早くなる。
27-const double MyBunshinWateringLaserChip001::INV_MAX_VELO_RENGE = 1.0 / MAX_VELO_RENGE;
28-const int MyBunshinWateringLaserChip001::R_MAX_ACCE = 16; //この値を大きくすると、カーブが緩くなる
27+//const double MyBunshinWateringLaserChip001::INV_MAX_VELO_RENGE = 1.0 / MAX_VELO_RENGE;
28+const int MyBunshinWateringLaserChip001::R_MAX_ACCE = 20; //MAX_VELO_RENGE に対する加速度、この値を大きくすると、カーブが緩くなる
2929 const velo MyBunshinWateringLaserChip001::INITIAL_VELO = MAX_VELO_RENGE*0.6; //レーザー発射時の初期速度
30-const double MyBunshinWateringLaserChip001::RR_MAX_ACCE = 1.0 / R_MAX_ACCE; //計算簡素化用
30+//const double MyBunshinWateringLaserChip001::RR_MAX_ACCE = 1.0 / R_MAX_ACCE; //計算簡素化用 (現在未使用)
3131 const acce MyBunshinWateringLaserChip001::MAX_ACCE_RENGE = MAX_VELO_RENGE/R_MAX_ACCE;
3232 const velo MyBunshinWateringLaserChip001::MIN_VELO_ = MyBunshinWateringLaserChip001::INITIAL_VELO/10; // ÷10 は、最低移動する各軸のINITIAL_VELOの割合
3333 GgafDx::Model* MyBunshinWateringLaserChip001::pModel_ = nullptr;
@@ -60,7 +60,7 @@ MyBunshinWateringLaserChip001::MyBunshinWateringLaserChip001(const char* prm_nam
6060
6161 void MyBunshinWateringLaserChip001::initialize() {
6262 getVecVehicle()->linkFaceAngByMvAng(true);
63- registerHitAreaCube_AutoGenMidColli(PX_C(80));
63+ registerHitAreaCube_AutoGenMidColli(MAX_VELO_RENGE/4);
6464 setHitAble(true);
6565 setScaleR(6.0);
6666 setCullingDraw(false);
@@ -414,68 +414,82 @@ void MyBunshinWateringLaserChip001::processJudgement() {
414414 sayonara();
415415 }
416416 }
417-void MyBunshinWateringLaserChip001::aimChip(int tX, int tY, int tZ) {
418- // | vVT 仮的 |
419- // | ^ ┌ |
420- // | |仮的| > |仮自| / \ vVP 仮自→仮的 | 仮的
421- // | となるような / \ | ↑
422- // | vVTを設定 / ┐ | 仮自
423- // | (|仮自|*1.2) / /vVM 仮自 | ↑
424- // | / / =(vMx*5,vMy*5,vMz*5) | |
425- // | / / | |
426- // | / / | |
427- // | / / |仮自| = lVM * 5 | |
428- // | 的 vT(vTx,vTy,vTz) | 的
429- // | ┌ ^ / | ↑
430- // | \ / ┐vM 現在の移動方向ベクトル | |
431- // | vVP 仮自→仮的 \ // (vMx,vMy,vMz) | |
432- // | 自 | 自
433- // | (_x,_y,_z) |
434- // ---+------------------------------------------ ---+---------------------------
435- // | |
436- //
437- // vVP が動きたい方向。vVPを求める!
438-#ifdef MY_DEBUG
439- if (tX == INT_MAX) {
440- throwCriticalException("おかしい");
441- }
442-#endif
443417
444-
445- static const coord rv = 10; // 5
418+void MyBunshinWateringLaserChip001::aimChip(int tX, int tY, int tZ) {
446419 GgafDx::GeoVehicle* pGeoVehicle = getGeoVehicle();
447- //自→仮、自方向ベクトル(vM)
448- coord vMx = pGeoVehicle->_velo_vc_x;
449- coord vMy = pGeoVehicle->_velo_vc_y;
450- coord vMz = pGeoVehicle->_velo_vc_z;
451- //|vM|
452- coord lvM = pGeoVehicle->_velo;
453-
454- coord vVMx = vMx * rv;
455- coord vVMy = vMy * rv;
456- coord vVMz = vMz * rv;
457- coord lvVM = lvM * rv;
458420 //自→的、方向ベクトル (vT)
459421 coord vTx = tX - _x;
460422 coord vTy = tY - _y;
461423 coord vTz = tZ - _z;
462424 //|vT|
463425 coord lvT = UTIL::getDistanceFromOrigin(vTx, vTy, vTz);
464- //|仮的| を lvVM の長さに合わせて作成
465- double rMT = (lvVM * 1.2 / lvT) ;
466- //1.2は右上図のように一直線に並んだ際も、進行方向を維持するために、
467- //|仮自| < |仮的| という関係を維持するためにかけた適当な割合
468- coord vVTx = vTx * rMT;
469- coord vVTy = vTy * rMT;
470- coord vVTz = vTz * rMT;
471- coord lvVT = lvT * rMT;
472- //vVP 仮自→仮的 の加速度設定
473- //→vVP=( vVTx-vVMx, vVTy-vVMy, vVTz-vVMz )
474- pGeoVehicle->setAcceByVc((vVTx-vVMx) * RR_MAX_ACCE,
475- (vVTy-vVMy) * RR_MAX_ACCE,
476- (vVTz-vVMz) * RR_MAX_ACCE);
426+ double ve = pGeoVehicle->_velo;
427+ //自→仮自
428+ coord vVMx = lvT * (pGeoVehicle->_velo_vc_x / ve)*0.9;
429+ coord vVMy = lvT * (pGeoVehicle->_velo_vc_y / ve)*0.9;
430+ coord vVMz = lvT * (pGeoVehicle->_velo_vc_z / ve)*0.9;
431+ //仮自→仮的 *2、仮自から的をはさんで2倍の距離
432+ double vVTx = (vTx - vVMx)*10;
433+ double vVTy = (vTy - vVMy)*10;
434+ double vVTz = (vTz - vVMz)*10;
435+ //自→仮的 へ加速度設定
436+ const double t = 1.0 / sqrt(vVTx * vVTx + vVTy * vVTy + vVTz * vVTz);
437+ pGeoVehicle->setAcceByVc((t * vVTx) * MAX_ACCE_RENGE,
438+ (t * vVTy) * MAX_ACCE_RENGE,
439+ (t * vVTz) * MAX_ACCE_RENGE);
477440 }
478441
442+/////////////////////////////
443+
444+// // | vVT 仮的 |
445+// // | ^ ┌ |
446+// // | |仮的| > |仮自| / \ vVP 仮自→仮的 | 仮的
447+// // | となるような / \ | ↑
448+// // | vVTを設定 / ┐ | 仮自
449+// // | (|仮自|*1.2) / /vVM 仮自 | ↑
450+// // | / / =(vMx*5,vMy*5,vMz*5) | |
451+// // | / / | |
452+// // | / / | |
453+// // | / / |仮自| = lVM * 5 | |
454+// // | 的 vT(vTx,vTy,vTz) | 的
455+// // | ┌ ^ / | ↑
456+// // | \ / ┐vM 現在の移動方向ベクトル | |
457+// // | vVP 仮自→仮的 \ // (vMx,vMy,vMz) | |
458+// // | 自 | 自
459+// // | (_x,_y,_z) |
460+// // ---+------------------------------------------ ---+---------------------------
461+// // | |
462+// //
463+// vVP が動きたい方向。vVPを求める!
464+// static const coord rv = 10; // 5
465+// GgafDx::GeoVehicle* pGeoVehicle = getGeoVehicle();
466+// //自→仮、自方向ベクトル(vM)
467+// //|vM|
468+// coord vVMx = pGeoVehicle->_velo_vc_x * rv;
469+// coord vVMy = pGeoVehicle->_velo_vc_y * rv;
470+// coord vVMz = pGeoVehicle->_velo_vc_z * rv;
471+// coord lvVM = pGeoVehicle->_velo * rv;
472+// //自→的、方向ベクトル (vT)
473+// coord vTx = tX - _x;
474+// coord vTy = tY - _y;
475+// coord vTz = tZ - _z;
476+// //|vT|
477+// coord lvT = UTIL::getDistanceFromOrigin(vTx, vTy, vTz);
478+// //|仮的| を lvVM の長さに合わせて作成
479+// double rMT = (lvVM * 1.2 / lvT) ;
480+// //1.2は右上図のように一直線に並んだ際も、進行方向を維持するために、
481+// //|仮自| < |仮的| という関係を維持するためにかけた適当な割合
482+// coord vVTx = vTx * rMT;
483+// coord vVTy = vTy * rMT;
484+// coord vVTz = vTz * rMT;
485+// coord lvVT = lvT * rMT;
486+// //vVP 仮自→仮的 の加速度設定
487+// //→vVP=( vVTx-vVMx, vVTy-vVMy, vVTz-vVMz )
488+// pGeoVehicle->setAcceByVc((vVTx-vVMx) * RR_MAX_ACCE,
489+// (vVTy-vVMy) * RR_MAX_ACCE,
490+// (vVTz-vVMz) * RR_MAX_ACCE);
491+//}
492+
479493
480494 void MyBunshinWateringLaserChip001::onHit(const GgafCore::Actor* prm_pOtherActor) {
481495 GgafDx::GeometricActor* pOther = (GgafDx::GeometricActor*) prm_pOtherActor;
--- a/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/Bunshin/MyBunshinWateringLaserChip001.h
+++ b/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/Bunshin/MyBunshinWateringLaserChip001.h
@@ -38,18 +38,21 @@ public:
3838 const LockonCursor001_Main* pLockonCursor_;
3939
4040
41- /** [r/w]速度範囲(この値を大きくすると、最高速度が早くなる。) */
41+ /** [r/w]レーザー最大速度(この値を大きくすると、最高速度が早くなる。) */
4242 static const velo MAX_VELO_RENGE;
43- /** [r]計算用 */
44- static const double INV_MAX_VELO_RENGE;
43+// /** [r]計算用 */
44+// static const double INV_MAX_VELO_RENGE;
45+
4546 /** 加速度範囲(0, MAX_ACCE_RENGE) */
4647 static const acce MAX_ACCE_RENGE;
4748
49+ /** [r/w]レーザー発射時の初期速度 */
4850 static const velo INITIAL_VELO;
4951
5052 /** [r/w]速度に対する加速度の割合(この値を大きくすると、カーブが緩くなる) */
5153 static const int R_MAX_ACCE;
52- static const double RR_MAX_ACCE;
54+// /** [r]計算用 */
55+// static const double RR_MAX_ACCE;
5356 /** 最低速度 */
5457 static const velo MIN_VELO_;
5558
--- a/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/MagicMeter/magic/BunshinMagic.cpp
+++ b/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/MagicMeter/magic/BunshinMagic.cpp
@@ -17,11 +17,11 @@ using namespace VioletVreath;
1717
1818 BunshinMagic::BunshinMagic(const char* prm_name, int* prm_pMP)
1919 : Magic(prm_name, prm_pMP,
20- 10, //max_level
20+ MAX_BUNSHIN_NUM, //max_level
2121 10000 , 1.15, 0.95, //基本魔法コスト, +1レベル毎のコスト増加率 , 飛びレベル時のコスト削減率
2222 60 , 1.12, 0.95, //基本詠唱時間 , +1レベル毎の詠唱時間増加率, 飛びレベル時の詠唱時間削減率
2323 30 , 1.1 , 0.95, //基本発動時間 , +1レベル毎の発動時間増加率, 飛びレベル時の発動時間削減率
24- 60*60*9999 , 0.9, //基本持続時間 , +1レベル毎の持続時間の乗率
24+ 60*60*9999 , 0.9, //基本持続時間 , +1レベル毎の持続時間の乗率
2525 0.0 , 0.0 //基本維持コスト, +1レベル毎の維持コストの乗率
2626 ) {
2727
--- a/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/MagicMeter/magic/LockonMagic.cpp
+++ b/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/MagicMeter/magic/LockonMagic.cpp
@@ -13,7 +13,7 @@ using namespace VioletVreath;
1313
1414 LockonMagic::LockonMagic(const char* prm_name, int* prm_pMP)
1515 : Magic(prm_name, prm_pMP,
16- MyLockonController::max_lockon_num_, //max_level
16+ MAX_LOCKON_NUM, //max_level
1717 1000*4 , 1.0, 0.9, //基本魔法コスト, +1レベル毎のコスト増加率 , 飛びレベル時のコスト削減率
1818 60 , 1.0, 0.9, //基本詠唱時間 , +1レベル毎の詠唱時間増加率, 飛びレベル時の詠唱時間削減率
1919 30 , 1.0, 0.9, //基本発動時間 , +1レベル毎の発動時間増加率, 飛びレベル時の発動時間削減率
--- a/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/MyLockonController.cpp
+++ b/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/MyLockonController.cpp
@@ -2,13 +2,12 @@
22
33 #include "LockonCursor001_Main.h"
44 #include "LockonCursor001_Sub.h"
5+#include "jp/gecchi/VioletVreath/actor/my/MyShip.h"
56 #include "jp/gecchi/VioletVreath/actor/my/MyLockonController.h"
67
78 using namespace GgafLib;
89 using namespace VioletVreath;
910
10-/** 1オプション当たりの最大可能ロックオン数 */
11-const int MyLockonController::max_lockon_num_ = 8;
1211 int MyLockonController::lockon_num_ = 0;
1312
1413 MyLockonController::MyLockonController(const char* prm_name) :
@@ -17,7 +16,7 @@ MyLockonController::MyLockonController(const char* prm_name) :
1716 pMainLockonEffect_ = NEW LockonCursor001_Main("MAIN");
1817 pMainLockonEffect_->inactivate();
1918 appendChild(pMainLockonEffect_);
20- for (int i = 1; i < MyLockonController::max_lockon_num_; i++) {
19+ for (int i = 1; i < MAX_LOCKON_NUM; i++) {
2120 std::string name = "ChildLockon("+XTOS(i)+")";
2221 LockonCursor001_Sub* pLockonCursor_Sub = NEW LockonCursor001_Sub(name.c_str());
2322 pLockonCursor_Sub->inactivate();
@@ -32,7 +31,7 @@ void MyLockonController::onReset() {
3231 listTarget_.removeAll();
3332 //ロックオンアクターのリセット
3433 LockonCursor001* pLockonCursor001;
35- for (int i = 0; i < MyLockonController::max_lockon_num_; i++) {
34+ for (int i = 0; i < MAX_LOCKON_NUM; i++) {
3635 pLockonCursor001 = (LockonCursor001*)(getChild(i));
3736 pLockonCursor001->releaseLockon();
3837 pLockonCursor001->inactivate();
--- a/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/MyLockonController.h
+++ b/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/MyLockonController.h
@@ -8,7 +8,6 @@
88
99 namespace VioletVreath {
1010
11-
1211 /**
1312 * ロックオンコントローラー .
1413 * @version 1.00
@@ -18,8 +17,6 @@ namespace VioletVreath {
1817 class MyLockonController : public GgafCore::DestructActor {
1918
2019 public:
21- /** [r]1オプション当たりの最大可能ロックオン数 */
22- static const int max_lockon_num_;
2320 /** [r]1オプション当たりの現在可能ロックオン数 */
2421 static int lockon_num_;
2522
--- a/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/MyShip.h
+++ b/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/MyShip.h
@@ -25,7 +25,10 @@ namespace VioletVreath {
2525 #define TRACE_DELAY_WAIT_FRAME (0x7fffffff)
2626
2727 #define MYSHIP_SHOT_MATRIX (7)
28-
28+/** 最大分身数 */
29+#define MAX_BUNSHIN_NUM (10)
30+/** 1オプション当たりの最大可能ロックオン数 */
31+#define MAX_LOCKON_NUM (8)
2932 /**
3033 * 自機クラス
3134 * @version 1.00
--- a/VioletVreath/src/jp/gecchi/VioletVreath/scene/Spacetime/World/GameScene/MyShipScene.cpp
+++ b/VioletVreath/src/jp/gecchi/VioletVreath/scene/Spacetime/World/GameScene/MyShipScene.cpp
@@ -40,8 +40,8 @@ papBunshinBase_(nullptr) {
4040 pMyShip_->inactivate(); //配下に仮登録のアクター発送者とかあるし
4141 bringSceneMediator()->appendGroupChild(pMyShip_);
4242
43- papBunshinBase_ = NEW MyBunshinBase*[MyBunshinBase::MAX_BUNSHIN_NUM];
44- for (int i = 0; i < MyBunshinBase::MAX_BUNSHIN_NUM; i ++) {
43+ papBunshinBase_ = NEW MyBunshinBase*[MAX_BUNSHIN_NUM];
44+ for (int i = 0; i < MAX_BUNSHIN_NUM; i ++) {
4545 std::string name = "BunshinBase("+XTOS(i)+")";
4646 papBunshinBase_[i] = NEW MyBunshinBase(name.c_str(), i+1);
4747 papBunshinBase_[i]->inactivate();
@@ -84,7 +84,7 @@ void MyShipScene::onReset() {
8484 pLabelZanki_->update(z.c_str());
8585
8686 pMyShip_->resetTree();
87- for (int i = 0; i < MyBunshinBase::MAX_BUNSHIN_NUM; i ++) {
87+ for (int i = 0; i < MAX_BUNSHIN_NUM; i ++) {
8888 papBunshinBase_[i]->resetTree();
8989 }
9090
@@ -162,7 +162,7 @@ void MyShipScene::processBehavior() {
162162 if (pPhase->hasJustChanged()) {
163163 pEffectMyShipExplosion_->activate(); //爆発
164164 pMyShip_->can_control_ = false;
165- for (int i = 0; i < MyBunshinBase::MAX_BUNSHIN_NUM; i ++) {
165+ for (int i = 0; i < MAX_BUNSHIN_NUM; i ++) {
166166 papBunshinBase_[i]->is_isolate_mode_ = true;
167167 }
168168 G_ZANKI -= 1;
--- a/VioletVreath_launcher/src/VioletVreath_launcher.cpp
+++ b/VioletVreath_launcher/src/VioletVreath_launcher.cpp
@@ -494,6 +494,7 @@ INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) {
494494 break;
495495 }
496496 return (INT_PTR) FALSE;
497+
497498 }
498499
499500 //LRESULT SysMenuProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)