Difference between revisions of "Global Command: createScreenshot"
From The Official Visionaire Studio: Adventure Game Engine Wiki
(4 intermediate revisions by the same user 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. | Create a screenshot to be used for the next savegame or to save into an external folder as a .png file. | ||
Line 12: | Line 4: | ||
== Syntax == | == Syntax == | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
− | createScreenshot(filename, | + | createScreenshot(filename, flags) |
</syntaxhighlight> | </syntaxhighlight> | ||
Line 34: | Line 26: | ||
|- | |- | ||
| clear (bool) | | clear (bool) | ||
− | | If true the screenshot will be cleared | + | | 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. |
|} | |} | ||
Line 44: | Line 36: | ||
== Examples == | == Examples == | ||
− | '''Example 1:''' Save a screenshot | + | |
+ | '''Example 1:''' Save a screenshot which will get used for the next savegame. | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
− | + | createScreenshot() | |
− | createScreenshot( | + | </syntaxhighlight> |
− | + | ||
− | + | '''Example 2:''' Clear the previously saved savegame screenshot. | |
− | createScreenshot(" | + | <syntaxhighlight lang="lua"> |
+ | createScreenshot("", {flags=1, clear = true}) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | '''Example | + | '''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"> | <syntaxhighlight lang="lua"> | ||
− | createScreenshot() | + | createScreenshot("screenshots/my_screenshot.png") |
</syntaxhighlight> | </syntaxhighlight> | ||
− | '''Example | + | '''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"> | <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> | </syntaxhighlight> | ||
{{toc}} | {{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