Browse Source

Added octree debug display to NinjaSnowWar.

Lasse Öörni 14 years ago
parent
commit
eb319a77c9

+ 5 - 0
Bin/Data/Scripts/NinjaSnowWar.as

@@ -31,6 +31,7 @@ Controls playerControls;
 Controls prevPlayerControls;
 bool gameOn = false;
 bool drawDebug = false;
+bool drawOctreeDebug = false;
 int score = 0;
 int hiscore = 0;
 int maxEnemies = 0;
@@ -200,6 +201,8 @@ void handleUpdate(StringHash eventType, VariantMap& eventData)
         debugHud.toggleAll();
     if (input.getKeyPress(KEY_F2))
         drawDebug = !drawDebug;
+    if (input.getKeyPress(KEY_F3))
+        drawOctreeDebug = !drawOctreeDebug;
         
     if (input.getKeyPress(KEY_F5))
         gameScene.save(File(getExecutableDirectory() + "Data/Save.dat", FILE_WRITE));
@@ -244,6 +247,8 @@ void handlePostRenderUpdate()
 {
     if (drawDebug)
         gameScene.getPhysicsWorld().drawDebugGeometry(true);
+    if (drawOctreeDebug)
+        gameScene.getOctree().drawDebugGeometry(true);
 }
 
 void handlePoints(StringHash eventType, VariantMap& eventData)

+ 1 - 1
Bin/Data/TestLevel.xml

@@ -1,5 +1,5 @@
 <scene name="NinjaSnowWar">
-    <octree min="-100000 -100000 -100000" max="100000 100000 100000" levels="8" />
+    <octree min="-20000 -20000 -20000" max="20000 20000 20000" levels="7" />
     <physics gravity="0 -981 0" fps="200">
         <linear restthreshold="0.1" dampingthreshold="0" dampingscale="0.001" />
     </physics>

+ 8 - 13
Examples/NinjaSnowWar/Game.cpp

@@ -45,6 +45,7 @@
 #include "Material.h"
 #include "MemoryBuffer.h"
 #include "Ninja.h"
+#include "Octree.h"
 #include "PackageFile.h"
 #include "PositionalChannel.h"
 #include "Potion.h"
@@ -82,6 +83,7 @@
 int simulatePacketLoss = 0;
 int simulateLatency = 0;
 bool drawDebug = false;
+bool drawOctreeDebug = false;
 std::string applicationDir;
 std::string downloadDir;
 
@@ -487,6 +489,8 @@ void Game::handlePostRenderUpdate(StringHash eventType, VariantMap& eventData)
 {
     if (drawDebug)
         mScene->getExtension<PhysicsWorld>()->drawDebugGeometry(true);
+    if (drawOctreeDebug)
+        mScene->getExtension<Octree>()->drawDebugGeometry(true);
 }
 
 void Game::handlePreStep(StringHash eventType, VariantMap& eventData)
@@ -755,9 +759,11 @@ void Game::getControls()
     Input* input = mEngine->getInput();
     
     if (input->getKeyPress(KEY_F1))
-        toggleDebugOverlay();
+        mEngine->getDebugHud()->toggleAll();
     if (input->getKeyPress(KEY_F2))
-        toggleDebugGeometry();
+        drawDebug = !drawDebug;
+    if (input->getKeyPress(KEY_F3))
+        drawOctreeDebug = !drawOctreeDebug;
     
     // Toggle edge filter (deferred only)
     if (input->getKeyPress('F'))
@@ -826,17 +832,6 @@ void Game::getControls()
     }
 }
 
-void Game::toggleDebugOverlay()
-{
-    mEngine->getDebugHud()->toggleAll();
-}
-
-void Game::toggleDebugGeometry()
-{
-    PhysicsWorld* world = mScene->getExtension<PhysicsWorld>();
-    drawDebug = !drawDebug;
-}
-
 void Game::togglePause()
 {
     // Can not pause in multiplayer

+ 0 - 2
Examples/NinjaSnowWar/Game.h

@@ -102,8 +102,6 @@ private:
     void handleScore(StringHash eventType, VariantMap& eventData);
     void handleHiScore(StringHash eventType, VariantMap& eventData);
     void getControls();
-    void toggleDebugOverlay();
-    void toggleDebugGeometry();
     void togglePause();
     void makeHarder();
     void spawnObjects(float timeStep);

+ 1 - 0
Examples/NinjaSnowWar/Readme.txt

@@ -27,6 +27,7 @@ X           - Cycle packet loss test mode 0% - 33% - 66% (multiplayer only)
 Z           - Cycle lag test mode 0 ms - 150 ms - 500 ms (multiplayer only)
 F1          - Toggle profiler
 F2          - Toggle physics debug geometry
+F3          - Toggle octree debug geometry
 F5          - Quicksave (singleplayer only)
 F7          - Quickload (singleplayer only)
 Alt-Enter   - Toggle fullscreen/windowed