|
1 | 1 | /******************************************************************************************* |
2 | | -* |
3 | | -* raylib [core] example - 2d camera |
4 | | -* |
5 | | -* This example has been created using raylib 1.5 (www.raylib.com) |
6 | | -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) |
7 | | -* |
8 | | -* Copyright (c) 2016 Ramon Santamaria (@raysan5) |
9 | | -* |
10 | | -********************************************************************************************/ |
| 2 | + * |
| 3 | + * raylib [core] example - 2d camera |
| 4 | + * |
| 5 | + * This example has been created using raylib 1.5 (www.raylib.com) |
| 6 | + * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) |
| 7 | + * |
| 8 | + * Copyright (c) 2016 Ramon Santamaria (@raysan5) |
| 9 | + * |
| 10 | + ********************************************************************************************/ |
11 | 11 |
|
12 | | -const r = require('raylib') |
| 12 | +const r = require("../../index.js"); |
13 | 13 |
|
14 | | -const MAX_BUILDINGS = 100 |
| 14 | +const MAX_BUILDINGS = 100; |
15 | 15 |
|
16 | 16 | // Initialization |
17 | 17 | // -------------------------------------------------------------------------------------- |
18 | | -const screenWidth = 800 |
19 | | -const screenHeight = 450 |
| 18 | +const screenWidth = 800; |
| 19 | +const screenHeight = 450; |
20 | 20 |
|
21 | | -r.InitWindow(screenWidth, screenHeight, 'raylib [core] example - 2d camera') |
| 21 | +r.InitWindow(screenWidth, screenHeight, "raylib [core] example - 2d camera"); |
22 | 22 |
|
23 | | -const player = r.Rectangle(400, 280, 40, 40) |
24 | | -const buildings = [] |
25 | | -const buildColors = [] |
| 23 | +const player = r.Rectangle(400, 280, 40, 40); |
| 24 | +const buildings = []; |
| 25 | +const buildColors = []; |
26 | 26 |
|
27 | | -let spacing = 0 |
| 27 | +let spacing = 0; |
28 | 28 |
|
29 | 29 | for (let i = 0; i < MAX_BUILDINGS; i++) { |
30 | | - const height = r.GetRandomValue(100, 800) |
| 30 | + const height = r.GetRandomValue(100, 800); |
31 | 31 | const newBuilding = r.Rectangle( |
32 | 32 | -6000 + spacing, |
33 | 33 | screenHeight - 130 - height, |
34 | 34 | r.GetRandomValue(50, 200), |
35 | 35 | height |
36 | | - ) |
37 | | - spacing += newBuilding.width |
38 | | - buildings.push(newBuilding) |
39 | | - buildColors.push(r.Color(r.GetRandomValue(200, 240), r.GetRandomValue(200, 240), r.GetRandomValue(200, 250), 255)) |
| 36 | + ); |
| 37 | + spacing += newBuilding.width; |
| 38 | + buildings.push(newBuilding); |
| 39 | + buildColors.push( |
| 40 | + r.Color( |
| 41 | + r.GetRandomValue(200, 240), |
| 42 | + r.GetRandomValue(200, 240), |
| 43 | + r.GetRandomValue(200, 250), |
| 44 | + 255 |
| 45 | + ) |
| 46 | + ); |
40 | 47 | } |
41 | 48 |
|
42 | 49 | const camera = r.Camera2D( |
43 | 50 | r.Vector2(screenWidth / 2, screenHeight / 2), |
44 | 51 | r.Vector2(player.x + 20, player.y + 20), |
45 | | - 0, 1) |
| 52 | + 0, |
| 53 | + 1 |
| 54 | +); |
46 | 55 |
|
47 | | -r.SetTargetFPS(60) // Set our game to run at 60 frames-per-second |
| 56 | +r.SetTargetFPS(60); // Set our game to run at 60 frames-per-second |
48 | 57 | // -------------------------------------------------------------------------------------- |
49 | 58 |
|
50 | 59 | // Main game loop |
51 | | -while (!r.WindowShouldClose()) { // Detect window close button or ESC key |
| 60 | +while (!r.WindowShouldClose()) { |
| 61 | + // Detect window close button or ESC key |
52 | 62 | // Update |
53 | 63 | // ---------------------------------------------------------------------------------- |
54 | 64 | if (r.IsKeyDown(r.KEY_RIGHT)) { |
55 | | - player.x += 2 // Player movement |
56 | | - camera.offset.x -= 2 // Camera displacement with player movement |
| 65 | + player.x += 2; // Player movement |
| 66 | + camera.offset.x -= 2; // Camera displacement with player movement |
57 | 67 | } else if (r.IsKeyDown(r.KEY_LEFT)) { |
58 | | - player.x -= 2 // Player movement |
59 | | - camera.offset.x += 2 // Camera displacement with player movement |
| 68 | + player.x -= 2; // Player movement |
| 69 | + camera.offset.x += 2; // Camera displacement with player movement |
60 | 70 | } |
61 | 71 |
|
62 | 72 | // Camera target follows player |
63 | | - camera.target = r.Vector2(player.x + 20, player.y + 20) |
| 73 | + camera.target = r.Vector2(player.x + 20, player.y + 20); |
64 | 74 |
|
65 | 75 | // Camera rotation controls |
66 | 76 | if (r.IsKeyDown(r.KEY_A)) { |
67 | | - camera.rotation-- |
| 77 | + camera.rotation--; |
68 | 78 | } else if (r.IsKeyDown(r.KEY_S)) { |
69 | | - camera.rotation++ |
| 79 | + camera.rotation++; |
70 | 80 | } |
71 | 81 |
|
72 | 82 | // Limit camera rotation to 80 degrees (-40 to 40) |
73 | 83 | if (camera.rotation > 40) { |
74 | | - camera.rotation = 40 |
| 84 | + camera.rotation = 40; |
75 | 85 | } else if (camera.rotation < -40) { |
76 | | - camera.rotation = -40 |
| 86 | + camera.rotation = -40; |
77 | 87 | } |
78 | 88 |
|
79 | 89 | // Camera zoom controls |
80 | | - camera.zoom += r.GetMouseWheelMove() * 0.05 |
| 90 | + camera.zoom += r.GetMouseWheelMove() * 0.05; |
81 | 91 |
|
82 | | - if (camera.zoom > 3) camera.zoom = 3 |
83 | | - else if (camera.zoom < 0.1) camera.zoom = 0.1 |
| 92 | + if (camera.zoom > 3) camera.zoom = 3; |
| 93 | + else if (camera.zoom < 0.1) camera.zoom = 0.1; |
84 | 94 |
|
85 | 95 | // Camera reset (zoom and rotation) |
86 | 96 | if (r.IsKeyPressed(r.KEY_R)) { |
87 | | - camera.zoom = 1.0 |
88 | | - camera.rotation = 0 |
| 97 | + camera.zoom = 1.0; |
| 98 | + camera.rotation = 0; |
89 | 99 | } |
90 | 100 | // ---------------------------------------------------------------------------------- |
91 | 101 |
|
92 | 102 | // Draw |
93 | 103 | // ---------------------------------------------------------------------------------- |
94 | | - r.BeginDrawing() |
| 104 | + r.BeginDrawing(); |
95 | 105 |
|
96 | | - r.ClearBackground(r.RAYWHITE) |
| 106 | + r.ClearBackground(r.RAYWHITE); |
97 | 107 |
|
98 | | - r.BeginMode2D(camera) |
| 108 | + r.BeginMode2D(camera); |
99 | 109 |
|
100 | | - r.DrawRectangle(-6000, 320, 13000, 8000, r.DARKGRAY) |
| 110 | + r.DrawRectangle(-6000, 320, 13000, 8000, r.DARKGRAY); |
101 | 111 |
|
102 | 112 | for (let i = 0; i < MAX_BUILDINGS; i++) { |
103 | | - r.DrawRectangleRec(buildings[i], buildColors[i]) |
| 113 | + r.DrawRectangleRec(buildings[i], buildColors[i]); |
104 | 114 | } |
105 | 115 |
|
106 | | - r.DrawRectangleRec(player, r.RED) |
107 | | - |
108 | | - r.DrawLine(camera.target.x, -screenHeight * 10, camera.target.x, screenHeight * 10, r.GREEN) |
109 | | - r.DrawLine(-screenWidth * 10, camera.target.y, screenWidth * 10, camera.target.y, r.GREEN) |
110 | | - |
111 | | - r.EndMode2D() |
112 | | - |
113 | | - r.DrawText('SCREEN AREA', 640, 10, 20, r.RED) |
114 | | - |
115 | | - r.DrawRectangle(0, 0, screenWidth, 5, r.RED) |
116 | | - r.DrawRectangle(0, 5, 5, screenHeight - 10, r.RED) |
117 | | - r.DrawRectangle(screenWidth - 5, 5, 5, screenHeight - 10, r.RED) |
118 | | - r.DrawRectangle(0, screenHeight - 5, screenWidth, 5, r.RED) |
119 | | - |
120 | | - r.DrawRectangle(10, 10, 250, 113, r.Fade(r.SKYBLUE, 0.5)) |
121 | | - r.DrawRectangleLines(10, 10, 250, 113, r.BLUE) |
122 | | - |
123 | | - r.DrawText('Free 2d camera controls:', 20, 20, 10, r.BLACK) |
124 | | - r.DrawText('- Right/Left to move Offset', 40, 40, 10, r.DARKGRAY) |
125 | | - r.DrawText('- Mouse Wheel to Zoom in-out', 40, 60, 10, r.DARKGRAY) |
126 | | - r.DrawText('- A / S to Rotate', 40, 80, 10, r.DARKGRAY) |
127 | | - r.DrawText('- R to reset Zoom and Rotation', 40, 100, 10, r.DARKGRAY) |
128 | | - |
129 | | - r.EndDrawing() |
| 116 | + r.DrawRectangleRec(player, r.RED); |
| 117 | + |
| 118 | + r.DrawLine( |
| 119 | + camera.target.x, |
| 120 | + -screenHeight * 10, |
| 121 | + camera.target.x, |
| 122 | + screenHeight * 10, |
| 123 | + r.GREEN |
| 124 | + ); |
| 125 | + r.DrawLine( |
| 126 | + -screenWidth * 10, |
| 127 | + camera.target.y, |
| 128 | + screenWidth * 10, |
| 129 | + camera.target.y, |
| 130 | + r.GREEN |
| 131 | + ); |
| 132 | + |
| 133 | + r.EndMode2D(); |
| 134 | + |
| 135 | + r.DrawText("SCREEN AREA", 640, 10, 20, r.RED); |
| 136 | + |
| 137 | + r.DrawRectangle(0, 0, screenWidth, 5, r.RED); |
| 138 | + r.DrawRectangle(0, 5, 5, screenHeight - 10, r.RED); |
| 139 | + r.DrawRectangle(screenWidth - 5, 5, 5, screenHeight - 10, r.RED); |
| 140 | + r.DrawRectangle(0, screenHeight - 5, screenWidth, 5, r.RED); |
| 141 | + |
| 142 | + r.DrawRectangle(10, 10, 250, 113, r.Fade(r.SKYBLUE, 0.5)); |
| 143 | + r.DrawRectangleLines(10, 10, 250, 113, r.BLUE); |
| 144 | + |
| 145 | + r.DrawText("Free 2d camera controls:", 20, 20, 10, r.BLACK); |
| 146 | + r.DrawText("- Right/Left to move Offset", 40, 40, 10, r.DARKGRAY); |
| 147 | + r.DrawText("- Mouse Wheel to Zoom in-out", 40, 60, 10, r.DARKGRAY); |
| 148 | + r.DrawText("- A / S to Rotate", 40, 80, 10, r.DARKGRAY); |
| 149 | + r.DrawText("- R to reset Zoom and Rotation", 40, 100, 10, r.DARKGRAY); |
| 150 | + |
| 151 | + r.EndDrawing(); |
130 | 152 | // ---------------------------------------------------------------------------------- |
131 | 153 | } |
132 | 154 |
|
133 | 155 | // De-Initialization |
134 | 156 | // -------------------------------------------------------------------------------------- |
135 | | -r.CloseWindow() // Close window and OpenGL context |
| 157 | +r.CloseWindow(); // Close window and OpenGL context |
136 | 158 | // -------------------------------------------------------------------------------------- |
0 commit comments