Browse Source

Reviewed example formating

pull/2585/head
Ray 2 years ago
parent
commit
4fced50fd1
3 changed files with 85 additions and 82 deletions
  1. +1
    -1
      examples/Makefile
  2. +84
    -81
      examples/core/core_2d_camera_mouse_zoom.c
  3. BIN
      examples/core/core_2d_camera_mouse_zoom.png

+ 1
- 1
examples/Makefile View File

@ -375,7 +375,7 @@ CORE = \
core/core_input_gestures \ core/core_input_gestures \
core/core_2d_camera \ core/core_2d_camera \
core/core_2d_camera_platformer \ core/core_2d_camera_platformer \
core/core_2d_camera_mouse_zoom \
core/core_2d_camera_mouse_zoom \
core/core_3d_camera_mode \ core/core_3d_camera_mode \
core/core_3d_camera_free \ core/core_3d_camera_free \
core/core_3d_camera_first_person \ core/core_3d_camera_first_person \

+ 84
- 81
examples/core/core_2d_camera_mouse_zoom.c View File

@ -2,100 +2,103 @@
* *
* raylib [core] example - 2d camera mouse zoom * raylib [core] example - 2d camera mouse zoom
* *
* This example has been created using raylib 1.5 (www.raylib.com)
* This example was originally created with raylib 4.2, last time updated for raylib 4.2
*
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
* *
* Copyright (c) 2022 Jeffery Myers * Copyright (c) 2022 Jeffery Myers
* *
********************************************************************************************/ ********************************************************************************************/
#include "raylib.h" #include "raylib.h"
#include "rlgl.h"
#include "raymath.h";
#include "rlgl.h"
#include "raymath.h"
//------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------
// Program main entry point // Program main entry point
//------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------
int main () int main ()
{ {
// Initialization
//--------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - 2d camera mouse zoom");
Camera2D camera = { 0 };
camera.zoom = 1;
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose())
{
// translate based on right click
if (IsMouseButtonDown(MOUSE_BUTTON_RIGHT))
{
Vector2 delta = GetMouseDelta();
delta = Vector2Scale(delta, -1.0f / camera.zoom);
camera.target = Vector2Add(camera.target, delta);
}
// zoom based on wheel
float wheel = GetMouseWheelMove();
if (wheel != 0)
{
// get the world point that is under the mouse
Vector2 mouseWorldPos = GetScreenToWorld2D(GetMousePosition(), camera);
// set the offset to where the mouse is
camera.offset = GetMousePosition();
// set the target to match, so that the camera maps the world space point under the cursor to the screen space point under the cursor at any zoom
camera.target = mouseWorldPos;
// zoom
const float zoomIncrement = 0.125f;
camera.zoom += wheel * zoomIncrement;
if (camera.zoom < zoomIncrement)
camera.zoom = zoomIncrement;
}
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
BeginDrawing();
ClearBackground(BLACK);
BeginMode2D(camera);
// draw the 3d grid, rotated 90 degrees and centered around 0,0 just so we have something in the XY plane
rlPushMatrix();
rlTranslatef(0, 25 * 50, 0);
rlRotatef(90, 1, 0, 0);
DrawGrid(100, 50);
rlPopMatrix();
// draw a thing
DrawCircle(100, 100, 50, YELLOW);
EndMode2D();
DrawText("Right drag to move, mouse wheel to zoom", 2, 2, 20, WHITE);
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
// Initialization
//--------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - 2d camera mouse zoom");
Camera2D camera = { 0 };
camera.zoom = 1.0f;
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
// Translate based on mouse right click
if (IsMouseButtonDown(MOUSE_BUTTON_RIGHT))
{
Vector2 delta = GetMouseDelta();
delta = Vector2Scale(delta, -1.0f/camera.zoom);
camera.target = Vector2Add(camera.target, delta);
}
// Zoom based on mouse wheel
float wheel = GetMouseWheelMove();
if (wheel != 0)
{
// Get the world point that is under the mouse
Vector2 mouseWorldPos = GetScreenToWorld2D(GetMousePosition(), camera);
// Set the offset to where the mouse is
camera.offset = GetMousePosition();
// Set the target to match, so that the camera maps the world space point
// under the cursor to the screen space point under the cursor at any zoom
camera.target = mouseWorldPos;
// Zoom increment
const float zoomIncrement = 0.125f;
camera.zoom += (wheel*zoomIncrement);
if (camera.zoom < zoomIncrement) camera.zoom = zoomIncrement;
}
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(BLACK);
BeginMode2D(camera);
// Draw the 3d grid, rotated 90 degrees and centered around 0,0
// just so we have something in the XY plane
rlPushMatrix();
rlTranslatef(0, 25*50, 0);
rlRotatef(90, 1, 0, 0);
DrawGrid(100, 50);
rlPopMatrix();
// Draw a reference circle
DrawCircle(100, 100, 50, YELLOW);
EndMode2D();
DrawText("Mouse right button drag to move, mouse wheel to zoom", 10, 10, 20, WHITE);
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
CloseWindow(); // Close window and OpenGL context
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
return 0;
} }

BIN
examples/core/core_2d_camera_mouse_zoom.png View File

Before After
Width: 800  |  Height: 450  |  Size: 16 KiB

Loading…
Cancel
Save