Added some screenshot functionality on ctrl+p

Also tidied up some vs code stuff
This commit is contained in:
Gordon Pedersen 2023-08-01 13:13:29 +10:00
parent 24718bc096
commit 3886790925
4 changed files with 35 additions and 4 deletions

View file

@ -0,0 +1,8 @@
{
"folders": [
{
"path": "🕹cube-tube"
}
],
"settings": {}
}

View file

@ -8,7 +8,7 @@
"name": "Run Game",
"type": "node-terminal",
"request": "launch",
"command": "${workspaceRoot}/../.dragonruby/dragonruby ${workspaceRoot}",
"command": "\"${workspaceRoot}/../.dragonruby/dragonruby\" \"${workspaceRoot}\"",
"windows": {
"command": "${workspaceRoot}/../.dragonruby/dragonruby.exe ${workspaceRoot}",
},

View file

@ -10,8 +10,31 @@ class SceneInstance
attr_reader :tick_in_background
attr_accessor :reset_on_pop
def screenshot(args)
screenshot_path = "../marketing-assets/screenshots/#{args.gtk.platform}"
now = Time.new
now_s = "#{now.year}-#{"#{now.month}".rjust(2, "0")}-#{"#{now.day}".rjust(2, "0")} at #{"#{now.hour}".rjust(2, "0")}.#{"#{now.min}".rjust(2, "0")}.#{"#{now.sec}".rjust(2, "0")}"
base_filename = "#{screenshot_path}/Screenshot - #{args.gtk.platform} - #{now_s}"
filename = "#{base_filename}.png"
count = 0
while !args.gtk.stat_file(filename).nil?
count += 1;
filename = "#{base_filename} (#{count}).png"
end
args.outputs.screenshots << {
x: 0, y: 0, w: args.grid.w, h: args.grid.h, # Which portion of the screen should be captured
path: filename, # Output path of PNG file (inside game directory)
# r: 255, g: 255, b: 255, a: 0 # Optional chroma key
}
args.gtk.notify!("Screenshot taken: '#{filename}'")
end
# called every tick of the game loop
def tick(args) end
def tick(args)
screenshot(args) if args.inputs.keyboard.ctrl_p
end
# custom logic to reset this scene
def reset(args) end

View file

@ -5,7 +5,7 @@ module Input
class << self
PRIMARY_KEYS = [:j, :z, :space]
SECONDARY_KEYS = [:k, :x, :backspace]
PAUSE_KEYS = [:escape, :p]
PAUSE_KEYS = [:escape]
BINDINGS = {
primary: {
keyboard: %i[j z space],
@ -16,7 +16,7 @@ module Input
controller_one: %i[b]
},
pause: {
keyboard: %i[escape p],
keyboard: %i[escape],
controller_one: %i[start]
},
rotate_left: {