compsci_godot_albert/_subsections/sec03/lesson-16.org
2025-07-17 01:33:06 +03:00

93 lines
3.3 KiB
Org Mode
Executable file
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#+title: Section 03 - Lesson 16, 17 | Game Over, Sound End Game
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../../_share/media/css/godot.css" />
* Links
- [[../../toc.org][TOC - Godot Notes]]
- [[https://www.udemy.com/course/jumpstart-to-2d-game-development-godot-4-for-beginners/learn/lecture/45070491#announcements][S03:L27.16 - Game Over]]
- [[https://www.udemy.com/course/jumpstart-to-2d-game-development-godot-4-for-beginners/learn/lecture/45070493#announcements][S03:L28.17 - Sound / End of Game]]
* Notes
** stopping the game
1. create a function that handles all cleanup
1. stop the timer
- drag + CMD and drop Timer to create a reference
- timer.stop
2. set all node children process to false
- Node function =get_children= will get them all3
- iterate through them and =set_process(false)=
** sound
*** import pane
- the scene panel on the upper left has an Import pane
#+ATTR_HTML: :width 600px
file:../../_share/media/img/albert/section03/S03_L16_E01.png
- this allows you to see details of items in the filesystem
#+ATTR_HTML: :width 400px
file:../../_share/media/img/albert/section03/S03_L16_E03.png
*** changing details of imported items
1. make whatever changes you want, e.g. turn on "Loop"
2. then click the Reimport button
#+ATTR_HTML: :width 400px
file:../../_share/media/img/albert/section03/S03_L16_E04.png
*** audio nodes
- Node->Node2D->AudioListener2D
- overrides location sounds are heard from
- Node->Node2D->AudioStreamPlayer2D
- plays positionnal sound in 2D space
- Node->AudioStreamPlayer
- simple audio player
- Playing: plays in the *GAME EDITOR*
- Autoplay: plays as soon as it is loaded into the scene tree
*** create background music
- add new Audio node to the scene panel on the Game scene
- use AudioStreamPlayer bc we don't care about position
- drag the audio file into Audio node->Inspector->AudioStreamPLayer->Stream
#+ATTR_HTML: :width 600px
file:../../_share/media/img/albert/section03/S03_L16_E05.png
- you'll be able to see it when it's loaded
#+ATTR_HTML: :width 600px
file:../../_share/media/img/albert/section03/S03_L16_E06.png
- set Autoplay to "ON"
*** add effects
- use AudioStreamPlayer2D bc it has positioning
- CMD+drag the AudioStreamPlayer2D node to the game.gd script so we can play it
- call the effect when something happens (e.g. a gem hits the panel)
- find the position of where the even happens "area.position"
#+BEGIN_SRC gdscript
audio_stream_player_2d.position = area.position
audio_stream_player_2d.play()
#+END_SRC
*** add game over sound
- first make sure no other sound such as effects sounds are playing.
- call "stop()" on all such nodes
#+BEGIN_SRC gdscript
audio_stream_player_2d.stop()
#+END_SRC
- load the game over sounds using "preload"
- CMD+drag the sound file from the filesystem to the game.gd script
- godot will automatically create a constant with the file name
- godot will also set that file to "preload" with the appropriate file path
- set the =stream= property of =audio_stream_player_2d= to the preloaded sound and play it
#+BEGIN_SRC gdscript
audio_stream_player_2d.stream = EXPLODE
audio_stream_player_2d.play()
#+END_SRC
- put all this into a function and add it to the game_over function