REM GameLearn002'Lets show the hawk graphics over the background'Demonstaarte clearcolorDEFLNG A-Z 'any variable with a name starting with the letters a throught to z are LONG typesCONST True = -1, False = NOT (True) 'constants for logicVideo& = _NEWIMAGE(640, 480, 32) 'screen 12 size 32bit colorsSCREEN Video& 'make this the surface the user sees on monitorLOCATE 20, 1: PRINT "this line -->SCREEN Video&<-- created this output screen window"_DELAY 1Background& = _LOADIMAGE("Cliffinclouds.bmp") 'create the background pageGraphics& = _LOADIMAGE("Hawk_sprite.bmp") 'create the sprite sheet page_LIMIT 30 '30 frames per secondPRINT "Press a key to see background"Dummy$ = INPUT$(1)_PUTIMAGE , Background&, Video& 'copy the background onto the video pageLOCATE 20, 1: PRINT "this line -->_PUTIMAGE , Background&, Video&<-- showed the bg on monitor"_DELAY 1PRINT "Press a key to see hawk graphics"Dummy$ = INPUT$(1)_PUTIMAGE (100, 100)-(275, 160), Graphics&, Video& 'copy the hawks over the backgroundLOCATE 20, 1: PRINT "this line ->_PUTIMAGE (100, 100)-(275, 160), Graphics&, Video&<- showed the hawks on monitor"_DELAY 1PRINT "Press a key to see hawk graphics with clearcolor"Dummy$ = INPUT$(1)_PUTIMAGE , Background&, Video& 'copy the background onto the video page_CLEARCOLOR 0, Graphics& 'set clearcolor to black(background color on hawk sprite page)_PUTIMAGE (100, 100)-(275, 160), Graphics&, Video& 'copy the hawks over the backgroundLOCATE 20, 1PRINT "this line ->_PUTIMAGE , Background&, Video&<- showed the bg on monitor"PRINT "This line ->_CLEARCOLOR 0, Graphics&<- declared the clearcolor is 0(zero) on Graphics page"PRINT "this lines ->_PUTIMAGE (100, 100)-(275, 160), Graphics&, Video&<- showed the hawks on monitor"_DELAY 1PRINT "Press a key to EXIT"SLEEPSYSTEM
REM GameLearn003'Demonstartes creating image surfaces,loading graphics to those pages'Create a game loop and shows the background'Show hawk animationDEFLNG A-Z 'any variable with a name starting with the letters a throught to z are LONG typesCONST True = -1, False = NOT (True) 'constants for logicVideo& = _NEWIMAGE(640, 480, 32) 'screen 12 size 32bit colorsSCREEN Video& 'make this the surface the user sees on monitorBackground& = _LOADIMAGE("Cliffinclouds.bmp") 'create the background pageGraphics& = _LOADIMAGE("Hawk_sprite.bmp") 'create the sprite sheet pagecycle = 0 'variable to indicate the frame of hawk graphic to useDO cycle = cycle + 1 'increment cycle variable IF cycle >= 3 THEN cycle = 1 'cycle is 1 or 2 , used to indicate which frame of hawk to show _LIMIT 30 '30 frames per second _PUTIMAGE , Background&, Video& 'copy the background onto the video page clearing the screen _CLEARCOLOR 0, Graphics& 'set clearcolor to black(background color on hawk sprite page) SELECT CASE cycle 'logic branch based on what cycle is CASE 1 _PUTIMAGE (100, 100)-(187, 159), Graphics&, Video&, (0, 0)-(87, 59) 'copy the hawks over the background CASE 2 _PUTIMAGE (100, 100)-(187, 159), Graphics&, Video&, (88, 0)-(174, 59) 'copy the hawks over the background END SELECT LOCATE 20, 1: PRINT " The hawk animation is achieved by showing each frame one after another" PRINT "_putimage(DESTINATION co-ords),SourcePage,DestinationPage,(SOURCE co-ords)" PRINT "The destination co-ords stay the same =(100, 100)-(187, 159) " PRINT "The source co-ords change,Frame1=(0, 0)-(87, 59),Frame2=(88, 0)-(174, 59) " _DISPLAY 'update the monitorLOOP UNTIL _KEYDOWN(27) 'escape key to exitSLEEPSYSTEM
REM GameLearn004'Demonstartes creating image surfaces,loading graphics to those pages'Create a game loop and shows the background'Show hawk animation, create master hawk X and Y for screen placementDEFLNG A-Z 'any variable with a name starting with the letters a throught to z are LONG typesCONST True = -1, False = NOT (True) 'constants for logicVideo& = _NEWIMAGE(640, 480, 32) 'screen 12 size 32bit colorsSCREEN Video& 'make this the surface the user sees on monitorBackground& = _LOADIMAGE("Cliffinclouds.bmp") 'create the background pageGraphics& = _LOADIMAGE("Hawk_sprite.bmp") 'create the sprite sheet pagecycle = 0 'variable to indicate the frame of hawk graphic to usehX = 100: hY = 100DO cycle = cycle + 1 'increment cycle variable IF cycle >= 3 THEN cycle = 1 'cycle is 1 or 2 , used to indicate which frame of hawk to show _LIMIT 30 '30 frames per second _PUTIMAGE , Background&, Video& 'copy the background onto the video page clearing the screen _CLEARCOLOR 0, Graphics& 'set clearcolor to black(background color on hawk sprite page) SELECT CASE cycle 'logic branch based on what cycle is CASE 1 _PUTIMAGE (hX, hY), Graphics&, Video&, (0, 0)-(87, 59) 'copy the hawks over the background CASE 2 _PUTIMAGE (hX, hY), Graphics&, Video&, (88, 0)-(174, 59) 'copy the hawks over the background END SELECT LOCATE 20, 1: PRINT " Note the hawk DESTINATION co-ords are (hX, hY)" PRINT "_putimage (hX, hY),SourcePage,DestinationPage,(SOURCE co-ords)" PRINT "The source co-ords change,Frame1=(0, 0)-(87, 59),Frame2=(88, 0)-(174, 59) " _DISPLAY 'update the monitorLOOP UNTIL _KEYDOWN(27) 'escape key to exitSLEEPSYSTEM
REM GameLearn005'Demonstartes creating image surfaces,loading graphics to those pages'Create a game loop and shows the background'Show hawk animation, create master hawk X and Y for screen placement'Create a sub to move the hawk horizontallyDEFLNG A-Z 'any variable with a name starting with the letters a throught to z are LONG typesCONST True = -1, False = NOT (True) 'constants for logicVideo& = _NEWIMAGE(640, 480, 32) 'screen 12 size 32bit colorsSCREEN Video& 'make this the surface the user sees on monitorBackground& = _LOADIMAGE("Cliffinclouds.bmp") 'create the background pageGraphics& = _LOADIMAGE("Hawk_sprite.bmp") 'create the sprite sheet pagecycle = 0 'variable to indicate the frame of hawk graphic to usehX = 100: hY = 100: hdir = 1 'hdir =hawk direction 1=east , -1=westDO cycle = cycle + 1 'increment cycle variable IF cycle >= 3 THEN cycle = 1 'cycle is 1 or 2 , used to indicate which frame of hawk to show hX = hX + hdir 'increment the X every cycle IF hX >= 630 THEN hX = 630: hdir = -1 'test collision with right side, toggle hdir to minus IF hX <= 10 THEN hX = 10: hdir = 1 'test collision with left side, toggle hdir to plus _LIMIT 30 '30 frames per second _PUTIMAGE , Background&, Video& 'copy the background onto the video page clearing the screen _CLEARCOLOR 0, Graphics& 'set clearcolor to black(background color on hawk sprite page) SELECT CASE cycle 'logic branch based on what cycle is CASE 1 _PUTIMAGE (hX, hY), Graphics&, Video&, (0, 0)-(87, 59) 'copy the hawks over the background CASE 2 _PUTIMAGE (hX, hY), Graphics&, Video&, (88, 0)-(174, 59) 'copy the hawks over the background END SELECT LOCATE 20, 1: PRINT " Note the hawk DESTINATION co-ords are (hX, hY) and hdir="; hdir PRINT "_putimage ("; hX; ","; hY; "),SourcePage,DestinationPage,(SOURCE co-ords)" PRINT "The source co-ords change,Frame1=(0, 0)-(87, 59),Frame2=(88, 0)-(174, 59) " _DISPLAY 'update the monitorLOOP UNTIL _KEYDOWN(27) 'escape key to exitSLEEPSYSTEM
REM GameLearn006'Demonstartes creating image surfaces,loading graphics to those pages'Create a game loop and shows the background'Show hawk animation, create master hawk X and Y for screen placement'Create a sub to move the hawk horizontally'Create a sub to move the hawk verticallyDEFLNG A-Z 'any variable with a name starting with the letters a throught to z are LONG typesCONST True = -1, False = NOT (True) 'constants for logicVideo& = _NEWIMAGE(640, 480, 32) 'screen 12 size 32bit colorsSCREEN Video& 'make this the surface the user sees on monitorBackground& = _LOADIMAGE("Cliffinclouds.bmp") 'create the background pageGraphics& = _LOADIMAGE("Hawk_sprite.bmp") 'create the sprite sheet pagecycle = 0 'variable to indicate the frame of hawk graphic to usehX = 100: hY = 100hhdir = 1 'hhdir =hawk direction 1=east , -1=westhvdir = 1 'hvdir =hawk direction 1=down , -1=upDO cycle = cycle + 1 'increment cycle variable IF cycle >= 3 THEN cycle = 1 'cycle is 1 or 2 , used to indicate which frame of hawk to show GOSUB MoveHawk _LIMIT 30 '30 frames per second _PUTIMAGE , Background&, Video& 'copy the background onto the video page clearing the screen _CLEARCOLOR 0, Graphics& 'set clearcolor to black(background color on hawk sprite page) SELECT CASE cycle 'logic branch based on what cycle is CASE 1 _PUTIMAGE (hX, hY), Graphics&, Video&, (0, 0)-(87, 59) 'copy the hawks over the background CASE 2 _PUTIMAGE (hX, hY), Graphics&, Video&, (88, 0)-(174, 59) 'copy the hawks over the background END SELECT LOCATE 20, 1: PRINT " Note the hawk DESTINATION co-ords are (hX, hY) and hhdir="; hhdir; "hvdir="; hvdir PRINT "_putimage ("; hX; ","; hY; "),SourcePage,DestinationPage,(SOURCE co-ords)" PRINT "The source co-ords change,Frame1=(0, 0)-(87, 59),Frame2=(88, 0)-(174, 59) " _DISPLAY 'update the monitorLOOP UNTIL _KEYDOWN(27) 'escape key to exitSLEEPSYSTEMMoveHawk:hX = hX + hhdir 'increment the X every cycleIF hX >= 630 THEN hX = 630: hhdir = -1 'test collision with right side, toggle hhdir to minusIF hX <= 10 THEN hX = 10: hhdir = 1 'test collision with left side, toggle hhdir to plushY = hY + hvdirIF hY >= 470 THEN hY = 470: hvdir = -1IF hY <= 10 THEN hY = 10: hvdir = 1RETURN
REM GameLearn007'Demonstartes creating image surfaces,loading graphics to those pages'Create a game loop and shows the background'Show hawk animation, create master hawk X and Y for screen placement'create a sub to move hawk horizontally and vertically with the arrow keysDEFLNG A-Z 'any variable with a name starting with the letters a throught to z are LONG typesCONST True = -1, False = NOT (True) 'constants for logicVideo& = _NEWIMAGE(640, 480, 32) 'screen 12 size 32bit colorsSCREEN Video& 'make this the surface the user sees on monitorBackground& = _LOADIMAGE("Cliffinclouds.bmp") 'create the background pageGraphics& = _LOADIMAGE("Hawk_sprite.bmp") 'create the sprite sheet pagecycle = 0 'variable to indicate the frame of hawk graphic to usehX = 100: hY = 100hhdir = 1 'hhdir =hawk direction 1=east , -1=westhvdir = 1 'hvdir =hawk direction 1=down , -1=upDO cycle = cycle + 1 'increment cycle variable IF cycle >= 3 THEN cycle = 1 'cycle is 1 or 2 , used to indicate which frame of hawk to show GOSUB Getkey GOSUB MoveHawk _LIMIT 30 '30 frames per second _PUTIMAGE , Background&, Video& 'copy the background onto the video page clearing the screen _CLEARCOLOR 0, Graphics& 'set clearcolor to black(background color on hawk sprite page) SELECT CASE cycle 'logic branch based on what cycle is CASE 1 _PUTIMAGE (hX, hY), Graphics&, Video&, (0, 0)-(87, 59) 'copy the hawks over the background CASE 2 _PUTIMAGE (hX, hY), Graphics&, Video&, (88, 0)-(174, 59) 'copy the hawks over the background END SELECT LOCATE 20, 1: PRINT "Use arrow keys to move HAWK" PRINT " Note the hawk DESTINATION co-ords are (hX, hY) and hhdir="; hhdir; "hvdir="; hvdir PRINT "_putimage ("; hX; ","; hY; "),SourcePage,DestinationPage,(SOURCE co-ords)" PRINT "The source co-ords change,Frame1=(0, 0)-(87, 59),Frame2=(88, 0)-(174, 59) " _DISPLAY 'update the monitorLOOP UNTIL _KEYDOWN(27) 'escape key to exitSLEEPSYSTEMMoveHawk:'Horizontal (L and R)collision testsIF hX >= 630 THEN hX = 630: hhdir = -1 'test collision with right side, toggle hhdir to minusIF hX <= 10 THEN hX = 10: hhdir = 1 'test collision with left side, toggle hhdir to plus'Vertical (U and D)collision testsIF hY >= 470 THEN hY = 470: hvdir = -1IF hY <= 10 THEN hY = 10: hvdir = 1RETURNGetkey:'Arrow keysIF _KEYDOWN(20480) THEN hY = hY + 1 'down arrow key so add 1IF _KEYDOWN(18432) THEN hY = hY - 1 'up arrow key so minus 1IF _KEYDOWN(19200) THEN hX = hX - 1 'left arrow key so minus 1IF _KEYDOWN(19712) THEN hX = hX + 1 'right arrow key so add 1IF _KEYDOWN(32) THEN Wantacapture = True 'spacebarIF _KEYDOWN(100305) THEN Wantarelease = True 'right control buttonRETURN
REM GameLearn008'Demonstartes creating image surfaces,loading graphics to those pages'Create a game loop and shows the background'Show hawk animation, create master hawk X and Y for screen placement'create a sub to move hawk horizontally and vertically with the arrow keys'Create a YELLOW OBJECT that hawk can capture'Create a PINK BOUNDARY BOX below hawks claws'Make sound when boxes intersect!!DEFLNG A-Z 'any variable with a name starting with the letters a throught to z are LONG typesCONST True = -1, False = NOT (True) 'constants for logicVideo& = _NEWIMAGE(640, 480, 32) 'screen 12 size 32bit colorsSCREEN Video& 'make this the surface the user sees on monitorBackground& = _LOADIMAGE("Cliffinclouds.bmp") 'create the background pageGraphics& = _LOADIMAGE("Hawk_sprite.bmp") 'create the sprite sheet pageYellow& = _RGB32(255, 255, 0) 'the 32 bit yellow colorPink& = _RGB32(255, 0, 255)cycle = 0 'variable to indicate the frame of hawk graphic to usehX = 100: hY = 100hhdir = 1 'hhdir =hawk direction 1=east , -1=westhvdir = 1 'hvdir =hawk direction 1=down , -1=upObject = 1 'object at rest =1,captured =2,released and falling =3Showbox = True: Captured = FalseDO cycle = cycle + 1 'increment cycle variable IF cycle >= 3 THEN cycle = 1 'cycle is 1 or 2 , used to indicate which frame of hawk to show GOSUB Getkey GOSUB MoveHawk _LIMIT 30 '30 frames per second _PUTIMAGE , Background&, Video& 'copy the background onto the video page clearing the screen _CLEARCOLOR 0, Graphics& 'set clearcolor to black(background color on hawk sprite page) SELECT CASE cycle 'logic branch based on what cycle is CASE 1 _PUTIMAGE (hX, hY), Graphics&, Video&, (0, 0)-(87, 59) 'copy the hawks over the background CASE 2 _PUTIMAGE (hX, hY), Graphics&, Video&, (88, 0)-(174, 59) 'copy the hawks over the background END SELECT LOCATE 20, 1: PRINT "Use arrow keys to move HAWK" PRINT " Note the hawk DESTINATION co-ords are (hX, hY) and hhdir="; hhdir; "hvdir="; hvdir PRINT "_putimage ("; hX; ","; hY; "),SourcePage,DestinationPage,(SOURCE co-ords)" PRINT "The source co-ords change,Frame1=(0, 0)-(87, 59),Frame2=(88, 0)-(174, 59) " PRINT chx1, chx2, chy1, chY2, "Yellow circle disappears if bunny captured!" IF Showbox = True THEN GOSUB HawkBoundaryBox GOSUB Hawkcollision IF Captured = False THEN CIRCLE (320, 470), 5, Yellow& CIRCLE (320, 470), 4, Yellow& END IF _DISPLAY 'update the monitorLOOP UNTIL _KEYDOWN(27) 'escape key to exitSLEEPSYSTEMMoveHawk:'Horizontal (L and R)collision testsIF hX >= 630 THEN hX = 630: hhdir = -1 'test collision with right side, toggle hhdir to minusIF hX <= 10 THEN hX = 10: hhdir = 1 'test collision with left side, toggle hhdir to plus'Vertical (U and D)collision testsIF hY >= 470 THEN hY = 470: hvdir = -1IF hY <= 10 THEN hY = 10: hvdir = 1RETURNGetkey:'Arrow keysIF _KEYDOWN(20480) THEN hY = hY + 1 'down arrow key so add 1IF _KEYDOWN(18432) THEN hY = hY - 1 'up arrow key so minus 1IF _KEYDOWN(19200) THEN hX = hX - 1 'left arrow key so minus 1IF _KEYDOWN(19712) THEN hX = hX + 1 'right arrow key so add 1IF _KEYDOWN(32) THEN Wantacapture = True 'spacebarIF _KEYDOWN(100305) THEN Wantarelease = True 'right control buttonRETURNHawkBoundaryBox:chx1 = hX + 38: chx2 = hX + 58: chy1 = hY + 44: chY2 = hY + 48 'used to monitor onscreenLINE (hX + 38, hY + 44)-(hX + 58, hY + 52), Pink&, B 'hawks boundary box of his claws'LINE (bx - 5, 395)-(bx + 5, 405), ORed&, BRETURNHawkcollision:IF hX + 38 >= 306 AND hX + 58 <= 334 THEN 'this is 14 before and 14 after centre of circle on x axis 'SOUND 2000, 1 IF hY + 44 >= 462 AND hY + 48 <= 470 THEN 'this is 8 before and up to the centre of circle SOUND 3000, 1 'check if capture key is down 'if so then register captured variable as TRUE Captured = True 'next assign circle x and y as some offset of hX and hY figures 'this way circle can be drawn under hawks feet even if hawk moves! END IFEND IFRETURN