diff --git a/_subsections/sec03/lesson-13.org b/_subsections/sec03/lesson-13.org index 85e1422..c296acb 100644 --- a/_subsections/sec03/lesson-13.org +++ b/_subsections/sec03/lesson-13.org @@ -1,9 +1,70 @@ #+HTML_HEAD: #+HTML_HEAD: -#+title: Section 03 - Lesson 13 | Spawn Timer +#+title: Section 03 - Lesson 13, 14 | Spawn Timer, Spawning gems * Links - [[../../toc.org][TOC - Godot Notes]] -- [[https://www.udemy.com/course/jumpstart-to-2d-game-development-godot-4-for-beginners/learn/lecture/45070483#announcements][S03:L22.13 - Spawn Timer]] +- [[https://www.udemy.com/course/jumpstart-to-2d-game-development-godot-4-for-beginners/learn/lecture/45070483#announcements][S03:L24.13 - Spawn Timer]] +- [[https://www.udemy.com/course/jumpstart-to-2d-game-development-godot-4-for-beginners/learn/lecture/45070485#announcements][S03:L25.14 - Spawning Gems]] * Notes + +** removing connected nodes +- nodes that are connected must be disconnected before deletion +- otherwise strange things happen + +** Timing +- add a child node +- search for Timer + +*** properties +- autostart: whether it starts as soon as scene is ready in tree +- one shot: time once and stop +- wait time: the actual time it goes + +*** signals +- timeout + - got to Inspector->Node + - timeout emits a signal when the wait time hits zero + +** Spawning Gems + +Put the following in the script that you want to create nodes in based on a scene: + +#+BEGIN_SRC gdscript +@export var gem_scene: PackedScene +#+END_SRC + +*** terms +- =@export= + - makes the variable accessible and modifiable from the Godot editor + - allows assigning variables through the interface + + #+ATTR_HTML: :width 300px + [[file:../../../_share/media/albert/img/section03/S03_L15_EX01.png]] + +- =PackedScene= + - resource that holds a scene in a packed, ready to load state + +*** what it does +allows us to create instances of the scene + +- drag a scene into the property in the inspector +- call instance + +#+BEGIN_SRC gdscript +func spawn_gem() -> void: + var gem_instance = gem_scene.instance() + add_child(gem_instance) +#+END_SRC + +** how to explicitly assign the type of a custom script +- in the script near the top type in + #+BEGIN_SRC gdscript + class_name CustomName + #+END_SRC + +- then override on assigning the value + #+BEGIN_SRC gdscript + var new_gem: CustomName = gem_scene.instantiate() + #+END_SRC diff --git a/toc.org b/toc.org index 394c89f..9e26e9c 100644 --- a/toc.org +++ b/toc.org @@ -19,4 +19,4 @@ https://www.udemy.com/course/jumpstart-to-2d-game-development-godot-4-for-beginn *** [[./_subsections/sec03/lesson-07.org][Lesson 07, 08 | Moving the Gem, Removing the Gem]] *** [[./_subsections/sec03/lesson-09.org][Lesson 09 | Export Annotation]] *** [[./_subsections/sec03/lesson-11.org][Lesson 11, 12 | Signals, Custom Signals]] -*** [[./_subsections/sec03/lesson-13.org][Lesson 13 | Spawn Timer]] +*** [[./_subsections/sec03/lesson-13.org][Lesson 13, 14 | Spawn Timer, Spawning items]]