about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--html/rogue/index.html4
-rw-r--r--html/rogue/js/config.js32
-rw-r--r--html/rogue/js/renderer.js14
-rw-r--r--html/rogue/js/rogue.js6
-rw-r--r--html/rogue/js/world.js48
5 files changed, 72 insertions, 32 deletions
diff --git a/html/rogue/index.html b/html/rogue/index.html
index 2920841..ef37885 100644
--- a/html/rogue/index.html
+++ b/html/rogue/index.html
@@ -14,13 +14,13 @@
 </head>
 <body>
     <canvas id="gameCanvas"></canvas>
-    <!-- Load renderer.js first since other files depend on its functions -->
+    <!-- Load config first since other files depend on it -->
+    <script src="js/config.js"></script>
     <script src="js/renderer.js"></script>
     <script src="js/input.js"></script>
     <script src="js/world.js"></script>
     <script src="js/player.js"></script>
     <script src="js/camera.js"></script>
-    <!-- Load rogue.js last as it uses functions from all other files -->
     <script src="js/rogue.js"></script>
 </body>
 </html>
diff --git a/html/rogue/js/config.js b/html/rogue/js/config.js
new file mode 100644
index 0000000..77100e1
--- /dev/null
+++ b/html/rogue/js/config.js
@@ -0,0 +1,32 @@
+const CONFIG = {
+    player: {
+        width: 32,
+        height: 48,
+        speed: 5,
+        jumpForce: 12,
+        gravity: 0.5,
+        color: '#ff0000'
+    },
+    world: {
+        groundHeight: 12,
+        wilderness: {
+            vegetation: {
+                grass: {
+                    colors: ['#3a5', '#294'],
+                    hatch: {
+                        angle: Math.PI / 4,
+                        variation: Math.PI / 6,
+                        spacing: 4,
+                        length: 8,
+                        margin: 2
+                    }
+                }
+            }
+        }
+    },
+    camera: {
+        width: window.innerWidth,
+        height: window.innerHeight,
+        followSpeed: 0.1
+    }
+}; 
\ No newline at end of file
diff --git a/html/rogue/js/renderer.js b/html/rogue/js/renderer.js
index e0fd489..617b4c7 100644
--- a/html/rogue/js/renderer.js
+++ b/html/rogue/js/renderer.js
@@ -37,22 +37,26 @@ const renderBackground = (ctx, state, groundY, viewBounds) => {
     // Save the current transform
     ctx.save();
     
-    // Reset transform for viewport-fixed sky
+    // Reset transform for viewport-fixed sky and initial black fill
     ctx.setTransform(1, 0, 0, 1, 0, 0);
     
     // Sky (fixed to viewport)
     ctx.fillStyle = state.cachedGradient;
     ctx.fillRect(0, 0, ctx.canvas.width, groundY);
 
-    // Restore transform for underground
+    // Initial black fill for the bottom of the viewport
+    ctx.fillStyle = '#000000';
+    ctx.fillRect(0, groundY, ctx.canvas.width, ctx.canvas.height - groundY + 1);
+
+    // Restore transform for world-space rendering
     ctx.restore();
     
-    // Underground (follows camera)
+    // Additional black fill that follows the camera (extends far to left and right)
     ctx.fillStyle = '#000000';
     ctx.fillRect(
-        viewBounds.left,
+        viewBounds.left - 2000,
         groundY,
-        viewBounds.right - viewBounds.left,
+        viewBounds.right - viewBounds.left + 4000,
         ctx.canvas.height
     );
 };
diff --git a/html/rogue/js/rogue.js b/html/rogue/js/rogue.js
index 75a4c86..64716a4 100644
--- a/html/rogue/js/rogue.js
+++ b/html/rogue/js/rogue.js
@@ -22,10 +22,14 @@ const initGame = () => {
     window.addEventListener('resize', resizeCanvas);
     resizeCanvas();
 
+    // Calculate initial player position at ground level
+    const groundY = canvas.height - CONFIG.world.groundHeight;
+    const initialPlayerY = groundY - CONFIG.player.height;
+
     // Game state
     let gameState = {
         time: 0,
-        player: createPlayer(100, 100),
+        player: createPlayer(100, initialPlayerY),
         camera: createCamera(0, 0),
         world: createWorld(),
         debug: {
diff --git a/html/rogue/js/world.js b/html/rogue/js/world.js
index ec6b5e8..0e8cbd7 100644
--- a/html/rogue/js/world.js
+++ b/html/rogue/js/world.js
@@ -265,30 +265,30 @@ const createWorld = () => {
             }
         ],
         platforms: [
-            {
-                type: WORLD_OBJECTS.PLATFORM,
-                x: 300,
-                y: 300,
-                width: 200,
-                height: 20,
-                color: '#484'
-            },
-            {
-                type: WORLD_OBJECTS.PLATFORM,
-                x: 600,
-                y: 200,
-                width: 200,
-                height: 20,
-                color: '#484'
-            },
-            {
-                type: WORLD_OBJECTS.PLATFORM,
-                x: -200,
-                y: 250,
-                width: 200,
-                height: 20,
-                color: '#484'
-            }
+            // {
+            //     type: WORLD_OBJECTS.PLATFORM,
+            //     x: 300,
+            //     y: 300,
+            //     width: 200,
+            //     height: 20,
+            //     color: '#484'
+            // },
+            // {
+            //     type: WORLD_OBJECTS.PLATFORM,
+            //     x: 600,
+            //     y: 200,
+            //     width: 200,
+            //     height: 20,
+            //     color: '#484'
+            // },
+            // {
+            //     type: WORLD_OBJECTS.PLATFORM,
+            //     x: -200,
+            //     y: 250,
+            //     width: 200,
+            //     height: 20,
+            //     color: '#484'
+            // }
         ],
         foregroundTrees: [
             // Far left trees