• R/O
  • HTTP
  • SSH
  • HTTPS

提交

Frequently used words (click to add to your profile)

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

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


Commit MetaInfo

修订版b2f8b9f14d6e480cfda4a801942bc92ce0c36cb8 (tree)
时间2022-05-16 23:36:28
作者gecchi <gecchi@boch...>
Commitergecchi

Log Message

少し整理

更改概述

差异

--- a/GgafDx/include/jp/ggaf/dx/actor/supporter/GeoVehicle.h
+++ b/GgafDx/include/jp/ggaf/dx/actor/supporter/GeoVehicle.h
@@ -8,7 +8,7 @@
88 namespace GgafDx {
99
1010 /**
11- * 作成中 .
11+ * アクターを乗せる力車 .
1212 * GeometricActor のメンバの<BR>
1313 * _x, _y, _z ・・・ アクターの座標<BR>
1414 * を、各成分毎に簡単に操作するために作成。<BR>
@@ -53,21 +53,23 @@ public:
5353 explicit GeoVehicle(GeometricActor* prm_pActor);
5454
5555 /**
56- * 移動速度の上限下限を強制 .
56+ * 移動速度の上限下限を強制強制する .
5757 * @param prm_velo01 速度1
5858 * @param prm_velo02 速度2
5959 */
6060 void forceVeloRange(velo prm_velo01, velo prm_velo02);
6161
6262 /**
63- * 移動加速度の上限下限を強制 .
63+ * 移動加速度の上限下限を強制する .
6464 * @param prm_acce01 加速度1
6565 * @param prm_acce02 加速度2
6666 */
6767 void forceAcceRange(acce prm_acce01, acce prm_acce02);
6868
6969 /**
70- * 移動方向を座標、移動速度を値で設定する。
70+ * 移動方向を座標、移動速度を値で設定する .
71+ * 移動速度下限〜 移動速度上限 の範囲外を設定した場合、
72+ * 方向はそのままで、直近の範囲内に納められて設定される。
7173 * @param prm_tx 移動方向X座標
7274 * @param prm_ty 移動方向Y座標
7375 * @param prm_tz 移動方向Z座標
@@ -76,7 +78,9 @@ public:
7678 void setVeloTwd(coord prm_tx, coord prm_ty, coord prm_tz, velo prm_velo);
7779
7880 /**
79- * 移動方向を軸回転(Rz, Ry)、移動速度を値で設定する。
81+ * 移動方向を軸回転(Rz, Ry)、移動速度を値で設定する .
82+ * 移動速度下限〜 移動速度上限 の範囲外を設定した場合、
83+ * 方向はそのままで、直近の範囲内に納められて設定される。
8084 * @param prm_rz 移動方向z軸回転値
8185 * @param prm_ry 移動方向y軸回転値
8286 * @param prm_velo 移動速度
@@ -86,17 +90,25 @@ public:
8690
8791 /**
8892 * XYZ軸ベクトル成分で、移動速度を設定する .
93+ * 移動速度下限〜 移動速度上限 の範囲外を設定した場合、
94+ * 方向はそのままで、直近の範囲内に納められて設定される。
8995 * @param prm_velo_vc_x
9096 * @param prm_velo_vc_y
9197 * @param prm_velo_vc_z
9298 */
9399 void setVeloByVc(velo prm_velo_vc_x, velo prm_velo_vc_y, velo prm_velo_vc_z);
94100
101+ /**
102+ * 移動速度を 0 に設定する .
103+ * 但し、移動速度下限 が 0 より大きい場合、
104+ * 無理やり移動速度下限の速度がX軸方向に設定される。
105+ */
95106 void setVeloZero();
96107
97-
98108 /**
99- * 移動方向を座標、移動加速度を値で設定する。
109+ * 移動方向を座標、移動加速度を値で設定する .
110+ * 移動加速度下限〜 移動加速度上限 の範囲外を設定した場合、
111+ * 方向はそのままで、直近の範囲内に納められて設定される。
100112 * @param prm_tx 移動方向X座標
101113 * @param prm_ty 移動方向Y座標
102114 * @param prm_tz 移動方向Z座標
@@ -106,18 +118,20 @@ public:
106118
107119 /**
108120 * XYZ軸ベクトル成分で、移動加速度を設定する .
121+ * 移動加速度下限〜 移動加速度上限 の範囲外を設定した場合、
122+ * 方向はそのままで、直近の範囲内に納められて設定される。
109123 * @param prm_acce_vc_x
110124 * @param prm_acce_vc_y
111125 * @param prm_acce_vc_z
112126 */
113127 void setAcceByVc(acce prm_acce_vc_x, acce prm_acce_vc_y, acce prm_acce_vc_z);
114128
115- void setAcceZero();
116-
117129 /**
118- * 速度、加速度をリセット、各上限下限を初期設定。
130+ * 移動加速度を 0 に設定する .
131+ * 但し、移動加速度下限 が 0 より大きい場合、
132+ * 無理やり移動加速度下限の速度がX軸方向に設定される。
119133 */
120- void reset();
134+ void setAcceZero();
121135
122136 /**
123137 * 駕籠(平行移動支援)が振る舞う .
--- a/GgafDx/include/jp/ggaf/dx/actor/supporter/VecVehicle.h
+++ b/GgafDx/include/jp/ggaf/dx/actor/supporter/VecVehicle.h
@@ -9,7 +9,7 @@
99 namespace GgafDx {
1010
1111 /**
12- * アクターを乗せる力車(アクターの旋回移動支援) .
12+ * アクターを乗せる力車(アクターの旋回移動支援) .
1313 * 力車は我々の目には触れませんが、演者(アクター)を持ち上げ、「移動」「向きの回転」を行わせる世話人です。<BR>
1414 * 演者(アクター)は自らの意思で動作せずとも、力車のおかげで舞台を飛び回まわることができます。<BR>
1515 * 基本的な動作は力車でほとんどカバーできてしまいます。そのお蔭で、演者は自身の演技に集中できるのです。<BR>
--- a/GgafDx/src/jp/ggaf/dx/actor/supporter/GeoVehicle.cpp
+++ b/GgafDx/src/jp/ggaf/dx/actor/supporter/GeoVehicle.cpp
@@ -72,7 +72,9 @@ void GeoVehicle::setVeloTwd(coord prm_tx, coord prm_ty, coord prm_tz, velo prm_v
7272 if (ZEROd_EQ(p)) {
7373 //速度が0になってしまったら
7474 //加速度の方向ベクトルに最低速度を設定
75- p = 1.0*_acce_vc_x*_acce_vc_x + 1.0*_acce_vc_y*_acce_vc_y + 1.0*_acce_vc_z*_acce_vc_z;
75+ p = 1.0*_acce_vc_x*_acce_vc_x +
76+ 1.0*_acce_vc_y*_acce_vc_y +
77+ 1.0*_acce_vc_z*_acce_vc_z;
7678 if (ZEROd_EQ(p)) {
7779 //加速度も0なら、あきらめて _velo_vc_x に最低速度を設定
7880 _velo_vc_x = _bottom_velo;
@@ -102,11 +104,15 @@ void GeoVehicle::setVeloTwd(angle prm_rz, angle prm_ry, velo prm_velo) {
102104 }
103105
104106 void GeoVehicle::setVeloByVc(velo prm_velo_vc_x, velo prm_velo_vc_y, velo prm_velo_vc_z) {
105- double p = 1.0*prm_velo_vc_x*prm_velo_vc_x + 1.0*prm_velo_vc_y*prm_velo_vc_y + 1.0*prm_velo_vc_z*prm_velo_vc_z;
107+ double p = 1.0*prm_velo_vc_x*prm_velo_vc_x +
108+ 1.0*prm_velo_vc_y*prm_velo_vc_y +
109+ 1.0*prm_velo_vc_z*prm_velo_vc_z;
106110 if (ZEROd_EQ(p)) {
107111 //速度が0になってしまったら
108112 //加速度の方向ベクトルに最低速度を設定
109- p = 1.0*_acce_vc_x*_acce_vc_x + 1.0*_acce_vc_y*_acce_vc_y + 1.0*_acce_vc_z*_acce_vc_z;
113+ p = 1.0*_acce_vc_x*_acce_vc_x +
114+ 1.0*_acce_vc_y*_acce_vc_y +
115+ 1.0*_acce_vc_z*_acce_vc_z;
110116 if (ZEROd_EQ(p)) {
111117 //加速度も0なら、あきらめて _velo_vc_x に最低速度を設定
112118 _velo_vc_x = _bottom_velo;
@@ -169,7 +175,9 @@ void GeoVehicle::setAcceTwd(coord prm_tx, coord prm_ty, coord prm_tz, acce prm_a
169175 }
170176
171177 void GeoVehicle::setAcceByVc(acce prm_acce_vc_x, acce prm_acce_vc_y, acce prm_acce_vc_z) {
172- double p = 1.0 * prm_acce_vc_x * prm_acce_vc_x + 1.0 * prm_acce_vc_y * prm_acce_vc_y + 1.0 * prm_acce_vc_z * prm_acce_vc_z;
178+ double p = 1.0 * prm_acce_vc_x * prm_acce_vc_x +
179+ 1.0 * prm_acce_vc_y * prm_acce_vc_y +
180+ 1.0 * prm_acce_vc_z * prm_acce_vc_z;
173181 if (ZEROd_EQ(p)) {
174182 _acce_vc_x = _bottom_acce;
175183 _acce_vc_y = 0;
@@ -208,7 +216,9 @@ void GeoVehicle::setAcceZero() {
208216
209217 void GeoVehicle::behave() {
210218 if (_acce != 0) {
211- setVeloByVc(_velo_vc_x+_acce_vc_x, _velo_vc_y+_acce_vc_y, _velo_vc_z+_acce_vc_z);
219+ setVeloByVc(_velo_vc_x+_acce_vc_x,
220+ _velo_vc_y+_acce_vc_y,
221+ _velo_vc_z+_acce_vc_z);
212222 }
213223 //Actorに反映
214224 _pActor->_x += _velo_vc_x;
--- a/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/Bunshin/MyBunshinWateringLaserChip001.cpp
+++ b/VioletVreath/src/jp/gecchi/VioletVreath/actor/my/Bunshin/MyBunshinWateringLaserChip001.cpp
@@ -25,7 +25,7 @@ using namespace VioletVreath;
2525
2626 const velo MyBunshinWateringLaserChip001::MAX_VELO_RENGE = PX_C(512); //この値を大きくすると、最高速度が早くなる。
2727 //const double MyBunshinWateringLaserChip001::INV_MAX_VELO_RENGE = 1.0 / MAX_VELO_RENGE;
28-const int MyBunshinWateringLaserChip001::R_MAX_ACCE = 20; //MAX_VELO_RENGE に対する加速度、この値を大きくすると、カーブが緩くなる
28+const int MyBunshinWateringLaserChip001::R_MAX_ACCE = 18; //MAX_VELO_RENGE に対する加速度、この値を大きくすると、カーブが緩くなる
2929 const velo MyBunshinWateringLaserChip001::INITIAL_VELO = MAX_VELO_RENGE*0.6; //レーザー発射時の初期速度
3030 //const double MyBunshinWateringLaserChip001::RR_MAX_ACCE = 1.0 / R_MAX_ACCE; //計算簡素化用 (現在未使用)
3131 const acce MyBunshinWateringLaserChip001::MAX_ACCE_RENGE = MAX_VELO_RENGE/R_MAX_ACCE;
@@ -416,81 +416,52 @@ void MyBunshinWateringLaserChip001::processJudgement() {
416416 }
417417
418418 void MyBunshinWateringLaserChip001::aimChip(int tX, int tY, int tZ) {
419+ //
420+ // | 仮的 →
421+ // | ┌ vVT(vVTx,vVTy,vVTz)
422+ // | ^ \
423+ // | | \
424+ // | | … |
425+ // | | |d|*9 |
426+ // | | … |
427+ // | | \ → |
428+ // | | 的 座標(tX,tY,tZ)= vT(vTx,vTy,vTz) | 仮的
429+ // | | ^ ┌ → → | ↑
430+ // | | / \ |d|= vT - vVM | 的 ^
431+ // | | / \ → | ↑ |
432+ // | | / ┐仮自 vVM(vVMx,vVMy,vVMz) | 仮自 | ^
433+ // | | |vT| / / | ↑ | |
434+ // | | / / | | | |
435+ // | | / / | | ||vT| ||vT|*0.9
436+ // | | / / *0.9の意味は右図のように直線に | | | |
437+ // | | / / |vT|*0.9 並んだ際に仮自 が 的 を追い | | | |
438+ // | | / / 越さないようにするため | | | |
439+ // | 設定される加速度の方向 | / / | | | |
440+ // | setAcceByVc(vVTx,vVTy,vVTz) ^ / ┐ 現在の移動方向ベクトルGeoVehicle | 自 v v
441+ // |※メソッド内でMAX_ACCE_RENGE | // (_velo_vc_x,_velo_vc_x,_velo_vc_z) |
442+ // | 範囲に調整される 自 ---+---------------------------
443+ // | 座標(_x,_y,_z)=ベクトルの基点(0,0,0) |
444+ // ---+------------------------------------------
419445 GgafDx::GeoVehicle* pGeoVehicle = getGeoVehicle();
420- //自→的、方向ベクトル (vT)
446+ //自→的、方向ベクトル (→vT)
421447 coord vTx = tX - _x;
422448 coord vTy = tY - _y;
423449 coord vTz = tZ - _z;
424450 //|vT|
425451 coord lvT = UTIL::getDistanceFromOrigin(vTx, vTy, vTz);
426452 double ve = pGeoVehicle->_velo;
427- //自→仮自
453+ //自→仮自 (→vVM)
428454 coord vVMx = lvT * (pGeoVehicle->_velo_vc_x / ve)*0.9;
429455 coord vVMy = lvT * (pGeoVehicle->_velo_vc_y / ve)*0.9;
430456 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);
457+ //仮自→仮的*10、((→vT) - (→vVM))*10 仮自から的を距離1として、的から距離9場所
458+ coord vVTx = (vTx - vVMx)*10;
459+ coord vVTy = (vTy - vVMy)*10;
460+ coord vVTz = (vTz - vVMz)*10;
461+ //自→仮的 へ加速度設定(※メソッド内で MAX_ACCE_RENGE 範囲に調整される)
462+ pGeoVehicle->setAcceByVc(vVTx, vVTy, vVTz);
440463 }
441464
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-
493-
494465 void MyBunshinWateringLaserChip001::onHit(const GgafCore::Actor* prm_pOtherActor) {
495466 GgafDx::GeometricActor* pOther = (GgafDx::GeometricActor*) prm_pOtherActor;
496467 //ヒットエフェクト
--- a/VioletVreath_launcher/.gitignore
+++ b/VioletVreath_launcher/.gitignore
@@ -25,3 +25,4 @@
2525 /Release_XP/
2626 *.dll
2727 /gprofdot_result3.svg
28+/.vs/