Add raylib lua examples
This commit is contained in:
parent
5f1b4e9474
commit
00c7e54d3c
53 changed files with 4322 additions and 21 deletions
115
examples/models_box_collisions.lua
Normal file
115
examples/models_box_collisions.lua
Normal file
|
@ -0,0 +1,115 @@
|
|||
-------------------------------------------------------------------------------------------
|
||||
--
|
||||
-- raylib [models] example - Detect basic 3d collisions (box vs sphere vs box)
|
||||
--
|
||||
-- This example has been created using raylib 1.6 (www.raylib.com)
|
||||
-- raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
||||
--
|
||||
-- Copyright (c) 2014-2016 Ramon Santamaria (@raysan5)
|
||||
--
|
||||
-------------------------------------------------------------------------------------------
|
||||
|
||||
-- Initialization
|
||||
-------------------------------------------------------------------------------------------
|
||||
local screenWidth = 800
|
||||
local screenHeight = 450
|
||||
|
||||
InitWindow(screenWidth, screenHeight, "raylib [models] example - box collisions")
|
||||
|
||||
-- Define the camera to look into our 3d world
|
||||
local camera = Camera(Vector3(0.0, 10.0, 10.0), Vector3(0.0, 0.0, 0.0), Vector3(0.0, 1.0, 0.0), 45.0)
|
||||
|
||||
local playerPosition = Vector3(0.0, 1.0, 2.0)
|
||||
local playerSize = Vector3(1.0, 2.0, 1.0)
|
||||
local playerColor = GREEN
|
||||
|
||||
local enemyBoxPos = Vector3(-4.0, 1.0, 0.0)
|
||||
local enemyBoxSize = Vector3(2.0, 2.0, 2.0)
|
||||
|
||||
local enemySpherePos = Vector3(4.0, 0.0, 0.0)
|
||||
local enemySphereSize = 1.5
|
||||
|
||||
local collision = false
|
||||
|
||||
SetTargetFPS(60) -- Set our game to run at 60 frames-per-second
|
||||
-------------------------------------------------------------------------------------------
|
||||
|
||||
-- Main game loop
|
||||
while not WindowShouldClose() do -- Detect window close button or ESC key
|
||||
-- Update
|
||||
---------------------------------------------------------------------------------------
|
||||
|
||||
-- Move player
|
||||
if (IsKeyDown(KEY.RIGHT)) then playerPosition.x = playerPosition.x + 0.2f end
|
||||
elseif (IsKeyDown(KEY.LEFT)) then playerPosition.x = playerPosition.x - 0.2f end
|
||||
elseif (IsKeyDown(KEY.DOWN)) then playerPosition.z = playerPosition.z + 0.2f end
|
||||
elseif (IsKeyDown(KEY.UP)) then playerPosition.z = playerPosition.z - 0.2f end
|
||||
|
||||
collision = false
|
||||
|
||||
-- Check collisions player vs enemy-box
|
||||
if (CheckCollisionBoxes(
|
||||
BoundingBox(Vector3(playerPosition.x - playerSize.x/2,
|
||||
playerPosition.y - playerSize.y/2,
|
||||
playerPosition.z - playerSize.z/2),
|
||||
Vector3(playerPosition.x + playerSize.x/2,
|
||||
playerPosition.y + playerSize.y/2,
|
||||
playerPosition.z + playerSize.z/2)),
|
||||
BoundingBox(Vector3(enemyBoxPos.x - enemyBoxSize.x/2,
|
||||
enemyBoxPos.y - enemyBoxSize.y/2,
|
||||
enemyBoxPos.z - enemyBoxSize.z/2),
|
||||
Vector3(enemyBoxPos.x + enemyBoxSize.x/2,
|
||||
enemyBoxPos.y + enemyBoxSize.y/2,
|
||||
enemyBoxPos.z + enemyBoxSize.z/2))) then collision = true
|
||||
end
|
||||
|
||||
-- Check collisions player vs enemy-sphere
|
||||
if (CheckCollisionBoxSphere(
|
||||
BoundingBox(Vector3(playerPosition.x - playerSize.x/2,
|
||||
playerPosition.y - playerSize.y/2,
|
||||
playerPosition.z - playerSize.z/2),
|
||||
Vector3(playerPosition.x + playerSize.x/2,
|
||||
playerPosition.y + playerSize.y/2,
|
||||
playerPosition.z + playerSize.z/2)),
|
||||
enemySpherePos, enemySphereSize)) then collision = true
|
||||
end
|
||||
|
||||
if (collision) then playerColor = RED
|
||||
else playerColor = GREEN end
|
||||
---------------------------------------------------------------------------------------
|
||||
|
||||
-- Draw
|
||||
---------------------------------------------------------------------------------------
|
||||
BeginDrawing()
|
||||
|
||||
ClearBackground(RAYWHITE)
|
||||
|
||||
Begin3dMode(camera)
|
||||
|
||||
-- Draw enemy-box
|
||||
DrawCube(enemyBoxPos, enemyBoxSize.x, enemyBoxSize.y, enemyBoxSize.z, GRAY)
|
||||
DrawCubeWires(enemyBoxPos, enemyBoxSize.x, enemyBoxSize.y, enemyBoxSize.z, DARKGRAY)
|
||||
|
||||
-- Draw enemy-sphere
|
||||
DrawSphere(enemySpherePos, enemySphereSize, GRAY)
|
||||
DrawSphereWires(enemySpherePos, enemySphereSize, 16, 16, DARKGRAY)
|
||||
|
||||
-- Draw player
|
||||
DrawCubeV(playerPosition, playerSize, playerColor)
|
||||
|
||||
DrawGrid(10, 1.0) -- Draw a grid
|
||||
|
||||
End3dMode()
|
||||
|
||||
DrawText("Move player with cursors to collide", 220, 40, 20, GRAY)
|
||||
|
||||
DrawFPS(10, 10)
|
||||
|
||||
EndDrawing()
|
||||
---------------------------------------------------------------------------------------
|
||||
end
|
||||
|
||||
-- De-Initialization
|
||||
-------------------------------------------------------------------------------------------
|
||||
CloseWindow() -- Close window and OpenGL context
|
||||
-------------------------------------------------------------------------------------------
|
Loading…
Add table
Add a link
Reference in a new issue