A complex 2D-dungeon game on LPC1768 in SWJTU-Leeds Joint School XJEL2645 project. Referenced from the framework contributed by https://os.mbed.com/users/Siriagus/code/SimplePlatformGame/

Dependencies:   mbed N5110 ShiftReg PinDetect

Revision:
19:89c3eeb3761b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Music.h	Thu Mar 25 03:43:10 2021 +0000
@@ -0,0 +1,58 @@
+#ifndef MUSIC_H
+#define MUSIC_H
+
+/// @file Music.h
+
+#include "mbed.h"
+#include "Sprites.h"
+// #include "Tone.h"
+
+/// A note is given by its frequency and beat.
+struct Note
+{
+    Note(float f, float b = 1.0) : frequency(f), beat(b) {}
+    float frequency;    /// Frequency of note
+    float beat;         /// Normal beat last for 1 cycle
+};
+
+/// Sound uses a piezo buzzer connect to a PWMOut to output sound
+class Sound
+{
+    public:
+        /* Creates a new sound object.
+         * @param pin The pin of the pwm output the piezo buzzer is connected to.
+        */
+        Sound(PinName buzzerPin);
+        
+        /// Destructor
+        ~Sound(); 
+        
+        /// Plays the given note. @param note The note to be played.
+        void playNote(Note &note);
+        
+    private:
+        void start() {*buzzer = 0.5;}   // Set duty cycle to 50%
+        void stop() {*buzzer = 0.0;}    // Turn off pwm out
+    
+    // Variables
+    private:
+        PwmOut *buzzer; // Piezo buzzer.
+        Timeout ticker; // Used for stopping sound after the given beat.
+};
+
+/// Sound effects. Commonly used notes.
+namespace SFX
+{
+    extern Note PLAYER_DEAD;
+    extern Note ENEMY_DEAD;
+    extern Note BULLET_FIRED;
+    extern Note PLAYER_JUMP;
+    extern Note RESTART;
+}
+
+
+    
+
+
+
+#endif
\ No newline at end of file