diff --git a/SDL#2/src/mario.jpg b/SDL#2/src/mario.jpg deleted file mode 100644 index d6e7c23..0000000 Binary files a/SDL#2/src/mario.jpg and /dev/null differ diff --git a/SDL#4/err.log b/SDL#4/err.log new file mode 100644 index 0000000..1e2c415 --- /dev/null +++ b/SDL#4/err.log @@ -0,0 +1,3019 @@ +INDEX: bottom-left0 AT 0 + (-32,576) -> (32, 32) +INDEX: bottom-left1 AT 1 + (0,576) -> (32, 32) +INDEX: bottom-left2 AT 2 + (32,576) -> (32, 32) +INDEX: bottom-left3 AT 3 + (64,576) -> (32, 32) +INDEX: bottom-left4 AT 4 + (96,576) -> (32, 32) +INDEX: bottom-left5 AT 5 + (128,576) -> (32, 32) +INDEX: bottom-left6 AT 6 + (160,576) -> (32, 32) +INDEX: bottom-left7 AT 7 + (192,576) -> (32, 32) +INDEX: bottom-left8 AT 8 + (224,576) -> (32, 32) +INDEX: bottom-left9 AT 9 + (256,576) -> (32, 32) +INDEX: bottom-left10 AT 10 + (-32,608) -> (32, 32) +INDEX: bottom-left11 AT 11 + (0,608) -> (32, 32) +INDEX: bottom-left12 AT 12 + (32,608) -> (32, 32) +INDEX: bottom-left13 AT 13 + (64,608) -> (32, 32) +INDEX: bottom-left14 AT 14 + (96,608) -> (32, 32) +INDEX: bottom-left15 AT 15 + (128,608) -> (32, 32) +INDEX: bottom-left16 AT 16 + (160,608) -> (32, 32) +INDEX: bottom-left17 AT 17 + (192,608) -> (32, 32) +INDEX: bottom-left18 AT 18 + (224,608) -> (32, 32) +INDEX: bottom-left19 AT 19 + (256,608) -> (32, 32) +INDEX: bottom-left20 AT 20 + (-32,640) -> (32, 32) +INDEX: bottom-left21 AT 21 + (0,640) -> (32, 32) +INDEX: bottom-left22 AT 22 + (32,640) -> (32, 32) +INDEX: bottom-left23 AT 23 + (64,640) -> (32, 32) +INDEX: bottom-left24 AT 24 + (96,640) -> (32, 32) +INDEX: bottom-left25 AT 25 + (128,640) -> (32, 32) +INDEX: bottom-left26 AT 26 + (160,640) -> (32, 32) +INDEX: bottom-left27 AT 27 + (192,640) -> (32, 32) +INDEX: bottom-left28 AT 28 + (224,640) -> (32, 32) +INDEX: bottom-left29 AT 29 + (256,640) -> (32, 32) +INDEX: bottom-center0 AT 30 + (384,576) -> (32, 32) +INDEX: bottom-center1 AT 31 + (416,576) -> (32, 32) +INDEX: bottom-center2 AT 32 + (448,576) -> (32, 32) +INDEX: bottom-center3 AT 33 + (480,576) -> (32, 32) +INDEX: bottom-center4 AT 34 + (512,576) -> (32, 32) +INDEX: bottom-center5 AT 35 + (544,576) -> (32, 32) +INDEX: bottom-center6 AT 36 + (576,576) -> (32, 32) +INDEX: bottom-center7 AT 37 + (608,576) -> (32, 32) +INDEX: bottom-center8 AT 38 + (640,576) -> (32, 32) +INDEX: bottom-center9 AT 39 + (672,576) -> (32, 32) +INDEX: bottom-center10 AT 40 + (384,608) -> (32, 32) +INDEX: bottom-center11 AT 41 + (416,608) -> (32, 32) +INDEX: bottom-center12 AT 42 + (448,608) -> (32, 32) +INDEX: bottom-center13 AT 43 + (480,608) -> (32, 32) +INDEX: bottom-center14 AT 44 + (512,608) -> (32, 32) +INDEX: bottom-center15 AT 45 + (544,608) -> (32, 32) +INDEX: bottom-center16 AT 46 + (576,608) -> (32, 32) +INDEX: bottom-center17 AT 47 + (608,608) -> (32, 32) +INDEX: bottom-center18 AT 48 + (640,608) -> (32, 32) +INDEX: bottom-center19 AT 49 + (672,608) -> (32, 32) +INDEX: bottom-center20 AT 50 + (384,640) -> (32, 32) +INDEX: bottom-center21 AT 51 + (416,640) -> (32, 32) +INDEX: bottom-center22 AT 52 + (448,640) -> (32, 32) +INDEX: bottom-center23 AT 53 + (480,640) -> (32, 32) +INDEX: bottom-center24 AT 54 + (512,640) -> (32, 32) +INDEX: bottom-center25 AT 55 + (544,640) -> (32, 32) +INDEX: bottom-center26 AT 56 + (576,640) -> (32, 32) +INDEX: bottom-center27 AT 57 + (608,640) -> (32, 32) +INDEX: bottom-center28 AT 58 + (640,640) -> (32, 32) +INDEX: bottom-center29 AT 59 + (672,640) -> (32, 32) +INDEX: float-center0 AT 60 + (160,64) -> (32, 32) +INDEX: float-center1 AT 61 + (192,64) -> (32, 32) +INDEX: float-center2 AT 62 + (224,64) -> (32, 32) +INDEX: float-center3 AT 63 + (256,64) -> (32, 32) +INDEX: float-center4 AT 64 + (288,64) -> (32, 32) +INDEX: float-center5 AT 65 + (160,96) -> (32, 32) +INDEX: float-center6 AT 66 + (192,96) -> (32, 32) +INDEX: float-center7 AT 67 + (224,96) -> (32, 32) +INDEX: float-center8 AT 68 + (256,96) -> (32, 32) +INDEX: float-center9 AT 69 + (288,96) -> (32, 32) +INDEX: float-center10 AT 70 + (160,128) -> (32, 32) +INDEX: float-center11 AT 71 + (192,128) -> (32, 32) +INDEX: float-center12 AT 72 + (224,128) -> (32, 32) +INDEX: float-center13 AT 73 + (256,128) -> (32, 32) +INDEX: float-center14 AT 74 + (288,128) -> (32, 32) +INDEX: float-center15 AT 75 + (160,160) -> (32, 32) +INDEX: float-center16 AT 76 + (192,160) -> (32, 32) +INDEX: float-center17 AT 77 + (224,160) -> (32, 32) +INDEX: float-center18 AT 78 + (256,160) -> (32, 32) +INDEX: float-center19 AT 79 + (288,160) -> (32, 32) +INDEX: float-center20 AT 80 + (160,192) -> (32, 32) +INDEX: float-center21 AT 81 + (192,192) -> (32, 32) +INDEX: float-center22 AT 82 + (224,192) -> (32, 32) +INDEX: float-center23 AT 83 + (256,192) -> (32, 32) +INDEX: float-center24 AT 84 + (288,192) -> (32, 32) +INDEX: brick1 AT 85 + (128,448) -> (32, 32) +INDEX: mystery-bloc AT 86 + (160,448) -> (32, 32) +INDEX: brick2 AT 87 + (192,448) -> (32, 32) +INDEX: mystery-bloc2 AT 88 + (480,448) -> (32, 32) +INDEX: mystery-bloc3 AT 89 + (544,480) -> (32, 32) +INDEX: mystery-bloc4 AT 90 + (608,512) -> (32, 32) +INDEX: mario AT 91 + (547,544) -> (25, 32) +y -> -35 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -67.2 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -67.2 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +>>> not locked <<< +y -> -0.7 +y -> -35 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -67.2 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -67.2 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +>>> not locked <<< +y -> -0.7 +y -> -35 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -67.2 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -67.2 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +>>> not locked <<< +y -> -0.7 +y -> -35 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -67.2 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -67.2 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +>>> not locked <<< +y -> -0.7 +y -> -35 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -67.2 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -67.2 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +>>> not locked <<< +y -> -0.7 +y -> -35 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -67.2 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -67.2 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +>>> not locked <<< +y -> -0.7 +y -> -35 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -67.2 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -67.2 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +>>> not locked <<< +y -> -0.7 +y -> -35 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -67.2 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -67.2 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +>>> not locked <<< +y -> -0.7 +y -> -35 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -67.2 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -67.2 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +>>> not locked <<< +y -> -0.7 +y -> -35 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -67.2 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -67.2 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +>>> not locked <<< +y -> -0.7 +y -> -35 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -67.2 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -67.2 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +>>> not locked <<< +y -> -0.7 +y -> -35 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -67.2 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision Y -> -67.2 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +>>> not locked <<< +y -> -0.7 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 34 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 34 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 34 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 33 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 33 +x -> -3 +>>> not locked <<< +collision X -> -3 to 0 +locked by sprite 33 +x -> -0.9 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 33 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 32 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 32 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 32 +x -> -3 +>>> not locked <<< +collision X -> -3 to 0 +locked by sprite 32 +x -> -0.9 +locked by sprite 32 +locked by sprite 32 +locked by sprite 32 +locked by sprite 32 +locked by sprite 32 +locked by sprite 32 +locked by sprite 32 +locked by sprite 32 +locked by sprite 32 +locked by sprite 32 +locked by sprite 32 +locked by sprite 32 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 32 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 32 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 33 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 33 +x -> 3 +>>> not locked <<< +collision X -> 3 to 0 +locked by sprite 33 +x -> 0.9 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +y -> -35 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -70 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +>>> not locked <<< +collision Y -> -70 to 0 +>>> not locked <<< +y -> -33.6 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +>>> not locked <<< +collision Y -> -33.6 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +>>> not locked <<< +y -> -0.7 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +locked by sprite 33 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 33 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 32 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 32 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 32 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 31 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 31 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 31 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 30 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 30 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 30 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 30 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 30 +locked by sprite 30 +x -> -10 +y -> -35 +>>> not locked <<< +collision X -> -10 to 0 +collision Y -> -35 to 0 +>>> not locked <<< +x -> -10 +y -> -70 +>>> not locked <<< +collision X -> -10 to 0 +collision Y -> -70 to 0 +>>> not locked <<< +x -> -10 +y -> -49 +>>> not locked <<< +collision X -> -10 to 0 +collision Y -> -49 to 0 +>>> not locked <<< +x -> -10 +y -> -34.3 +>>> not locked <<< +collision X -> -10 to 0 +collision Y -> -34.3 to 0 +>>> not locked <<< +x -> -10 +y -> -23.8 +>>> not locked <<< +collision X -> -10 to 0 +collision Y -> -23.8 to 0 +>>> not locked <<< +x -> -10 +y -> -16.1 +>>> not locked <<< +collision X -> -10 to 0 +collision Y -> -16.1 to 0 +>>> not locked <<< +x -> -10 +y -> -11.2 +>>> not locked <<< +collision X -> -10 to 0 +collision Y -> -11.2 to 0 +>>> not locked <<< +x -> -10 +y -> -7.7 +>>> not locked <<< +collision X -> -10 to 0 +collision Y -> -7.7 to 0 +>>> not locked <<< +x -> -10 +y -> -4.9 +>>> not locked <<< +collision X -> -10 to 0 +collision Y -> -4.9 to 0 +>>> not locked <<< +x -> -10 +y -> -2.8 +>>> not locked <<< +collision X -> -10 to 0 +collision Y -> -2.8 to 0 +>>> not locked <<< +x -> -10 +y -> -1.4 +>>> not locked <<< +collision X -> -10 to 0 +collision Y -> -1.4 to 0 +>>> not locked <<< +x -> -10 +y -> -0.7 +>>> not locked <<< +collision X -> -10 to 0 +>>> not locked <<< +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +>>> not locked <<< +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 8 +locked by sprite 8 +locked by sprite 8 +locked by sprite 8 +locked by sprite 8 +locked by sprite 8 +locked by sprite 8 +locked by sprite 8 +locked by sprite 8 +locked by sprite 8 +locked by sprite 8 +locked by sprite 8 +locked by sprite 8 +locked by sprite 8 +>>> not locked <<< +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 8 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 7 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 7 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 7 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 6 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 6 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 6 +x -> -3 +>>> not locked <<< +collision X -> -3 to 0 +locked by sprite 6 +x -> -0.9 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 6 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 6 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 6 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 7 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 7 +x -> 3 +>>> not locked <<< +collision X -> 3 to 0 +locked by sprite 7 +x -> 0.9 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +y -> -35 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -70 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +>>> not locked <<< +collision Y -> -70 to 0 +>>> not locked <<< +y -> -33.6 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +>>> not locked <<< +collision Y -> -33.6 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +>>> not locked <<< +y -> -0.7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +y -> -35 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -70 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +>>> not locked <<< +collision Y -> -70 to 0 +>>> not locked <<< +y -> -33.6 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +locked by sprite 87 +>>> not locked <<< +collision Y -> -33.6 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +>>> not locked <<< +y -> -0.7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 7 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 7 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 6 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 6 +x -> -3 +>>> not locked <<< +collision X -> -3 to 0 +locked by sprite 6 +x -> -0.9 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +y -> -35 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -70 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +>>> not locked <<< +collision Y -> -70 to 0 +>>> not locked <<< +y -> -33.6 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +>>> not locked <<< +collision Y -> -33.6 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +>>> not locked <<< +y -> -0.7 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +y -> -35 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +y -> -70 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +>>> not locked <<< +collision Y -> -70 to 0 +>>> not locked <<< +y -> -33.6 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +>>> not locked <<< +collision Y -> -33.6 to 0 +>>> not locked <<< +y -> -13.3 +>>> not locked <<< +collision Y -> -13.3 to 0 +>>> not locked <<< +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +>>> not locked <<< +y -> -0.7 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 6 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 5 +locked by sprite 5 +x -> -10 +y -> -35 +>>> not locked <<< +collision X -> -10 to 0 +collision Y -> -35 to 0 +>>> not locked <<< +x -> -10 +y -> -70 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +>>> not locked <<< +collision X -> -10 to 0 +collision Y -> -70 to 0 +>>> not locked <<< +x -> -10 +y -> -33.6 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +>>> not locked <<< +collision X -> -10 to 0 +collision Y -> -33.6 to 0 +>>> not locked <<< +x -> -3 +y -> -13.3 +>>> not locked <<< +collision X -> -3 to 0 +collision Y -> -13.3 to 0 +>>> not locked <<< +x -> -0.9 +y -> -9.1 +>>> not locked <<< +collision Y -> -9.1 to 0 +>>> not locked <<< +y -> -6.3 +>>> not locked <<< +collision Y -> -6.3 to 0 +>>> not locked <<< +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +>>> not locked <<< +y -> -0.7 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +locked by sprite 4 +y -> -35 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +x -> 10 +y -> -70 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -70 to 0 +>>> not locked <<< +x -> 10 +y -> -33.6 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +locked by sprite 85 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -33.6 to 0 +>>> not locked <<< +x -> 10 +y -> -13.3 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -13.3 to 0 +>>> not locked <<< +x -> 10 +y -> -9.1 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -9.1 to 0 +>>> not locked <<< +x -> 3 +y -> -6.3 +>>> not locked <<< +collision X -> 3 to 0 +collision Y -> -6.3 to 0 +>>> not locked <<< +x -> 0.9 +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +>>> not locked <<< +y -> -0.7 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +locked by sprite 6 +y -> -35 +>>> not locked <<< +collision Y -> -35 to 0 +>>> not locked <<< +x -> 10 +y -> -70 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -70 to 0 +>>> not locked <<< +x -> 10 +y -> -33.6 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +locked by sprite 86 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -33.6 to 0 +>>> not locked <<< +x -> 10 +y -> -13.3 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -13.3 to 0 +>>> not locked <<< +x -> 10 +y -> -9.1 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -9.1 to 0 +>>> not locked <<< +x -> 3 +y -> -6.3 +>>> not locked <<< +collision X -> 3 to 0 +collision Y -> -6.3 to 0 +>>> not locked <<< +x -> 0.9 +y -> -4.2 +>>> not locked <<< +collision Y -> -4.2 to 0 +>>> not locked <<< +y -> -2.8 +>>> not locked <<< +collision Y -> -2.8 to 0 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +>>> not locked <<< +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +>>> not locked <<< +y -> -0.7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +locked by sprite 7 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 7 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 8 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 8 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 8 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 8 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 9 +locked by sprite 9 +x -> 10 +y -> -35 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -35 to 0 +>>> not locked <<< +x -> 10 +y -> -70 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -70 to 0 +>>> not locked <<< +x -> 10 +y -> -49 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -49 to 0 +>>> not locked <<< +x -> 10 +y -> -34.3 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -34.3 to 0 +>>> not locked <<< +x -> 10 +y -> -23.8 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -23.8 to 0 +>>> not locked <<< +x -> 10 +y -> -16.1 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -16.1 to 0 +>>> not locked <<< +x -> 10 +y -> -11.2 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -11.2 to 0 +>>> not locked <<< +x -> 10 +y -> -7.7 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -7.7 to 0 +>>> not locked <<< +x -> 10 +y -> -4.9 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -4.9 to 0 +>>> not locked <<< +x -> 10 +y -> -2.8 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -2.8 to 0 +>>> not locked <<< +x -> 10 +y -> -1.4 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -1.4 to 0 +>>> not locked <<< +x -> 10 +y -> -0.7 +>>> not locked <<< +collision X -> 10 to 0 +>>> not locked <<< +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +>>> not locked <<< +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 30 +locked by sprite 30 +locked by sprite 30 +locked by sprite 30 +locked by sprite 30 +locked by sprite 30 +locked by sprite 30 +locked by sprite 30 +locked by sprite 30 +locked by sprite 30 +locked by sprite 30 +locked by sprite 30 +locked by sprite 30 +locked by sprite 30 +>>> not locked <<< +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 30 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 31 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 31 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 31 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 32 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 32 +locked by sprite 32 +x -> 10 +y -> -35 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -35 to 0 +>>> not locked <<< +x -> 10 +y -> -70 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -70 to 0 +>>> not locked <<< +x -> 10 +y -> -33.6 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +locked by sprite 88 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -33.6 to 0 +>>> not locked <<< +x -> 10 +y -> -13.3 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -13.3 to 0 +>>> not locked <<< +x -> 10 +y -> -9.1 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -9.1 to 0 +>>> not locked <<< +x -> 10 +y -> -6.3 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +locked by sprite 89 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -6.3 to 0 +>>> not locked <<< +x -> 8 +y -> -4.2 +>>> not locked <<< +collision X -> 8 to 0 +collision Y -> -4.2 to 0 +>>> not locked <<< +x -> 10 +y -> -2.8 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -2.8 to 0 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +>>> not locked <<< +x -> 10 +y -> -1.4 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -1.4 to 0 +>>> not locked <<< +x -> 10 +y -> -0.7 +>>> not locked <<< +collision X -> 10 to 0 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 36 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 36 +x -> 10 +locked by sprite 91 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 36 +x -> 10 +>>> not locked <<< +collision X -> 10 to 0 +locked by sprite 36 +locked by sprite 36 +x -> 10 +y -> -35 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -35 to 0 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +>>> not locked <<< +x -> 10 +y -> -21 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +locked by sprite 90 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -21 to 0 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +>>> not locked <<< +x -> 10 +y -> -7 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -7 to 0 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +locked by sprite 37 +>>> not locked <<< +x -> 10 +y -> -4.9 +>>> not locked <<< +collision X -> 10 to 0 +collision Y -> -4.9 to 0 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +>>> not locked <<< +x -> 3 +y -> -2.8 +>>> not locked <<< +collision X -> 3 to 0 +collision Y -> -2.8 to 0 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +>>> not locked <<< +x -> 0.9 +y -> -1.4 +>>> not locked <<< +collision Y -> -1.4 to 0 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +>>> not locked <<< +y -> -0.7 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +locked by sprite 38 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 38 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 37 +x -> -10 +locked by sprite 91 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 37 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 37 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 36 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 36 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 36 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +x -> -10 +>>> not locked <<< +collision X -> -10 to 0 +locked by sprite 34 +x -> -3 +>>> not locked <<< +collision X -> -3 to 0 +locked by sprite 34 +x -> -0.9 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 +locked by sprite 34 diff --git a/SDL#4/exe b/SDL#4/exe index f652547..f7e4d5c 100755 Binary files a/SDL#4/exe and b/SDL#4/exe differ diff --git a/SDL#4/main.cpp b/SDL#4/main.cpp index c8eb17e..8b7e90f 100644 --- a/SDL#4/main.cpp +++ b/SDL#4/main.cpp @@ -49,32 +49,41 @@ int main(int argc, char* argv[]) { =========================================================*/ // On cree une coquille verte // xMarioGreenShell gs(mgr, 5, 20-3); - // gs.start("green-sheel", 100, SPRITE_ANIM_INFINITE); + // gs.push("green-sheel"); + // gs.start(100, SPRITE_ANIM_INFINITE); // On cree une brique - xMarioBrick mbr1(mgr, 4, 20-5); + xMarioBrick mbr1(mgr, 4, 20-6); mbr1.push("brick1"); // On cree un bloc mystere - xMarioMysteryBloc mb(mgr, 5, 20-5); + xMarioMysteryBloc mb(mgr, 5, 20-6); mb.push("mystery-bloc"); mb.start(150, SPRITE_ANIM_INFINITE); // On cree une brique - xMarioBrick mbr2(mgr, 6, 20-5); + xMarioBrick mbr2(mgr, 6, 20-6); mbr2.push("brick2"); - xMarioMysteryBloc mb1(mgr, 15, 20-5); + xMarioMysteryBloc mb1(mgr, 15, 20-6); mb1.push("mystery-bloc2"); mb1.start(150, SPRITE_ANIM_INFINITE); + xMarioMysteryBloc mb2(mgr, 17, 20-5); + mb2.push("mystery-bloc3"); + mb2.start(150, SPRITE_ANIM_INFINITE); + + xMarioMysteryBloc mb3(mgr, 19, 20-4); + mb3.push("mystery-bloc4"); + mb3.start(150, SPRITE_ANIM_INFINITE); + // On cree un bloc normal - // xMarioBloc bl(mgr, (SDL_Rect){0, 20-2, 10, 3}); + // xMarioBloc bl(mgr, (SDL_Rect){16, 20-5, 1, 1}); // bl.push("bloc-bottom-left"); // On cree mario - mario = new xMarioMario(mgr, 5, 20-3); + mario = new xMarioMario(mgr, 17, 20-3); mario->push("mario"); mario->start(100, SPRITE_ANIM_INFINITE); @@ -90,8 +99,10 @@ int main(int argc, char* argv[]) { mgr->attachEvent(SDL_KEYUP, &keyupEventHandler); mgr->attachEvent(SDL_QUIT, &quitEventHandler); + mgr->debug(); + // Boucle de traitement - mgr->update(); mgr->update(); + mgr->update(); mgr->manageFps(FPS); while(running){ @@ -109,9 +120,18 @@ int main(int argc, char* argv[]) { mario->moveFromVelocity(); - if( mgr->hit("mystery-bloc", 0, 9) ) mb.jump(); + if( mgr->hit("mystery-bloc", 0, 1) ) mb.jump(); else mb.unjump(); + if( mgr->hit("mystery-bloc2", 0, 1) ) mb1.jump(); + else mb1.unjump(); + + if( mgr->hit("mystery-bloc3", 0, 1) ) mb2.jump(); + else mb2.unjump(); + + if( mgr->hit("mystery-bloc4", 0, 1) ) mb3.jump(); + else mb3.unjump(); + mgr->manageFps(); // Gestion des FPS (speed) mgr->update(); // Mise a jour du rendu } diff --git a/SDL#4/main.h b/SDL#4/main.h index 426b654..851d5d5 100644 --- a/SDL#4/main.h +++ b/SDL#4/main.h @@ -22,7 +22,7 @@ #define BLOC_WIDTH 32 #define BLOC_HEIGHT 20 - #define FPS 60 + #define FPS 40 /* [FONCTIONS] Fonctions du corps =========================================================*/ diff --git a/SDL#4/main.o b/SDL#4/main.o index de95561..da1a5b0 100644 Binary files a/SDL#4/main.o and b/SDL#4/main.o differ diff --git a/SDL#4/todo.md b/SDL#4/todo.md index 3179f30..4f11a23 100644 --- a/SDL#4/todo.md +++ b/SDL#4/todo.md @@ -5,11 +5,15 @@ A FAIRE EN COURS ======== -- [ ] Optimisation/Correction des collisions +- [ ] Optimisation/Correction des collisions (hit + move) - [ ] Erreur de hit() + - [x] Optimisation de la correction apres saut + - [..] Correction du move qui fait friser parfois - [ ] Liberation memoire car lag - [...] Gestion sprites de mario en fonction mouvement +- [ ] Permettre a move() de renvoyer qqch + FAIT ==== - [x] Gestion velocite pour deplacement diff --git a/SDL#4/xMario/BreakableBloc/xMarioMysteryBloc.cpp b/SDL#4/xMario/BreakableBloc/xMarioMysteryBloc.cpp index 00c2a67..024690d 100644 --- a/SDL#4/xMario/BreakableBloc/xMarioMysteryBloc.cpp +++ b/SDL#4/xMario/BreakableBloc/xMarioMysteryBloc.cpp @@ -31,10 +31,10 @@ void xMarioMysteryBloc::jump(){ if( _defaultrect.y == _dst.y && SDL_GetTicks()-_lastjump > 300 ){ - _dst.x = _defaultrect.x - _defaultrect.w*.1/2; - _dst.y = _defaultrect.y-10 - _defaultrect.h*.1/2; - _dst.w = _defaultrect.w * 1.1; - _dst.h = _defaultrect.h * 1.1; + _dst.x = _defaultrect.x; + _dst.y = _defaultrect.y-10; + _dst.w = _defaultrect.w; + _dst.h = _defaultrect.h; this->move(_dst); diff --git a/SDL#4/xMario/xMarioMario.cpp b/SDL#4/xMario/xMarioMario.cpp index 0fa0184..975493a 100644 --- a/SDL#4/xMario/xMarioMario.cpp +++ b/SDL#4/xMario/xMarioMario.cpp @@ -23,7 +23,7 @@ xMarioMario::xMarioMario(xManager *m, int x, int y) _gravity = 19; - // Constantes de velocite sur X + // Constantes de mouvement sur X _velocity[0] = 0.0; _mult[0] = 10; _dec[0] = .7; @@ -31,7 +31,7 @@ xMarioMario::xMarioMario(xManager *m, int x, int y) _min_vel[0] = 0.1; _max_vel[0] = 10; - // Constantes de velocite sur Y + // Constantes de mouvement sur Y _velocity[1] = 0.0; _mult[1] = 50; _dec[1] = .3; @@ -39,47 +39,43 @@ xMarioMario::xMarioMario(xManager *m, int x, int y) _min_vel[1] = 0.2; _max_vel[1] = 100; - /**/// this->addFrame( (SDL_Rect){2, 0, 19, 29} ); - // this->addFrame( (SDL_Rect){33, 0, 19, 29} ); - // this->addFrame( (SDL_Rect){62, 0, 19, 29} ); - /**/// this->addFrame( (SDL_Rect){93, 0, 19, 29} ); - // this->addFrame( (SDL_Rect){122, 0, 19, 29} ); - // this->addFrame( (SDL_Rect){122, 0, 19, 29} ); - // this->addFrame( (SDL_Rect){153, 0, 19, 29} ); - // this->addFrame( (SDL_Rect){182, 0, 19, 29} ); - // this->addFrame( (SDL_Rect){213, 0, 19, 29} ); + // On definit les frames de l'animation par defaut this->addFrame( (SDL_Rect){238, 0, 19, 29} ); - // this->addFrame( (SDL_Rect){269, 0, 19, 29} ); - // this->addFrame( (SDL_Rect){298, 0, 19, 29} ); - this->addFrame( (SDL_Rect){329, 0, 19, 29} ); + this->addFrame( (SDL_Rect){329, 0, 19, 29} ); - // /* (1) On definit les clip de chaque frame */ - // this->addFrame( (SDL_Rect){21, 0, 18, 32} ); - // this->addFrame( (SDL_Rect){42, 0, 18, 32} ); - // this->addFrame( (SDL_Rect){63, 0, 18, 32} ); - // this->addFrame( (SDL_Rect){82, 0, 18, 32} ); - // this->addFrame( (SDL_Rect){103, 0, 18, 32} ); - // this->addFrame( (SDL_Rect){125, 0, 18, 32} ); } /* [MOVEFROMVELOCITY] Applique la velocite au deplacement =========================================================*/ -void xMarioMario::moveFromVelocity(){ +void xMarioMario::moveFromVelocity(){ + + /* (1) Si aucune collision, on deplace */ + vector after = this->move(_velocity[0], _velocity[1]); + + // after[0] -> sens sur x de la collision + // after[1] -> sens sur y de la collision + + if( after[2] != ((int)_velocity[0]) ) + cerr << "collision X -> " << _velocity[0] << " to " << after[2] << endl; + + if( after[3] != ((int)_velocity[1]) ) + cerr << "collision Y -> " << _velocity[1] << " to " << after[3] << endl; + + /* (2) On modifie la velocite en fonction des collisions */ + _velocity[0] = (double) after[0]; + _velocity[1] = (double) after[1]; - /* (2) Si aucune collision, on deplace */ - this->move(_velocity[0], _velocity[1]); - cout << "x -> " << _velocity[0] << endl; - cout << "y -> " << _velocity[1] << endl; /* (3) Modification du sprite en fonction du mouvement */ this->turn(); - /* (1) Gestion de touche encore enfoncee */ + /* (4) Gestion de touche encore enfoncee */ if( _left ) this->velocity(-1, 0); else if( _right ) this->velocity(1, 0); + // diminution de l'acceleration quand on lache <- ET -> else _velocity[0] *= ( 1 - _dec[0] ); // Si touche haut @@ -92,31 +88,33 @@ void xMarioMario::moveFromVelocity(){ }else _jumps = 0; - /* (4) On diminue la velocite (decceleration) */ + + /* (5) On diminue la gravite */ _velocity[1] *= ( 1 - _dec[1] ); - /* (5) Gestion de la gravite */ + /* (6) Gestion de la gravite */ if( !this->onFloor() ) this->move(0, _gravity); - /* (6) Si velocite sous borne min */ + + /* (7) Si velocite sous borne min, on met a 0 */ if( abs(_velocity[0]) < _min_vel[0] ) // sur x _velocity[0] = 0; - if( abs(_velocity[1]) < _min_vel[1] ) // sur y (gravite) + if( abs(_velocity[1]) < _min_vel[1] ) // sur y _velocity[1] = 0; - /* (7) Gestion du temps */ - // if( abs(_velocity[0]) > 0 ) - // cout << "x -> " << _velocity[0] << endl; + /* (8) Gestion du temps */ + if( abs(_velocity[0]) > 0 ) + cerr << "x -> " << _velocity[0] << endl; - // if( abs(_velocity[1]) > 0 ) - // cout << "y -> " << _velocity[1] << endl; + if( abs(_velocity[1]) > 0 ) + cerr << "y -> " << _velocity[1] << endl; // cout << endl; - usleep(20000); + // usleep(20000); } diff --git a/SDL#4/xSDL/xManager.cpp b/SDL#4/xSDL/xManager.cpp index f8e839e..f8a433a 100644 --- a/SDL#4/xSDL/xManager.cpp +++ b/SDL#4/xSDL/xManager.cpp @@ -8,6 +8,8 @@ xManager::xManager(const char *t, int w, int h){ _renderer = NULL; _texture = NULL; + _debug = (SDL_Rect){0, 0, 0, 0}; + // Initialisation des sous-sys. SDL SDL_Init( SDL_INIT_EVERYTHING ); @@ -28,7 +30,7 @@ xManager::xManager(const char *t, int w, int h){ // On enregistre les dimensions de la fenetre - _winrect.x = _winrect.y = 0; + _winrect.x = 0; _winrect.y = 0; _winrect.w = w; _winrect.h = h; SDL_GetWindowSize(_window, &_winrect.w, &_winrect.h); @@ -92,85 +94,13 @@ bool xManager::setImage(const char *url){ -/* [HIT] Retourne si une texture est en collision avec une autre -=========================================================*/ -bool xManager::hit(SDL_Texture *current, int movex, int movey){ - // Anti conflit inter-thread - _mutex_hit.lock(); - - - /* (1) On recupere le SDL_Rect destination du sprite courant */ - int xIndex = -1; - for( int i = 0 ; i < _sprites.size() ; i++ ) - if( _sprites[i] == current ) - xIndex = i; - - if( xIndex == -1 ){ - _mutex_hit.unlock(); - return false; - } - - - SDL_Rect a = (SDL_Rect){ - (*_dst[xIndex]).x+movex, - (*_dst[xIndex]).y+movey, - (*_dst[xIndex]).w, - (*_dst[xIndex]).h - }; - SDL_Rect b; - - /* (2) On regarde si en dehors de la fenetre */ - for( int y = a.y ; y < a.y+a.h ; y++ ) - for( int x = a.x ; x < a.x+a.w ; x++ ) - if( x < _winrect.x || x > _winrect.x+_winrect.w || y < _winrect.y || y>_winrect.y+_winrect.h ){ - // On debloque la ressource - _mutex_hit.unlock(); - return true; - } - - - /* (3) On compare avec toutes les autres textures */ - for( int i = 0 ; i < _sprites.size() ; i++ ){ - - // Si c'est pas le sprite courant - if( _sprites[i] != current ){ - - // taille du sprite en cours - b.x = (*_dst[i]).x; - b.y = (*_dst[i]).y; - b.w = (*_dst[i]).w; - b.h = (*_dst[i]).h; - - for( int y = a.y ; y < a.y+a.h ; y++ ) - for( int x = a.x ; x < a.x+a.w ; x++ ) - if( x>=b.x && x<=b.x+b.w && y>=b.y && y<=b.y+b.h ){ - // On debloque la ressource - _mutex_hit.unlock(); - return true; - } - - } - - } - - // On debloque la ressource - _mutex_hit.unlock(); - return false; -} - - - - - - - /* [HIT] Retourne si une texture est en collision avec une autre =========================================================*/ // bool xManager::hit(SDL_Texture *current, int movex, int movey){ // // Anti conflit inter-thread // _mutex_hit.lock(); - + // /* (1) On recupere le SDL_Rect destination du sprite courant */ // int xIndex = -1; // for( int i = 0 ; i < _sprites.size() ; i++ ) @@ -189,20 +119,17 @@ bool xManager::hit(SDL_Texture *current, int movex, int movey){ // (*_dst[xIndex]).w, // (*_dst[xIndex]).h // }; - - -// SDL_Rect b = _winrect; +// SDL_Rect b; // /* (2) On regarde si en dehors de la fenetre */ -// if( !(a.x > b.x + b.w ) // Pas inclus a droite -// && !(a.x < b.x ) // Pas inclus a gauche -// && !(a.y < b.y ) // Pas inclus en haut -// && !(a.y > b.y + b.h ) // Pas inclus en bas -// ){ -// _mutex_hit.unlock(); -// return true; -// } - +// for( int y = a.y ; y < a.y+a.h ; y++ ) +// for( int x = a.x ; x < a.x+a.w ; x++ ) +// if( x < _winrect.x || x > _winrect.x+_winrect.w || y < _winrect.y || y>_winrect.y+_winrect.h ){ +// // On debloque la ressource +// _mutex_hit.unlock(); +// return true; +// } + // /* (3) On compare avec toutes les autres textures */ // for( int i = 0 ; i < _sprites.size() ; i++ ){ @@ -216,29 +143,115 @@ bool xManager::hit(SDL_Texture *current, int movex, int movey){ // b.w = (*_dst[i]).w; // b.h = (*_dst[i]).h; -// // On verifie que le sprite n'entre pas en collision -// if( !( (a.x >= b.x + b.w ) // Pas inclus a droite -// || (a.x+a.w <= b.x ) // Pas inclus a gauche -// || (a.y+a.h <= b.y ) // Pas inclus en haut -// || (a.y >= b.y + b.h ) // Pas inclus en bas -// ) ){ -// cout << "YES collision" << endl; -// _mutex_hit.unlock(); -// return true; -// } +// for( int y = a.y ; y < a.y+a.h ; y++ ) +// for( int x = a.x ; x < a.x+a.w ; x++ ) +// if( x>=b.x && x<=b.x+b.w && y>=b.y && y<=b.y+b.h ){ +// // On debloque la ressource +// _mutex_hit.unlock(); +// return true; +// } // } // } -// cout << "NO collision" << endl; - // // On debloque la ressource // _mutex_hit.unlock(); // return false; // } + +/* [COLLIDE] Retourne si 2 objets sont en collision +=========================================================*/ +bool xManager::collide(SDL_Rect a, SDL_Rect b){ + bool notCollide = + (a.x >= b.x+b.w ) // Inclus a droite + || (a.x+a.w <= b.x ) // Inclus a gauche + || (a.y >= b.y+b.h ) // Inclus en haut + || (a.y+a.h <= b.y ); // Inclus en bas + + return !notCollide; +} + + + + + + +/* [HIT] Retourne si une texture est en collision avec une autre +=========================================================*/ +bool xManager::hit(SDL_Texture *current, int movex, int movey){ + // Anti conflit inter-thread + _mutex_hit.lock(); + + + /* (1) On recupere le SDL_Rect destination du sprite courant */ + int xIndex = -1; + for( int i = 0 ; i < _sprites.size() ; i++ ) + if( _sprites[i] == current ){ + xIndex = i; + break; + } + + if( xIndex == -1 ){ + _mutex_hit.unlock(); + return false; + } + + + SDL_Rect a = (SDL_Rect){ + (*_dst[xIndex]).x + movex, + (*_dst[xIndex]).y + movey, + (*_dst[xIndex]).w, + (*_dst[xIndex]).h + }; + + + /* (2) On regarde si en dehors de la fenetre */ + if( (a.x < _winrect.x ) // Inclus a droite + || (a.x+a.w > _winrect.x+_winrect.w ) // Inclus a gauche + || (a.y < _winrect.y ) // Inclus en haut + || (a.y+a.h > _winrect.y+_winrect.h ) // Inclus en bas + ){ + _mutex_hit.unlock(); + return true; + } + + + /* (3) On compare avec toutes les autres textures */ + for( int i = 0 ; i < _sprites.size() ; i++ ){ + + // Si c'est pas le sprite courant + if( _sprites[i] != current ){ + + // On verifie que le sprite n'entre pas en collision + if( this->collide(a, *_dst[i]) ){ + + // DEBUG + if( i != 35 ) + cerr << "locked by sprite " << i << endl; + + _debug = *_dst[i]; + // _debug = (SDL_Rect){547-1, 531-1, 2, 2}; + + // cout << "YES collision" << endl; + _mutex_hit.unlock(); + return true; + } + + } + + } + + + + // On debloque la ressource + _mutex_hit.unlock(); + return false; +} + + /* [HIT] Retourne si une texture est en collision avec une autre =========================================================*/ bool xManager::hit(string current, int movex, int movey){ @@ -424,6 +437,9 @@ void xManager::update(){ for( int i = 0 ; i < _sprites.size() ; i++ ) SDL_RenderCopy(_renderer, _sprites[i], _src[i], _dst[i]); + // DEBUG + _debug = (SDL_Rect){_debug.x-1, _debug.y-1, _debug.w+2, _debug.h+2}; + SDL_RenderDrawRect(_renderer, &_debug); /* (n) On affiche le resultat */ SDL_RenderPresent(_renderer); @@ -451,4 +467,33 @@ void xManager::manageEvents(SDL_Event *event){ for( int i = 0 ; i < _events.size() ; i ++ ) if( event->type == _events[i] ) // si type ok (*_handlers[i])(event); // on execute le handler +} + + + + + + + + + + + + + + + + + + + + + +/* [DEBUG] Visualisation des donnees +=========================================================*/ +void xManager::debug(){ + for( int i = 0 ; i < _sprites.size() ; i++ ){ + cerr << "INDEX: " << _indexes[i] << " AT " << i << endl; + cerr << " (" << (*_dst[i]).x <<","<<(*_dst[i]).y<<") -> (" << (*_dst[i]).w << ", " << (*_dst[i]).h << ")" << endl; + } } \ No newline at end of file diff --git a/SDL#4/xSDL/xManager.h b/SDL#4/xSDL/xManager.h index ae12c14..ef3eb29 100644 --- a/SDL#4/xSDL/xManager.h +++ b/SDL#4/xSDL/xManager.h @@ -12,6 +12,8 @@ bool setBackground(Uint8 r=0xff, Uint8 g=0xff, Uint8 b=0xff, Uint8 a=0xff); bool setImage(const char *url); + + bool collide(SDL_Rect a, SDL_Rect b); // Collision entre 2 SDL_Rect bool hit(SDL_Texture *current, int movex=0, int movey=0); // Gestion des collisions bool hit(string current, int movex=0, int movey=0); // Gestion des collisions @@ -33,6 +35,10 @@ void manageEvents(SDL_Event* event); + // DEBUG + void debug(); + + private: // gestion FPS Uint32 _lasttick; @@ -65,6 +71,9 @@ mutex _mutex_hit; + // DEBUG + SDL_Rect _debug; + }; #endif \ No newline at end of file diff --git a/SDL#4/xSDL/xSprite.cpp b/SDL#4/xSDL/xSprite.cpp index c006ca4..4e8622a 100644 --- a/SDL#4/xSDL/xSprite.cpp +++ b/SDL#4/xSDL/xSprite.cpp @@ -73,7 +73,9 @@ xSprite::xSprite(xManager *m, SDL_Texture *t){ /* [MOVE] Modification de la position/taille du sprite =========================================================*/ -void xSprite::move(SDL_Rect newpos){ +vector xSprite::move(SDL_Rect newpos){ + vector result; + if( !_manager->hit(_texture, newpos.x, newpos.y) ){ @@ -88,50 +90,92 @@ void xSprite::move(SDL_Rect newpos){ if( newpos.h != 0) _dst.h = newpos.h; - } + + result.push_back( newpos.x ); + result.push_back( newpos.y ); + result.push_back( newpos.w ); + result.push_back( newpos.h ); + + return result; } /* [MOVE] Deplacement de la position/taille du sprite =========================================================*/ -void xSprite::move(int x, int y){ +// renvoie un tableau d'au moins 4 entiers +// 1 -> -1 ou 1 en fonction de la direction de la collision sur x +// 2 -> -1 ou 1 en fonction de la direction de la collision sur y +// 3 -> le deplacement effectif sur x +// 4 -> le deplacement effectif sur y +// +vector xSprite::move(int x, int y){ + // Protection inter-thread + _mutex_move.lock(); + + + vector result; + result.push_back(0); + result.push_back(0); + result.push_back(0); + result.push_back(0); + + /* (1) Variables utiles */ - int incrx = x; - int incry = y; - bool moveY = true; + int incrx = x; + int incry = y; + bool moveFasterOnX = abs(x) >= abs(y); - int signofx = (x==0) ? 0 : x / abs(x); - int signofy = (y==0) ? 0 : y / abs(y); + int signofx = (x==0) ? 0 : x / abs(x); + int signofy = (y==0) ? 0 : y / abs(y); - - /* (2) Tant qu'on n'a pas bouge */ - while( incrx != 0 || incry != 0 ){ + /* (2) Tant qu'on peut bouger (ni x ni y ne vaut 0) */ + while( incrx!=0 || incry!=0 ){ /* (3) Si on peut aller a la destination */ if( !_manager->hit(_texture, incrx, incry) ){ _dst.x += incrx; _dst.y += incry; - return; + + cerr << ">>> not locked <<<" << endl; + + result[0] = incrx; + result[1] = incry; + + _mutex_move.unlock(); + return result; + } + + + /* (4) Sinon, on decremente les deplacements 'alternativement' */ + if( moveFasterOnX ){ // Si on a plus de mouvement horizontal + if( signofx != 0 && incrx != 0 ) // si la vel. sur x n'est pas nulle + incrx -= signofx; // on diminue la vel. sur x + else if( signofy != 0 && incry != 0 ) // sinon si vel. sur y n'est pas nulle + incry -= signofy; // on diminue la vel. sur y + else // sinon, velocite nulle + return result; // On arrete de chercher + + }else{ // Si on a plus de mouvement vertical + if( signofy != 0 && incry != 0 ) // si la vel. sur y n'est pas nulle + incry -= signofy; // on diminue la vel. sur y + else if( signofx != 0 && incrx != 0 ) // sinon si vel. sur x n'est pas nulle + incrx -= signofx; // on diminue la vel. sur x + else // sinon, velocite nulle + return result; // On arrete de chercher } - - // cout << "NO" << endl; - - /* (4) Sinon, on decremente les deplacements alternativement */ - if( moveY ) - incry -= signofy; - else - incrx -= signofx; - - moveY = !moveY; + // if( !_manager->hit(_texture, 0, 1) ) + // cerr << "locked from (" << _dst.x << ", " << _dst.y << ") to (" << incrx << ", " << incry << ")" << endl; } - // Mise a jour si on a bouge - // if( incrx != 0 && incry != 0 ) - _manager->update(); + // retour + result[0] = incrx; + result[1] = incry; + _mutex_move.unlock(); + return result; } diff --git a/SDL#4/xSDL/xSprite.h b/SDL#4/xSDL/xSprite.h index 1783f97..e96dac3 100644 --- a/SDL#4/xSDL/xSprite.h +++ b/SDL#4/xSDL/xSprite.h @@ -12,8 +12,8 @@ ~xSprite(); - void move(SDL_Rect newpos); // Deplace le sprite - void move(int x, int y); // Deplace le sprite + vector move(SDL_Rect newpos); // Deplace le sprite + vector move(int x, int y); // Deplace le sprite void dimensions(); // Dimensions par defaut void dimensions(SDL_Rect r); // Dimensions sortie @@ -42,6 +42,9 @@ // Enregistre le dernier index utilise string _index; + // Protection inter-thread + mutex _mutex_move; + }; #endif \ No newline at end of file diff --git a/SDL#4/xSDL/xSpriteAnimation.cpp b/SDL#4/xSDL/xSpriteAnimation.cpp index 18bcf57..6f22a0d 100644 --- a/SDL#4/xSDL/xSpriteAnimation.cpp +++ b/SDL#4/xSDL/xSpriteAnimation.cpp @@ -93,7 +93,7 @@ void xSpriteAnimationProcess(xSpriteAnimation *xSA, int t, int flags){ timer = SDL_GetTicks(); - // On met a jour la frame + // On met a jour la frame (_src uniquement) xSA->_src = xSA->_frames.at(i); xSA->manager()->update();