Difference between revisions of "Global Command: createScreenshot"
From The Official Visionaire Studio: Adventure Game Engine Wiki
(9 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | + | Create a screenshot to be used for the next savegame or to save into an external folder as a .png file. | |
− | |||
− | |||
− | |||
− | |||
− | + | == Syntax == | |
+ | <syntaxhighlight lang="lua"> | ||
+ | createScreenshot(filename, flags) | ||
+ | </syntaxhighlight> | ||
− | + | == Parameters == | |
− | + | ||
− | + | {| class="ts" | |
− | + | |- | |
+ | ! style="width:15%" | Parameter | ||
+ | ! style="width:15%" colspan="2" | Type/Structure | ||
+ | ! Description | ||
+ | |- | ||
+ | | filename | ||
+ | | colspan="2" | string | ||
+ | | If specified the screenshot will be saved to the given path. If not specified the screenshot will be used for the next savegame(s), until a new screenshot is created or the current screenshot is cleared. If a screenshot for a savegame was created before it will be overwritten by the new screenshot. | ||
+ | |- | ||
+ | | rowspan="2" | flags | ||
+ | | rowspan="2" | table | ||
+ | | flags = 1 | ||
+ | | indicates flags table | ||
+ | |- | ||
+ | | clear (bool) | ||
+ | | If true the screenshot will be cleared. If the screenshot is cleared, savegame screenshots will be generated automatically by the engine again (everytime the scene is changed from a playable scene to a menu). If the "flags" parameter is omitted, this defaults to false. | ||
+ | |} | ||
− | + | == Return values == | |
− | |||
− | |||
− | |||
− | |||
− | + | none | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | == Examples == | |
− | |||
− | |||
− | + | '''Example 1:''' Save a screenshot which will get used for the next savegame. | |
− | + | <syntaxhighlight lang="lua"> | |
− | createScreenshot( | + | createScreenshot() |
</syntaxhighlight> | </syntaxhighlight> | ||
+ | '''Example 2:''' Clear the previously saved savegame screenshot. | ||
+ | <syntaxhighlight lang="lua"> | ||
+ | createScreenshot("", {flags=1, clear = true}) | ||
+ | </syntaxhighlight> | ||
− | |||
− | + | '''Example 3:''' Save a screenshot to a folder. If a file with the same name already exists, it will be overwritten. Be aware that the default save location is the game directory, which may be write-protected. | |
− | |||
+ | <syntaxhighlight lang="lua"> | ||
+ | createScreenshot("screenshots/my_screenshot.png") | ||
+ | </syntaxhighlight> | ||
− | |||
− | < | + | '''Example 4:''' This expanded example uses the "lfs" file system library to check for a "screenshots" folder inside the user directory and creates it if it doesn't exist. |
− | + | <syntaxhighlight lang="lua"> | |
+ | -- Define a screenshot folder inside the user directory | ||
+ | local screenshot_folder = localAppDir .. "screenshots" | ||
+ | -- Function to check if a folder exists | ||
+ | function folderExists(strFolderName) | ||
+ | if lfs.attributes(strFolderName:gsub("\\$",""),"mode") == "directory" then | ||
+ | return true | ||
+ | else | ||
+ | return false | ||
+ | end | ||
+ | end | ||
− | + | -- Try to create the screenshot folder, if it doesn't exist | |
+ | if not folderExists(screenshot_folder) then | ||
+ | lfs.mkdir(screenshot_folder) | ||
+ | end | ||
− | + | -- If the screenshot folder exists, save a screenshot with timestamp | |
+ | if folderExists(screenshot_folder) then | ||
+ | local time = os.date("%Y-%m-%d_%H-%M-%S") | ||
+ | createScreenshot(screenshot_folder .. "/screenshot_" .. time .. ".png") | ||
+ | end | ||
+ | </syntaxhighlight> | ||
+ | {{toc}} |
Latest revision as of 18:58, 2 May 2023
Create a screenshot to be used for the next savegame or to save into an external folder as a .png file.
Syntax
createScreenshot(filename, flags)
Parameters
Parameter | Type/Structure | Description | |
---|---|---|---|
filename | string | If specified the screenshot will be saved to the given path. If not specified the screenshot will be used for the next savegame(s), until a new screenshot is created or the current screenshot is cleared. If a screenshot for a savegame was created before it will be overwritten by the new screenshot. | |
flags | table | flags = 1 | indicates flags table |
clear (bool) | If true the screenshot will be cleared. If the screenshot is cleared, savegame screenshots will be generated automatically by the engine again (everytime the scene is changed from a playable scene to a menu). If the "flags" parameter is omitted, this defaults to false. |
Return values
none
Examples
Example 1: Save a screenshot which will get used for the next savegame.
createScreenshot()
Example 2: Clear the previously saved savegame screenshot.
createScreenshot("", {flags=1, clear = true})
Example 3: Save a screenshot to a folder. If a file with the same name already exists, it will be overwritten. Be aware that the default save location is the game directory, which may be write-protected.
createScreenshot("screenshots/my_screenshot.png")
Example 4: This expanded example uses the "lfs" file system library to check for a "screenshots" folder inside the user directory and creates it if it doesn't exist.
-- Define a screenshot folder inside the user directory
local screenshot_folder = localAppDir .. "screenshots"
-- Function to check if a folder exists
function folderExists(strFolderName)
if lfs.attributes(strFolderName:gsub("\\$",""),"mode") == "directory" then
return true
else
return false
end
end
-- Try to create the screenshot folder, if it doesn't exist
if not folderExists(screenshot_folder) then
lfs.mkdir(screenshot_folder)
end
-- If the screenshot folder exists, save a screenshot with timestamp
if folderExists(screenshot_folder) then
local time = os.date("%Y-%m-%d_%H-%M-%S")
createScreenshot(screenshot_folder .. "/screenshot_" .. time .. ".png")
end