• R/O
  • HTTP
  • SSH
  • HTTPS

提交

Frequently used words (click to add to your profile)

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

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


Commit MetaInfo

修订版254ce538eff881cb218a76775564d6464a64680e (tree)
时间2022-12-03 00:27:50
作者gecchi <gecchi@192....>
Commitergecchi

Log Message

VVViewerかいぞう

更改概述

差异

--- a/GgafDx/include/jp/ggaf/dx/Config.h
+++ b/GgafDx/include/jp/ggaf/dx/Config.h
@@ -34,11 +34,6 @@ public:
3434 static pixcoord RENDER_TARGET_BUFFER_HEIGHT;
3535
3636 /** [r] 描画先サーフェイス(RENDER_TARGET_BUFFER)の中から、実際にゲームに表示する画面領域(クリッピング) */
37-// static pixcoord RENDER_BUFFER_SOURCE1_LEFT;
38-// static pixcoord RENDER_BUFFER_SOURCE1_TOP;
39-// static pixcoord RENDER_BUFFER_SOURCE1_WIDTH;
40-// static pixcoord RENDER_BUFFER_SOURCE1_HEIGHT;
41-
4237 static pixcoord RENDER_BUFFER_SOURCE1_LEFT;
4338 static pixcoord RENDER_BUFFER_SOURCE1_TOP;
4439 static pixcoord RENDER_BUFFER_SOURCE1_WIDTH;
--- /dev/null
+++ b/VVViewer/VvvRs/model/HitBoard.sprx
@@ -0,0 +1,15 @@
1+xof 0303txt 0032
2+
3+SpriteModelDef HitBoard {
4+ 128.0; # FLOAT Width
5+ 128.0; # FLOAT Height
6+ "Cursor.png"; # STRING TextureFile
7+ 2; # DWORD TextureSplitRows
8+ 2; # DWORD TextureSplitCols
9+ 8; #DrawSetNum
10+ 1.000000, 0.000000, 0.000000, 0.000000,
11+ 0.000000, 1.000000, 0.000000, 0.000000,
12+ 0.000000, 0.000000, 1.000000, 0.000000,
13+ 0.000000, 0.000000, 0.000000, 1.000000;
14+}
15+
--- a/VVViewer/config.properties
+++ b/VVViewer/config.properties
@@ -32,6 +32,10 @@ FULL_SCREEN=false
3232 #true=2画面モード/false=1画面モード(初期値:false)
3333 DUAL_VIEW=false
3434
35+WINDOW1_WIDTH=200
36+WINDOW1_HEIGHT=100
37+
38+
3539 #表示領域サイズ可変時、表示領域アスペクト比をゲームバッファの縦横比で固定にするかどうか(true=固定/false=固定にしない)
3640 FIXED_GAME_VIEW_ASPECT=true
3741 #画面1のゲーム表示と、画面2のゲーム表示を入れ変える(true=入れ替える/false=表示を入れ替えない)
--- a/VVViewer/src/VVViewer.h
+++ b/VVViewer/src/VVViewer.h
@@ -10,7 +10,7 @@
1010
1111 #include "GgafLibCommonHeader.h"
1212
13-#define KIND_POINTER_RAY (0x4U) // 00000000 00000000 00000000 00000100
13+#define KIND_POINTER (0x4U) // 00000000 00000000 00000000 00000100
1414 #define KIND_ACTOR (0x8U) // 00000000 00000000 00000000 00001000
1515
1616 namespace VVViewer {
--- a/VVViewer/src/actor/VvvMousePointer.cpp
+++ b/VVViewer/src/actor/VvvMousePointer.cpp
@@ -21,7 +21,12 @@ VvvMousePointer::VvvMousePointer(const char* prm_name) :
2121 MousePointerActor(prm_name, "VvvMousePointer") {
2222 _class_name = "VvvMousePointer";
2323
24+
2425 setAlign(ALIGN_CENTER, VALIGN_MIDDLE);
26+ ViewCollisionChecker* pChecker = getWorldCollisionChecker();
27+ pChecker->createCollisionArea(1);
28+ pChecker->setColliSquare(0, PX_C(16));
29+ setHitAble(true);
2530 }
2631
2732 void VvvMousePointer::onCreateModel() {
--- a/VVViewer/src/scene/VvvSpacetime.cpp
+++ b/VVViewer/src/scene/VvvSpacetime.cpp
@@ -19,8 +19,8 @@ void VvvSpacetime::initialize() {
1919
2020 void VvvSpacetime::processBehavior() {
2121
22- executeWorldHitCheck(KIND_POINTER_RAY, KIND_ACTOR);
23-
22+ executeWorldHitCheck(KIND_POINTER, KIND_ACTOR);
23+ executeViewHitCheck(KIND_POINTER, KIND_ACTOR);
2424 }
2525
2626 VvvSpacetime::~VvvSpacetime() {
--- a/VVViewer/src/scene/VvvSpacetime/VvvWorld.cpp
+++ b/VVViewer/src/scene/VvvSpacetime/VvvWorld.cpp
@@ -17,6 +17,7 @@
1717 #include "jp/ggaf/lib/LibConfig.h"
1818 #include "jp/ggaf/lib/util/VirtualButton.h"
1919 #include "jp/ggaf/lib/util/WorldCollisionChecker.h"
20+#include "jp/ggaf/lib/util/ViewCollisionChecker.h"
2021 #include "VvvCaretaker.h"
2122 #include "actor/CamWorker/VvvCamWorker.h"
2223 #include "actor/VvvCursor.h"
@@ -31,6 +32,64 @@ using namespace GgafLib;
3132 using namespace VVViewer;
3233 using namespace std;
3334
35+
36+
37+
38+template<class T>
39+class VvvActor : public T {
40+public:
41+ GgafLib::DefaultBoardActor* pHitActor_;
42+ VvvWorld* pWorld_;
43+public:
44+ VvvActor(const char* prm_name, const char* prm_model)
45+ : T(prm_name, prm_model) {
46+ pHitActor_ = nullptr;
47+ pWorld_ = (VvvWorld*)(pCARETAKER->getSpacetime()->pWorld_);
48+ }
49+
50+ virtual void initialize() override {
51+ pHitActor_ = desireActor(GgafLib::DefaultBoardActor, "HitArea", "HitBoard");
52+ pHitActor_->setAlign(ALIGN_CENTER, VALIGN_MIDDLE);
53+ ViewCollisionChecker* pChecker = pHitActor_->getWorldCollisionChecker();
54+ pChecker->createCollisionArea(1);
55+ pChecker->setColliAABox(0, 0.5);
56+ pHitActor_->setHitAble(true);
57+ T::appendGroupChild(KIND_ACTOR, pHitActor_);
58+ }
59+
60+ virtual void processBehavior() override {
61+ dxcoord len_left = (-T::_dest_from_vppln_left);
62+ dxcoord len_rigth = (-T::_dest_from_vppln_right);
63+
64+ dxcoord width = len_left + len_rigth;
65+
66+ dxcoord len_top = (-T::_dest_from_vppln_top);
67+ dxcoord len_bottom = (-T::_dest_from_vppln_bottom);
68+
69+ dxcoord height = len_top + len_bottom;
70+
71+ dxcoord x = ( PX_DX(pWorld_->_buffer_width1) / width) * len_left;
72+ dxcoord y = PX_DX(pWorld_->_buffer_height1) - (( PX_DX(pWorld_->_buffer_height1) / height)* len_top);
73+ // - PX_DX(pWorld_->_buffer_height1/2)
74+ //len_left / len_rigth;
75+// RCNV();
76+ pHitActor_->setPosition(DX_C(x), DX_C(y));
77+ }
78+ /**
79+ * 範囲中のある値について、範囲を変換した場合の相対値を取得 .
80+ * 範囲 min_a 〜 max_a の a の値を、範囲 min_b 〜 max_b に変換した場合の a に対応する値(b) を得る<br>
81+ */
82+ static inline double _rcnv_(double max_a, double a, double max_b) {
83+ return ( max_b / max_a) * a;
84+ }
85+
86+
87+
88+ virtual ~VvvActor() {
89+ }
90+};
91+
92+
3493 VvvWorld::VvvWorld(const char* prm_name) : GgafLib::DefaultScene(prm_name) {
3594 pCamWorker_ = NEW VvvCamWorker("VvvCamWorker", pCARETAKER->getSpacetime()->getCamera());
3695 bringSceneMediator()->appendGroupChild(pCamWorker_);
@@ -46,12 +105,22 @@ VvvWorld::VvvWorld(const char* prm_name) : GgafLib::DefaultScene(prm_name) {
46105 view_help_ = true;
47106 view_info_ = true;
48107 pVvvMousePointer_= nullptr;
108+
109+ _w_r = 1.0 * CONFIG::GAME_BUFFER_WIDTH / CONFIG::RENDER_TARGET_BUFFER_WIDTH;
110+ _h_r = 1.0 * CONFIG::GAME_BUFFER_HEIGHT / CONFIG::RENDER_TARGET_BUFFER_HEIGHT;
111+
112+ _buffer_left1 = CONFIG::RENDER_BUFFER_SOURCE1_LEFT*_w_r;
113+ _buffer_top1 = CONFIG::RENDER_BUFFER_SOURCE1_TOP*_h_r;
114+ _buffer_width1 = CONFIG::RENDER_BUFFER_SOURCE1_WIDTH*_w_r;
115+ _buffer_height1 = CONFIG::RENDER_BUFFER_SOURCE1_HEIGHT*_h_r;
116+
117+
49118 }
50119
51120 void VvvWorld::initialize() {
52121 pVvvMousePointer_ = desireActor(VvvMousePointer);
53122 // pVvvMousePointer_->setDefaultKind(KIND_2DFIX_MOUSE_POINTER);
54- bringSceneMediator()->appendGroupChild(pVvvMousePointer_);
123+ bringSceneMediator()->appendGroupChild(KIND_POINTER, pVvvMousePointer_);
55124
56125 pFont01_help_->setAlign(ALIGN_LEFT, VALIGN_TOP);
57126 pFont01_help_->setMaterialColor(1.0,0.5,0.2);
@@ -538,7 +607,7 @@ void VvvWorld::processBehavior() {
538607 pModelManager->obtainMeshModelInfo(&xdata, model_def_filepath);
539608 if (xdata.XFileNum >= 2) {
540609 GgafLib::DefaultMorphMeshActor* pDefaultMorphMeshActor =
541- desireActor(GgafLib::DefaultMorphMeshActor, "actor", model.c_str());
610+ desireActor(VvvActor<GgafLib::DefaultMorphMeshActor>, "actor", model.c_str());
542611 pActor = pDefaultMorphMeshActor;
543612 pChecker = pDefaultMorphMeshActor->getWorldCollisionChecker();
544613 } else {
@@ -546,7 +615,7 @@ void VvvWorld::processBehavior() {
546615 // pActor = desireActor(GgafLib::WorldBoundActor, "actor", filename);
547616 // } else {
548617 GgafLib::DefaultMeshActor* pDefaultMeshActor =
549- desireActor(GgafLib::DefaultMeshActor, "actor", model.c_str());
618+ desireActor(VvvActor<GgafLib::DefaultMeshActor>, "actor", model.c_str());
550619 pActor = pDefaultMeshActor;
551620 pChecker = pDefaultMeshActor->getWorldCollisionChecker();
552621 // }
@@ -557,28 +626,28 @@ void VvvWorld::processBehavior() {
557626 }
558627 } else if (ext == "SPRX") {
559628 GgafLib::DefaultSpriteActor* pDefaultSpriteActor =
560- desireActor(GgafLib::DefaultSpriteActor, "actor", model.c_str());
629+ desireActor(VvvActor<GgafLib::DefaultSpriteActor>, "actor", model.c_str());
561630 pActor = pDefaultSpriteActor;
562631 pChecker = pDefaultSpriteActor->getWorldCollisionChecker();
563632 } else if (ext == "PSPRX") {
564633 GgafLib::DefaultPointSpriteActor* pDefaultPointSpriteActor =
565- desireActor(GgafLib::DefaultPointSpriteActor, "actor", model.c_str());
634+ desireActor(VvvActor<GgafLib::DefaultPointSpriteActor>, "actor", model.c_str());
566635 pActor = pDefaultPointSpriteActor;
567636 pChecker = pDefaultPointSpriteActor->getWorldCollisionChecker();
568637 } else if (ext == "FSPRX") {
569638 GgafLib::DefaultFramedSpriteActor* pDefaultFramedSpriteActor =
570- desireActor(GgafLib::DefaultFramedSpriteActor, "actor", model.c_str());
639+ desireActor(VvvActor<GgafLib::DefaultFramedSpriteActor>, "actor", model.c_str());
571640 pActor = pDefaultFramedSpriteActor;
572641 pChecker = pDefaultFramedSpriteActor->getWorldCollisionChecker();
573642 } else if (ext == "RSPRX") {
574643 GgafLib::DefaultRegularPolygonSpriteActor* pDefaultRegularPolygonSpriteActor =
575- desireActor(GgafLib::DefaultRegularPolygonSpriteActor, "actor", model.c_str());
644+ desireActor(VvvActor<GgafLib::DefaultRegularPolygonSpriteActor>, "actor", model.c_str());
576645 pActor = pDefaultRegularPolygonSpriteActor;
577646 pChecker = pDefaultRegularPolygonSpriteActor->getWorldCollisionChecker();
578647 } else if (ext == "X") {
579648 //DefaultMeshActor のみ x ファイル直接でも大丈夫
580649 GgafLib::DefaultMeshActor* pDefaultMeshActor =
581- desireActor(GgafLib::DefaultMeshActor, "actor", model.c_str());
650+ desireActor(VvvActor<GgafLib::DefaultMeshActor>, "actor", model.c_str());
582651 pActor = pDefaultMeshActor;
583652 pChecker = pDefaultMeshActor->getWorldCollisionChecker();
584653 }
@@ -588,16 +657,24 @@ void VvvWorld::processBehavior() {
588657 pChecker->createCollisionArea(1);
589658 pChecker->setColliSphere(0, DX_C(bound));
590659 pActor->setHitAble(true);
591-
592660 bringSceneMediator()->appendGroupChild(KIND_ACTOR, pActor);
661+
662+
663+// GgafLib::DefaultBoardActor* pDefaultBoardActor =
664+// desireActor(GgafLib::DefaultBoardActor, "HitArea", "HitBoard");
665+// pActor->appendGroupChild(KIND_ACTOR, pDefaultBoardActor);
666+
667+
668+
593669 ActorInfo* pActorInfo = NEW ActorInfo(pActor, pChecker, string(VvvCaretaker::dropfiles_));
594670 listActorInfo_.addLast(pActorInfo);
595671 listActorInfo_.createIndex();
596672 listActorInfo_.last(); //カレントをlastへ
597- VvvCamera* pCam = pCARETAKER->getSpacetime()->getCamera();
598673
599- GgafDx::GeometricActor* p = pCam->getCameraViewPoint();
600- pActor->setPositionAt(p);
674+
675+ VvvCamera* pCam = pCARETAKER->getSpacetime()->getCamera();
676+ GgafDx::GeometricActor* pCameraViewPoint = pCam->getCameraViewPoint();
677+ pActor->setPositionAt(pCameraViewPoint);
601678 }
602679
603680
@@ -619,7 +696,7 @@ void VvvWorld::processBehavior() {
619696 CONFIG::DIR_TEXTURE[2] = was_dropfile_dir;
620697 string was_model = UTIL::getFileBaseNameWithoutExt(listActorInfo_.getCurrent()->modelfile_.c_str());
621698 GgafLib::CubeMapMeshActor* pCubeMapMeshActor =
622- desireActor(GgafLib::CubeMapMeshActor, "actor", was_model.c_str());
699+ desireActor(VvvActor<GgafLib::CubeMapMeshActor>, "actor", was_model.c_str());
623700 CONFIG::DIR_TEXTURE[0] = dir_texture_user; //dir_texture_userはシステムスキンディレクトリ
624701 CONFIG::DIR_TEXTURE[1] = dropfile_dir + "/../" + CONFIG::DIRNAME_RESOURCE_SKIN_XXX_TEXTURE + "/";
625702 CONFIG::DIR_TEXTURE[2] = dropfile_dir;
@@ -634,7 +711,7 @@ void VvvWorld::processBehavior() {
634711 CONFIG::DIR_TEXTURE[1] = was_dropfile_dir + "/../" + CONFIG::DIRNAME_RESOURCE_SKIN_XXX_TEXTURE + "/";
635712 CONFIG::DIR_TEXTURE[2] = was_dropfile_dir;
636713 GgafLib::CubeMapMorphMeshActor* pCubeMapMorphMeshActor =
637- desireActor(GgafLib::CubeMapMorphMeshActor, "actor", pCurrentActor->getModel()->getName());
714+ desireActor(VvvActor<GgafLib::CubeMapMorphMeshActor>, "actor", pCurrentActor->getModel()->getName());
638715 CONFIG::DIR_TEXTURE[0] = dir_texture_user; //dir_texture_userはシステムスキンディレクトリ
639716 CONFIG::DIR_TEXTURE[1] = dropfile_dir + "/../" + CONFIG::DIRNAME_RESOURCE_SKIN_XXX_TEXTURE + "/";
640717 CONFIG::DIR_TEXTURE[2] = dropfile_dir;
--- a/VVViewer/src/scene/VvvSpacetime/VvvWorld.h
+++ b/VVViewer/src/scene/VvvSpacetime/VvvWorld.h
@@ -50,6 +50,13 @@ public:
5050 bool view_help_;
5151 VvvMousePointer* pVvvMousePointer_;
5252
53+ double _w_r;
54+ double _h_r;
55+ pixcoord _buffer_left1;
56+ pixcoord _buffer_top1;
57+ pixcoord _buffer_width1;
58+ pixcoord _buffer_height1;
59+
5360 /**
5461 * コンストラクタ .
5562 * @param prm_name 名称
--- a/VioletVreath/src/Version.h
+++ b/VioletVreath/src/Version.h
@@ -1 +1 @@
1-#define VERSION "VER 0.30.7097"
1+#define VERSION "VER 0.30.7105"