Add raylib lua examples
This commit is contained in:
parent
5f1b4e9474
commit
00c7e54d3c
53 changed files with 4322 additions and 21 deletions
127
examples/shapes_logo_raylib_anim.lua
Normal file
127
examples/shapes_logo_raylib_anim.lua
Normal file
|
@ -0,0 +1,127 @@
|
|||
-------------------------------------------------------------------------------------------
|
||||
--
|
||||
-- raylib [shapes] example - raylib logo animation
|
||||
--
|
||||
-- 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 [shapes] example - raylib logo animation")
|
||||
|
||||
local logoPositionX = screenWidth/2 - 128
|
||||
local logoPositionY = screenHeight/2 - 128
|
||||
|
||||
local framesCounter = 0
|
||||
local lettersCount = 0
|
||||
|
||||
local topSideRecWidth = 16
|
||||
local leftSideRecHeight = 16
|
||||
|
||||
local bottomSideRecWidth = 16
|
||||
local rightSideRecHeight = 16
|
||||
|
||||
local state = 0 -- Tracking animation states (State Machine)
|
||||
local alpha = 1.0 -- Useful for fading
|
||||
|
||||
SetTargetFPS(60) -- Set target frames-per-second
|
||||
-------------------------------------------------------------------------------------------
|
||||
|
||||
-- Main game loop
|
||||
while not WindowShouldClose() do -- Detect window close button or ESC key
|
||||
-- Update
|
||||
---------------------------------------------------------------------------------------
|
||||
if (state == 0) then -- State 0: Small box blinking
|
||||
framesCounter = framesCounter + 1
|
||||
|
||||
if (framesCounter == 120) then
|
||||
state = 1
|
||||
framesCounter = 0 -- Reset counter... will be used later...
|
||||
end
|
||||
elseif (state == 1) then -- State 1: Top and left bars growing
|
||||
topSideRecWidth = topSideRecWidth + 4
|
||||
leftSideRecHeight = leftSideRecHeight + 4
|
||||
|
||||
if (topSideRecWidth == 256) then state = 2 end
|
||||
elseif (state == 2) then -- State 2: Bottom and right bars growing
|
||||
bottomSideRecWidth = bottomSideRecWidth + 4
|
||||
rightSideRecHeight = rightSideRecHeight + 4
|
||||
|
||||
if (bottomSideRecWidth == 256) then state = 3 end
|
||||
elseif (state == 3) then -- State 3: Letters appearing (one by one)
|
||||
framesCounter = framesCounter + 1
|
||||
|
||||
if (framesCounter//12 == 1) then -- Every 12 frames, one more letter!
|
||||
lettersCount = lettersCount + 1
|
||||
framesCounter = 0
|
||||
end
|
||||
|
||||
if (lettersCount >= 10) then -- When all letters have appeared, just fade out everything
|
||||
alpha = alpha - 0.02
|
||||
|
||||
if (alpha <= 0.0) then
|
||||
alpha = 0.0
|
||||
state = 4
|
||||
end
|
||||
end
|
||||
elseif (state == 4) then -- State 4: Reset and Replay
|
||||
if (IsKeyPressed(KEY.R)) then
|
||||
framesCounter = 0
|
||||
lettersCount = 0
|
||||
|
||||
topSideRecWidth = 16
|
||||
leftSideRecHeight = 16
|
||||
|
||||
bottomSideRecWidth = 16
|
||||
rightSideRecHeight = 16
|
||||
|
||||
alpha = 1.0
|
||||
state = 0 -- Return to State 0
|
||||
end
|
||||
end
|
||||
---------------------------------------------------------------------------------------
|
||||
|
||||
-- Draw
|
||||
---------------------------------------------------------------------------------------
|
||||
BeginDrawing()
|
||||
|
||||
ClearBackground(RAYWHITE)
|
||||
|
||||
if (state == 0) then
|
||||
if ((framesCounter//15)%2 == 1) then DrawRectangle(logoPositionX, logoPositionY, 16, 16, BLACK) end
|
||||
elseif (state == 1) then
|
||||
DrawRectangle(logoPositionX, logoPositionY, topSideRecWidth, 16, BLACK)
|
||||
DrawRectangle(logoPositionX, logoPositionY, 16, leftSideRecHeight, BLACK)
|
||||
elseif (state == 2) then
|
||||
DrawRectangle(logoPositionX, logoPositionY, topSideRecWidth, 16, BLACK)
|
||||
DrawRectangle(logoPositionX, logoPositionY, 16, leftSideRecHeight, BLACK)
|
||||
|
||||
DrawRectangle(logoPositionX + 240, logoPositionY, 16, rightSideRecHeight, BLACK)
|
||||
DrawRectangle(logoPositionX, logoPositionY + 240, bottomSideRecWidth, 16, BLACK)
|
||||
elseif (state == 3) then
|
||||
DrawRectangle(logoPositionX, logoPositionY, topSideRecWidth, 16, Fade(BLACK, alpha))
|
||||
DrawRectangle(logoPositionX, logoPositionY + 16, 16, leftSideRecHeight - 32, Fade(BLACK, alpha))
|
||||
|
||||
DrawRectangle(logoPositionX + 240, logoPositionY + 16, 16, rightSideRecHeight - 32, Fade(BLACK, alpha))
|
||||
DrawRectangle(logoPositionX, logoPositionY + 240, bottomSideRecWidth, 16, Fade(BLACK, alpha))
|
||||
|
||||
DrawRectangle(screenWidth/2 - 112, screenHeight/2 - 112, 224, 224, Fade(RAYWHITE, alpha))
|
||||
|
||||
DrawText(string.sub("raylib", 0, lettersCount), screenWidth/2 - 44, screenHeight/2 + 48, 50, Fade(BLACK, alpha))
|
||||
elseif (state == 4) then DrawText("[R] REPLAY", 340, 200, 20, GRAY) end
|
||||
|
||||
EndDrawing()
|
||||
---------------------------------------------------------------------------------------
|
||||
end
|
||||
|
||||
-- De-Initialization
|
||||
-------------------------------------------------------------------------------------------
|
||||
CloseWindow() -- Close window and OpenGL context
|
||||
-------------------------------------------------------------------------------------------
|
Loading…
Add table
Add a link
Reference in a new issue