Browse Source

:tada: Implement png slide export

DricomDragon 3 months ago
parent
commit
7ca8c53532

+ 13 - 0
godot/addons/slide_show/projector/show/Show.gd

@@ -15,11 +15,16 @@ const VOID_SLIDE_ID := -1
 @export var action_previous_slide := "ui_left"
 @export var action_home_slide := "ui_cancel"
 
+@export_group("Export")
+@export var one_slide_per_frame := true
+
 var current_id := VOID_SLIDE_ID
 var current_slide: Slide
 
 @onready var focus: Focus = $"../Focus"
 @onready var slides: Array = get_children()
+@onready var movie_enabled: bool = OS.has_feature("movie")
+@onready var auto_next_slide: bool = movie_enabled and one_slide_per_frame
 
 
 func _ready() -> void:
@@ -31,9 +36,17 @@ func _ready() -> void:
 
 	_global_slide_setup()
 
+	if auto_next_slide:
+		return
+
 	go_slowly_to_next_slide()
 
 
+func _process(_delta: float) -> void:
+	if auto_next_slide:
+		go_fast_to_next_slide()
+
+
 func go_slowly_to_next_slide() -> void:
 	next_slide(Focus.Transit.SMOOTH)
 

+ 1 - 0
godot/example/example_slide_show.tscn

@@ -7,6 +7,7 @@
 [ext_resource type="PackedScene" uid="uid://bgleyjsx2qhus" path="res://example/slides/3Cool.tscn" id="5_h5p25"]
 
 [node name="ExampleSlideShow" type="Node2D"]
+metadata/movie_file = "../dist/movie/slide.png"
 
 [node name="Focus" type="Camera2D" parent="."]
 script = ExtResource("1_2ck0l")

+ 4 - 0
godot/project.godot

@@ -20,6 +20,10 @@ config/icon="res://icon.svg"
 window/stretch/mode="canvas_items"
 window/stretch/aspect="expand"
 
+[editor]
+
+movie_writer/fps=25
+
 [editor_plugins]
 
 enabled=PackedStringArray("res://addons/slide_show/plugin.cfg")