//TUTORIAL 2 PART 3 //DEFINE VARIABLES Global KEYPRESS$, HIT, DANCING //DEFINE PROCEDURES DefProc INIT_DISPLAY() DefProc CREATE_SPRITES() DefProc LOAD_MUSIC() DefProc MOUSE_POINTER() //---- START MAIN CODE ---- //CALL THE PROCEDURE TO CREATE THE SCREEN INIT_DISPLAY() //CALL THE PROCEDURE TO CREATE THE SPRITES CREATE_SPRITES() //CALL THE PROCEDURE TO LOAD THE MUSIC LOAD_MUSIC() //CALL THE PROCEDURE TO CREATE THE MOUSE POINTER MOUSE_POINTER() DANCING = 0 //START LOOP - THIS LOOP WILL REPEAT UNTIL A KEY IS PRESSED Repeat HIT = SpriteCollide(3) //CHECK FOR A COLLISION WITH SPRITE 3 (THE DANCE BUTTON) If HIT > 0 Then //IF A COLLIDE HAS OCCURRED... Set Sprite Sequence 3 To Bank 9 //CHANGE THE BUTTON TO THE LIT IMAGE If MouseButton(1) Then //HAS THE LEFT MOUSE BUTTON BEEN PRESSED AS WELL? If DANCING = 0 Then //IF THE BABY IS NOT DANCING... SynthCommand(MIDI_Play) //PLAY THE LOADED MIDI FILE Sprite Animate 1 On //ANIMATE THE BABY DANCING = 1 Delay(200) // CREATE A SMALL DELAY SO THAT ONLY 1 MOUSE CLICK IS REGISTERED Else SynthCommand(MIDI_Stop) //STOP THE LOADED MIDI FILE Sprite Animate 1 Off //TURN OFF THE ANIMATION DANCING = 0 Delay(200) // CREATE A SMALL DELAY SO THAT ONLY 1 MOUSE CLICK IS REGISTERED EndIf EndIf Else Set Sprite Sequence 3 To Bank 7 //IF THE MOUSE IS NOT ON THE BUTTON THEN CHANGE THE IMAGE TO UNLIT ONE EndIf KEYPRESS$ = Inkey$() Update Display Until KEYPRESS$ > "" //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 //CHANGE THE TRANSPARENCY OF THE SPRITES TO AN UNUSED OR BACKGROUND COLOUR Set Bitmap 2 Transparency To 0,0,255 Set Bitmap 4 Transparency To 0,0,255 Set Bitmap 6 Transparency To 0,0,255 Set Bitmap 8 Transparency To 0,0,255 EndProc //THIS PROCEDURE WILL CREATE THE SPRITE Procedure CREATE_SPRITES() Create Sprite 1,256,176 Using Bank 3 //CREATE SPRITE #1 AT 256,176 USING THE SEQUENCE IN BANK 3 Create Sprite 2,100,100 Using Bank 5 Create Sprite 3,10,215 Using Bank 7 Sprite On 1 //ENABLE THE SPRITES Sprite On 2 Sprite On 3 Sprites On //NOW TURN ON THE SPRITE SYSTEM Sprite Animate 1 Off //TURN OFF ANIMATION ON SPRITE 1 EndProc //LOAD MIDI MUSIC Procedure LOAD_MUSIC() SynthLoad("music.mid") //LOAD THE MID FILE INTO MEMORY EndProc //CREATE MOUSE POINTER Procedure MOUSE_POINTER() Set Mouse Pointer To Sprite 2 //CHANGE THE DEFAULT POINTER TO THE SPRITE Mouse Show //TURN ON THE MOUSE (BY DEFAULT IT IS TURNED OFF) EndProc EndProg