REMDEFLNG A-ZCONST True = -1, False = NOT (True)SCREEN 12WorkPage& = _LOADIMAGE("Hawk_sprite.bmp") 'create the sprite sheet page_COPYPALETTE WorkPage&, 0FrameNum& = 0: x1 = 100: y1 = 100: direction = 1: flap = 0: Active=0:ShowBox= True: Captured = False DO _DISPLAY _LIMIT 20 GOSUB Getkey CLS 'need to clear the page ready for new image GOSUB Showframe IF Captured = False THEN GOSUB Showbunny GOSUB Collision ELSE bx = x1 + 50: by = y1 + 54 CIRCLE (bx, by), 5, 14 END IF LOCATE 29, 1: PRINT bx, hx1, hy1, rx1, rx2 ' "Press Scroll Lock to show boundary box"LOOP UNTIL INP(&H60) = 1SLEEPSYSTEMGetkey:IF _KEYDOWN(20480) THEN y1 = y1 + 4IF _KEYDOWN(18432) THEN y1 = y1 - 4IF _KEYDOWN(19200) THEN x1 = x1 - 4: direction = 2END IFIF _KEYDOWN(19712) THEN x1 = x1 + 4: direction = 1END IFIF _KEYDOWN(100302) THEN ShowBox = NOT ShowBox 'Scroll Lock key _DELAY .05END IFRETURNShowframe:SELECT CASE FrameNum& CASE 0 IF direction = 1 THEN _PUTIMAGE (x1, y1)-(x1 + 89, y1 + 67), WorkPage&, 0, (1, 1)-(89, 67) ELSE _PUTIMAGE (x1, y1)-(x1 + 89, y1 + 67), WorkPage&, 0, (89, 1)-(1, 67) END IF CASE 1 IF direction = 1 THEN _PUTIMAGE (x1, y1)-(x1 + 89, y1 + 67), WorkPage&, 0, (91, 0)-(187, 67) ELSE _PUTIMAGE (x1, y1)-(x1 + 89, y1 + 67), WorkPage&, 0, (187, 0)-(91, 67) END IFEND SELECTflap = flap + 1IF flap = 3 THEN flap = 0 FrameNum& = FrameNum& + 1END IFIF FrameNum& = 2 THEN FrameNum& = 0RETURNMakchance:chance = INT(RND * 10) + 1RETURNMovbunny:dir = INT(RND * 2) + 1IF dir = 1 THEN dir = 4: x = -10ELSE dir = -4: x = 650END IFRETURNShowbunny:IF Active = 1 THEN bx = bx + dir CIRCLE (bx, 400), 5, 14 IF bx <= 0 OR bx >= 640 THEN Active = 0: CLS END IFELSE GOSUB Makchance IF chance = 9 THEN Active = 1 GOSUB Movbunny END IFEND IFRETURNCollision:hx1 = x1 + 42: hx2 = x1 + 58 'horizontal co-ord of hawk feethy1 = y1 + 46: hy2 = hy1 + 10 'vertical co-ord of hawk feetrx1 = bx - 4: rx2 = rx1 + 12 'rabbit right + left side co-ordsIF ShowBox = True THEN LINE (hx1, hy1)-(hx2, hy2 + 10), 5, BEND IFIF hy1 >= 394 AND hy2 <= 404 THEN IF hx1 >= rx1 AND hx1 <= rx2 THEN IF Captured = False THEN Captured = True SOUND 2500, 1 END IF END IFEND IFRETURN
'GARRYHAWK10.BASREMDEFLNG A-ZCONST True = -1, False = NOT (True)SCREEN 12Background& = _LOADIMAGE("abackground.bmp") 'create the background pageWorkPage& = _LOADIMAGE("Hawk_sprite.bmp") 'create the sprite sheet page_COPYPALETTE WorkPage&, 0FrameNum& = 0: x1 = 100: y1 = 100: direction = 1: flap = 0: Active = 0: ShowBox = True: Captured = FalseDO _DISPLAY _LIMIT 20 GOSUB Getkey _PUTIMAGE , Background&, 0 GOSUB Showframe IF Captured = False THEN GOSUB Showbunny GOSUB Collision ELSE bx = x1 + 50: by = y1 + 54 CIRCLE (bx, by), 5, 14 END IF LOCATE 29, 1: PRINT bx, hx1, hy1, rx1, rx2LOOP UNTIL INP(&H60) = 1SLEEPSYSTEMGetkey:IF _KEYDOWN(20480) THEN y1 = y1 + 4IF _KEYDOWN(18432) THEN y1 = y1 - 4IF _KEYDOWN(19200) THEN x1 = x1 - 4: direction = 2END IFIF _KEYDOWN(19712) THEN x1 = x1 + 4: direction = 1END IFRETURNShowframe:SELECT CASE FrameNum& _CLEARCOLOR 0, WorkPage& CASE 0 IF direction = 1 THEN _PUTIMAGE (x1, y1)-(x1 + 89, y1 + 67), WorkPage&, 0, (1, 1)-(89, 67) ELSE _PUTIMAGE (x1, y1)-(x1 + 89, y1 + 67), WorkPage&, 0, (89, 1)-(1, 67) END IF CASE 1 IF direction = 1 THEN _PUTIMAGE (x1, y1)-(x1 + 89, y1 + 67), WorkPage&, 0, (91, 0)-(187, 67) ELSE _PUTIMAGE (x1, y1)-(x1 + 89, y1 + 67), WorkPage&, 0, (187, 0)-(91, 67) END IFEND SELECTflap = flap + 1IF flap = 3 THEN flap = 0 FrameNum& = FrameNum& + 1END IFIF FrameNum& = 2 THEN FrameNum& = 0RETURNMakchance:chance = INT(RND * 10) + 1RETURNMovbunny:dir = INT(RND * 2) + 1IF dir = 1 THEN dir = 4: x = -10ELSE dir = -4: x = 650END IFRETURNShowbunny:IF Active = 1 THEN bx = bx + dir CIRCLE (bx, 400), 5, 14 IF bx <= 0 OR bx >= 640 THEN Active = 0 END IFELSE GOSUB Makchance IF chance = 9 THEN Active = 1 GOSUB Movbunny END IFEND IFRETURNCollision:hx1 = x1 + 42: hx2 = x1 + 58 'horizontal co-ord of hawk feethy1 = y1 + 46: hy2 = hy1 + 10 'vertical co-ord of hawk feetrx1 = bx - 4: rx2 = rx1 + 12 'rabbit right + left side co-ordsIF ShowBox = True THEN LINE (hx1, hy1)-(hx2, hy2 + 10), 5, BEND IFIF hy1 >= 394 AND hy2 <= 404 THEN IF hx1 >= rx1 AND hx1 <= rx2 THEN IF Captured = False THEN Captured = True SOUND 2500, 1 END IF END IFEND IFRETURN