@џџџџUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUџџџџUUUUUUUUUUUUUUUUUUџџUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUџџUUUUUUUUUUUUUUUUџџџ_UPUUUPUUUUU_UUUUUUUѕџџџUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU_UUUUUUPUUUUPUUPџџџџUUUUUUUUUUџџџUUUUUUUUUUUUUUUUUUUUUUUUUUUџџџUUUUUUUUUUUUUUUUUUUUUUUUUџџџџUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUѕџUUUUUUUUUUUUUUUUUUUUUUѕџџџUUUUUUUUџџџ_PUUPUPUUUUUџ_UUPUUUUUUUU_UUU_UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUџџUUUUUUџџUUUUPUPUUUPPUUUUUUUU_UUU_UUUUUUUUUPUUPUUj      > Н?џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџџџџџџџџџџџџџџџџџџџРЬ ЬР ЬЯ ЬЬЬ Ь ЬЬ РЬ Ь ЬЬЬ Р ЬРЬ Ь РЬ РЬЬЬ ЬЬРЬЬРЬЬР ЯР РЯ ЬРЬЯ РР ЬЯ Ь ЬР ЯР РЬР ЬЯЬЬЬ ЬР ЯР РЯЬРЬЯ РР ЬЯ Ь ЬР ЯР РЬРЬРЬЬЬЬЯЬЬ РЬ Ь ЬЬЬ Ь РЬЯ ЬЬЬЬ Р РРЬЬ ЯЬ ЯЬР џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџнна нанна ннп нн а нн а а пн анн а нн анна на а на нан а а п нн а п нп анаа а нана а а нн н ан п н на аа а анн а н пн п нна н аннн ананџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџннан на н нн нпнан ан нна анн на ннн н а ннна на анананн н а ннна н н на анн пнан ан анннн анн нн џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџннан на наа нннпнан ан нна аннаа п нн н а ннна на ннаннн н а ннна н а а ннн пнан ан анннн ана а нн џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџн на пн нннн нн а нанп на а нанпна пн анан н џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ_UUUUѕџџџџџџџџџџџџџџџџџџџPUUUUUUUUUUUUUUUUPUUUUUUPUUUUUUUUUUUUUUUUUUUUUUџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ_UUUUѕџџџџџџџџџџџџџџџџџџџџџџџџџџџџ_UUUUUUUUѕџџџџџџџџџџџџџџџџџUUUUUUPUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUU_UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU_UUUUUUUUUUUUUUUUUUUUUU_UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUџџџџџџџџџџџџџџџџџџџџџџUUUUUUUUUUUUUUUUџџџџџџџџџџџџџџџџџ_UUUUUUUUUUUUѕџџџџџџџџџџџџџџџџџџџџџџUUUUUUUUUUUUUUџџџџџџџџџџџџџџџUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU_UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUџџџџџџџџџџџџџџџџџџџџџџUUUUUUUUUUUUUUUUџџџџџџџџџџџџџџUUUUUUUUUUUUUUUUUUUUџџџџџџџџџџџџUUUUUUUUUUUUUUUUUUUUUUUUUUUUџџџџџџџџUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUџџџџџџџџџџџџџџџџџџџџџџUUUUUUUUUUUUUUUUџџџџџџџџџџџџџџUUUUUUUUUUUUUUUUUUUUџџџџџџџџџџџџUUUUUUUUUUUUUUUUUUUUUUUUUUUUџџџџџџџџUUUUUUUUUUUUUUUU_UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUUUUUџџџџџџџџџџџџџџџџџџџџџџџџUUUUUUUUUUUUџџџџџџџџџџџџџџџџџџџџUUUUUUUUUUUUџџџџџџџџџџџџџџџџџџџџџџџџUUUUUUUUUUUUџџџџџџџџџџџџџџџџUUUUUUUUUUUU_UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU_UUUUUUUUUUUUUUUUUUUUUUPUUUUUUUU_UUUUUUUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUUUUUUUUUUUUUUUPUUUUUUUUPUUUUPUUUUUUUUџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџUUUUUUUUџџџџџџџџџџџџџџџџџџUUUUUUUUPUUUUUUPUUUUUUUUUUUUUUUUUUPUUUUPUUUUџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџнаа а нна а п на на нан а пан а н п аннн ан нн ннпнннн нн нн н ан ннан н н ан нп анна анна аа па аанна ап аана на н а н на на а п на на па апна аана на па анна наа а аа па аапа ап апнана н а н н на а п нана па пна ааннана па анн на аа н н а аапн н ан н а ннн н пнана н н анн н а нна анн ан а нп анана н а h-- title: Slope collision test -- author: SR_MATTERNOISE -- desc: Testing and messing with a Tilemask detection system -- site: https://www.instagram.com/srmatternoisedev/ -- license: MIT License (change this to your license of choice) -- version: 0.1 -- script: lua -- Solids elevation look-up table -- The values goes to 0 to 7, and 8 is for no-check zones -- The first boolean is for toggle Negative mode local TileCollisionMasks = { [1]={false,0,0,0,0,0,0,0,0}, [2]={false,4,4,4,4,4,4,4,4}, [3]={false,0,0,0,0,8,8,8,8}, [4]={true,4,4,4,4,4,4,4,4}, [5]={false,8,8,8,8,0,0,0,0}, [6]={false,7,6,5,4,3,2,1,0}, [7]={false,0,1,2,3,4,5,6,7}, [8]={true,8,7,6,5,4,3,2,1}, [9]={true,1,2,3,4,5,6,7,8}, [10]={false,7,7,6,6,5,5,4,4}, [11]={false,3,3,2,2,1,1,0,0}, [12]={false,0,0,1,1,2,2,3,3}, [13]={false,4,4,5,5,6,6,7,7}, [14]={true,8,8,7,7,6,6,5,5}, [15]={true,4,4,3,3,2,2,1,1}, [16]={true,1,1,2,2,3,3,4,4}, [17]={true,5,5,6,6,7,7,8,8}, [18]={false,0,0,0,0,0,2,4,6}, [19]={false,0,2,4,6,8,8,8,8}, [20]={false,8,8,8,8,6,4,2,0}, [21]={false,6,4,2,0,0,0,0,0}, [22]={true,8,8,8,8,8,6,4,2}, [23]={true,8,6,4,2,0,0,0,0}, [24]={true,0,0,0,0,2,4,6,8}, [25]={true,2,4,6,8,8,8,8,8}, } local MouseX local MouseY function TIC() MouseX, MouseY = mouse() poke(0x3FFB, 0) cls() map() MapPointCollision() print("Slope collision test", 2, 2, 12) end function MapPointCollision() local MapMouseX = MouseX // 8 local MapMouseY = MouseY // 8 -- Get the Tiles flags as a byte local TileByte = GetTileFlagByte(MapMouseX, MapMouseY) -- Get the mouse position relative to the tile local LocalTileX = (MapMouseX * 8) - MouseX local LocalTileY = (MapMouseY * 8) - MouseY local CollisionResult = false print("TileFlagByte: "..TileByte, 2, 10, 13) print("LocalTileX: "..-LocalTileX, 2, 18, 13) print("LocalTileY: "..-LocalTileY, 2, 26, 13) print("Your mouse is the little orange pixel :)", 2, 130, 13) -- Get the result of the operations of GetTileMask CollisionResult = GetTileMask(TileByte, -LocalTileX, -LocalTileY) print(CollisionResult, 2, 34, 13) pix(MouseX, MouseY, 3) pix(MouseX, MapMouseY * 8, 2) pix(MapMouseX * 8, MouseY, 10) pix(MapMouseX * 8, MapMouseY * 8, 12) end function GetTileFlagByte(PosX, PosY) local InitialByte = 0 if fget(mget(PosX, PosY), 0)==true then InitialByte = InitialByte + 1 end if fget(mget(PosX, PosY), 1)==true then InitialByte = InitialByte + 2 end if fget(mget(PosX, PosY), 2)==true then InitialByte = InitialByte + 4 end if fget(mget(PosX, PosY), 3)==true then InitialByte = InitialByte + 8 end if fget(mget(PosX, PosY), 4)==true then InitialByte = InitialByte + 16 end if fget(mget(PosX, PosY), 5)==true then InitialByte = InitialByte + 32 end if fget(mget(PosX, PosY), 6)==true then InitialByte = InitialByte + 64 end if fget(mget(PosX, PosY), 7)==true then InitialByte = InitialByte + 128 end return InitialByte end function GetTileMask(TileID, PixX, PixY) -- Checks if the Tile exist in the look-up table -- if not, simply return false if TileCollisionMasks[TileID] ~= nil then -- Check if the Negative mode is true -- if is true, check if below to the Mask value -- if is false, check if upper to the Mask value if TileCollisionMasks[TileID][1] == true then if PixY < TileCollisionMasks[TileID][PixX + 2] then return true else return false end else if PixY >= TileCollisionMasks[TileID][PixX + 2] then return true else return false end end else return false end end