Tutorial 1 Part 4

Now its time to add some sound to our project!

  • You may use your own WAV file or download this one: footsteps.wav (8KB) (Right-click and select "Save Target As").

  • Add the WAV file to the bank by right clicking in the bank window and selecting "Create New Sound". Select the WAV file and click "Accept". It should be in bank 4.

    Add a sound to the banks


  • We now add the code for playing the sound sample in the repeating loop; for when the left cursor is pressed and for when the right cursor is pressed (Play Sample Using Bank 4).

  • We need to make sure that the sample only plays if it is not already playing, so enclose the statement with code that checks the status of the sample (If Not SamplePlaying(4) Then : EndIf)

    Your code should now look like this :

    NOTE: If you do not wish to type the code below you may download or open this text file and simply copy and paste the code into your project.


    //TUTORIAL 1 PART 4

    //DEFINE VARIABLES

    Global KEYPRESS$, SPRITE_X, FRAME_NUM

    //DEFINE PROCEDURES
    DefProc INIT_DISPLAY()
    DefProc CREATE_SPRITES()

    //---- START MAIN CODE ----

    //CALL THE PROCEDURE TO CREATE THE SCREEN

    INIT_DISPLAY()

    FRAME_NUM = 1 //START WITH FRAME ONE
    Sprite Animate 1 Off //TURN OFF ANIMATION SO THAT WE CAN MANUALLY ANIMATE THE SPRITE
    SPRITE_X = 288 //START THE SPRITE IN THE MIDDLE OF THE SCREEN

    //START LOOP - THIS LOOP WILL REPEAT UNTIL A KEY IS PRESSED
    Repeat

      If CursorLeft() Then //HAS THE LEFT CURSOR BEEN PRESSED?

        SetSequenceFrame(1,FRAME_NUM) //GO TO THE PREVIOUS FRAME IN THE ANIMATION
        FRAME_NUM = FRAME_NUM - 1 //DECREMENT THE FRAME_NUM VARIABLE

        If FRAME_NUM < 1 Then //HAS THE SEQUENCE REACHED THE START?
          FRAME_NUM = 30 //IF IT HAS THEN GO BACK TO THE END
        EndIf

        Sprite Move 1,SPRITE_X,208 //MOVE SPRITE #1 TO THESE CO-ORDS
        SPRITE_X = SPRITE_X - 1 //DECREMENT SPRITE_X

        If SPRITE_X = -64 Then //IS THE SPRITE AT THE END OF THE SCREEN?
          SPRITE_X = 640 //IF SO, THEN MOVE SPRITE TO JUST OFF THE RIGHT SIDE
        EndIf

        If Not SamplePlaying(4) Then //IF THE SAMPLE IS NOT ALREADY PLAYING...
          Play Sample Using Bank 4 //PLAY SAMPLE IN BANK 4
        EndIf


      EndIf

      If CursorRight() Then //HAS THE RIGHT CURSOR BEEN PRESSED?

        SetSequenceFrame(1,FRAME_NUM) //GO TO THE NEXT FRAME IN THE ANIMATION
        FRAME_NUM = FRAME_NUM + 1 //INCREMENT THE FRAME_NUM VARIABLE

        If FRAME_NUM > 30 Then //HAS THE SEQUENCE REACHED THE END?
          FRAME_NUM = 0 //IF IT HAS THEN GO BACK TO THE START
        EndIf

        Sprite Move 1,SPRITE_X,208 //MOVE SPRITE #1 TO THESE CO-ORDS
        SPRITE_X = SPRITE_X + 1 //INCREMENT SPRITE_X

        If SPRITE_X = 640 Then //IS THE SPRITE AT THE END OF THE SCREEN?
          SPRITE_X = -64 //IF SO, THEN MOVE SPRITE TO JUST OFF THE LEFT SIDE
        EndIf

        If Not SamplePlaying(4) Then //IF THE SAMPLE IS NOT ALREADY PLAYING...
          Play Sample Using Bank 4 //PLAY SAMPLE IN BANK 4
        EndIf


      EndIf

      KEYPRESS$ = Inkey$()
      Update Display

    Until KEYPRESS$ = "q"

    //THE INIT_DISPLAY PROCEDURE CREATES A SCREEN AND A PLANE
    Procedure INIT_DISPLAY()

      Create Map 640,480,1,1 In Bank 50 //CREATE A MAP IN BANK 50
      Set Tile 0,0,1 Using Bank 50 //CREATE A TILE USING A BACKGROUND IMAGE IN BANK 1
      Create Plane 1 Using Bank 50 //CREATE PLANE 1 USING THE MAP IN BANK 50
      //SET WHITE TO BE TRANSPARENT INSTEAD OF DEFAULT BLACK AS OUR SPRITE CONTAINS BLACK PIXELS
      Set Bitmap 2 Transparency To 255,255,255

    EndProc

    //THIS PROCEDURE WILL CREATE THE SPRITE
    Procedure CREATE_SPRITES()

      Create Sprite 1,288,208 Using Bank 3 //CREATE SPRITE #1 AT 288,208 USING THE SEQUENCE IN BANK 3
      Sprite On 1 //ENABLE THE SPRITE
      Sprites On //NOW TURN ON THE SPRITE SYSTEM

    EndProc

    EndProg

  • You should now hear footsteps when the man moves.

    Previous Page