Christmas Platformer (100% pen)
@Stage\n\n@спрайт 1\n\ndefine рисовка (буква) x: (x) y: (y)\ngo to x: (x) y: (y)\npen down\nif <(буква) = [d]> then\n    go to x: (x position) y: ((y position) - (25))\n    go to x: (x position) y: ((y position) + (25))\n    go to x: ((x position) + (11)) y: (y position)\n    go to x: ((x position) - (11)) y: (y position)\n    go to x: (x position) y: ((y position) - (25))\n    go to x: ((x position) + (11)) y: (y position)\n    pen up\n    go to x: ((x position) + (1.5)) y: (y position)\n    go to x: (x position) y: ((y position) + (1))\n    pen down\n    go to x: (x position) y: ((y position) + (23))\nend\nif <(буква) = [e]> then\n    go to x: (x position) y: ((y position) - (25))\n    go to x: (x position) y: ((y position) + (25))\n    go to x: ((x position) + (12.5)) y: (y position)\n    go to x: ((x position) - (12.5)) y: (y position)\n    go to x: (x position) y: ((y position) - (12.5))\n    go to x: ((x position) + (9)) y: (y position)\n    go to x: ((x position) - (9)) y: (y position)\n    go to x: (x position) y: ((y position) - (12.5))\n    go to x: ((x position) + (11.5)) y: (y position)\nend\nif <(буква) = [h]> then\n    go to x: (x position) y: ((y position) - (25))\n    go to x: (x position) y: ((y position) + (25))\n    go to x: (x position) y: ((y position) - (25))\n    go to x: (x position) y: ((y position) + (12.5))\n    go to x: ((x position) + (12.5)) y: (y position)\n    go to x: (x position) y: ((y position) + (12.5))\n    go to x: (x position) y: ((y position) - (25))\nend\nif <(буква) = [n]> then\n    go to x: (x position) y: ((y position) - (25))\n    go to x: (x position) y: ((y position) + (25))\n    go to x: ((x position) + (6.25)) y: (y position)\n    go to x: ((x position) + (6.25)) y: (y position)\n    go to x: (x position) y: ((y position) - (25))\n    go to x: (x position) y: ((y position) + (25))\nend\nif <(буква) = [t]> then\n    go to x: ((x position) + (12.5)) y: (y position)\n    go to x: ((x position) - (6.25)) y: (y position)\n    go to x: (x position) y: ((y position) - (25))\nend\npen up\n\ndefine рендер падения снега\npen up\nset pen color to (#ffffff)\nset pen size to (20)\nset [элемент +6 v] to [0]\nrepeat (length of [у снега v])\n    change [элемент +6 v] by (1)\n    go to x: ((item (элемент +6) of [х снега v]) - (скроллинг Х)) y: (item (элемент +6) of [у снега v])\n    if <((item (элемент +6) of [х снега v]) - (скроллинг Х)) < [-480]> then\n        replace item (элемент +6) of [х снега v] with ((item (элемент +6) of [х снега v]) + (960))\n    end\n    if <((item (элемент +6) of [х снега v]) - (скроллинг Х)) > [480]> then\n        replace item (элемент +6) of [х снега v] with ((item (элемент +6) of [х снега v]) - (960))\n    end\n    set pen size to (25)\n    set pen (transparency v) to (50)\n    pen down\n    pen up\n    set pen size to (20)\n    set pen (transparency v) to (0)\n    pen down\n    pen up\n    if <(item (элемент +6) of [син или кос падения снега v]) = [1]> then\n        replace item (элемент +6) of [х снега v] with ((item (элемент +6) of [х снега v]) + (([sin v] of (item (элемент +6) of [у снега v]) ) * (item (элемент +6) of [синус снега v])))\n    else\n        replace item (элемент +6) of [х снега v] with ((item (элемент +6) of [х снега v]) + (([cos v] of (item (элемент +6) of [у снега v]) ) * (item (элемент +6) of [синус снега v])))\n    end\n    if <(item (элемент +6) of [у снега v]) < [-190]> then\n        delete (элемент +6) of [у снега v]\n        delete (элемент +6) of [х снега v]\n        delete (элемент +6) of [синус снега v]\n        delete (элемент +6) of [син или кос падения снега v]\n        change [элемент +6 v] by (-1)\n    end\n    replace item (элемент +6) of [у снега v] with ((item (элемент +6) of [у снега v]) - (2))\nend\n\ndefine шапочка в (х) (у)\nset pen size to (10)\nset pen color to (#ff0000)\npen up\ngo to x: ((х) + (15)) y: ((у) + (20))\npen down\ngo to x: (х) y: ((у) + (40))\ngo to x: ((х) - (15)) y: ((у) + (20))\ngo to x: (х) y: ((у) + (25))\nset pen size to (15)\npen down\npen up\nset pen color to (#ffffff)\nset pen size to (11)\ngo to x: ((х) - (20)) y: ((у) + (20))\npen down\nset x to ((х) + (20))\npen down\nset pen size to (15)\npen up\ngo to x: (х) y: ((у) + (40))\npen down\npen up\n\ndefine рендер\nрендер фона\nсоздание карты\nрендер игрока [20] (скорость Х игрока) (скорость У игрока)\n\nwhen flag clicked\nset [№ уровня v] to [1]\nset [элемент +5 v] to [0]\ndelete all of [синус снега v]\ndelete all of [син или кос падения снега v]\ndelete all of [у снега v]\ndelete all of [х снега v]\nset [скорость х направления игрока v] to [0]\nset [скорость у направления игрока v] to [0]\nset [скроллинг х v] to [0]\nset [скроллинг у v] to [0]\nрестарт\nforever\n    erase all\n    рендер\n    параметры платформера\n    if <(pick random (1) to (20)) = [20]> then\n        add [190] to [у снега v]\n        add (pick random (1) to (2)) to [син или кос падения снега v]\n        add ((pick random (-240) to (240)) + (скроллинг Х)) to [х снега v]\n        add (pick random (0.9) to (1.6)) to [синус снега v]\n    end\n    рендер падения снега\nend\n\ndefine рендер игрока (размер) (x) (y)\npen up\nset pen (transparency v) to (0)\nset pen (brightness v) to (100)\nset pen (saturation v) to (100)\nset pen color to (#e57521)\nset pen size to (20)\ngo to x: (x) y: (y)\nchange x by ((размер) / (-2))\nchange y by ((размер) / (2))\npen down\nchange x by ((размер) / (1))\nchange y by ((размер) / (-1))\nchange x by ((размер) / (-1))\nchange y by ((размер) / (1))\npen up\nchange pen size by (размер)\ngo to x: (x) y: (y)\npen up\nset pen size to (10)\nset pen color to (#ffffff)\npen up\ngo to x: (((x) + ((скорость Х направления игрока) / (2))) + (5)) y: ((y) + ((скорость У направления игрока) / (2)))\npen down\npen up\ngo to x: (((x) + ((скорость Х направления игрока) / (2))) + (-5)) y: ((y) + ((скорость У направления игрока) / (2)))\npen down\npen up\nset pen size to (10)\nset pen color to (#ffffff)\npen down\ngo to x: (((x) + ((скорость Х направления игрока) / (2))) + (-5)) y: ((y) + ((скорость У направления игрока) / (2)))\npen up\nset pen size to (5)\nset pen color to (#757575)\ngo to x: (((x) + ((скорость Х направления игрока) / (1.5))) + (-5)) y: ((y) + ((скорость У направления игрока) / (1.4)))\npen down\npen up\nset pen size to (5)\nset pen color to (#757575)\ngo to x: (((x) + ((скорость Х направления игрока) / (1.5))) + (5)) y: ((y) + ((скорость У направления игрока) / (1.4)))\npen down\npen up\nшапочка в (скорость Х игрока) ((скорость У игрока) - (5))\n\ndefine создание карты\ndelete all of [уровень v]\nset [линия# v] to [0]\nif <(№ уровня) = [1]> then\n    елка в ((0) - (скроллинг Х)) ((-15) - (скроллинг У)) [18]\n    елка в ((200) - (скроллинг Х)) ((40) - (скроллинг У)) [13]\n    рендер поверхности [200] [20] [100] [-100]\n    линия снега в ((70) - (скроллинг Х)) ((-65) - (скроллинг У)) [1] [180] [20]\n    линия снега в ((220) - (скроллинг Х)) ((-30) - (скроллинг У)) [2] [60] [20]\n    рендер поверхности [20] [20] [190] [-40]\n    линия снега в ((190) - (скроллинг Х)) ((0) - (скроллинг У)) [1] [60] [20]\n    рендер поверхности [200] [20] [400] [-100]\n    елка в ((400) - (скроллинг Х)) ((0) - (скроллинг У)) [23]\n    пушинка в ((300) - (скроллинг Х)) ((-100) - (скроллинг У)) [40]\n    пушинка в ((320) - (скроллинг Х)) ((-85) - (скроллинг У)) [30]\n    линия снега в ((400) - (скроллинг Х)) ((-60) - (скроллинг У)) [1] [250] [20]\n    рендер поверхности [300] [50] [698] [-85]\n    линия снега в ((500) - (скроллинг Х)) ((-100) - (скроллинг У)) [1] [140] [25]\n    линия снега в ((700) - (скроллинг Х)) ((-65) - (скроллинг У)) [1] [200] [25]\n    линия снега в ((698) - (скроллинг Х)) ((-35) - (скроллинг У)) [1] [340] [20]\n    линия снега в ((975) - (скроллинг Х)) ((-50) - (скроллинг У)) [2] [40] [30]\n    рендер поверхности [200] [50] [1100] [-85]\n    подарок в ((700) - (скроллинг Х)) ((-10) - (скроллинг У)) [15] [красный]\n    подарок в ((780) - (скроллинг Х)) ((0) - (скроллинг У)) [19] [синий]\n    елка в ((1100) - (скроллинг Х)) ((30) - (скроллинг У)) [23]\n    рендер поверхности [20] [120] [1320] [-65]\n    пушинка в ((1150) - (скроллинг Х)) ((-80) - (скроллинг У)) [40]\n    пушинка в ((1050) - (скроллинг Х)) ((-80) - (скроллинг У)) [50]\n    рендер поверхности [20] [200] [1450] [-50]\n    линия снега в ((1100) - (скроллинг Х)) ((-30) - (скроллинг У)) [1] [240] [30]\n    рендер поверхности [200] [20] [1600] [40]\n    линия снега в ((1320) - (скроллинг Х)) ((20) - (скроллинг У)) [1] [50] [30]\n    линия снега в ((1350) - (скроллинг Х)) ((-10) - (скроллинг У)) [2] [60] [30]\n    пушинка в ((1300) - (скроллинг Х)) ((-80) - (скроллинг У)) [40]\n    линия снега в ((1770) - (скроллинг Х)) ((-10) - (скроллинг У)) [2] [100] [20]\n    рендер поверхности [100] [20] [1850] [0]\n    елка в ((1500) - (скроллинг Х)) ((130) - (скроллинг У)) [23]\n    линия снега в ((1470) - (скроллинг Х)) ((70) - (скроллинг У)) [1] [100] [30]\n    линия снега в ((1650) - (скроллинг Х)) ((70) - (скроллинг У)) [1] [150] [30]\n    пушинка в ((1480) - (скроллинг Х)) ((0) - (скроллинг У)) [70]\n    рендер портала [1900] [70] [35]\n    линия снега в ((1850) - (скроллинг Х)) ((40) - (скроллинг У)) [1] [150] [20]\nelse\n    if <(№ уровня) = [2]> then\n        елка в ((-50) - (скроллинг Х)) ((-20) - (скроллинг У)) [18]\n        рендер поверхности [200] [10] [0] [-100]\n        линия снега в ((0) - (скроллинг Х)) ((-70) - (скроллинг У)) [1] [250] [20]\n        линия снега в ((125) - (скроллинг Х)) ((-100) - (скроллинг У)) [2] [60] [20]\n        линия снега в ((170) - (скроллинг Х)) ((-61) - (скроллинг У)) [2] [60] [20]\n        рендер поверхности [250] [10] [325] [-60]\n        линия снега в ((325) - (скроллинг Х)) ((-31) - (скроллинг У)) [1] [300] [20]\n        линия снега в ((477) - (скроллинг Х)) ((-71) - (скроллинг У)) [2] [80] [20]\n        подарок в ((250) - (скроллинг Х)) ((0) - (скроллинг У)) [19] [синий]\n        линия снега в ((520) - (скроллинг Х)) ((0) - (скроллинг У)) [2] [60] [20]\n        рендер поверхности [100] [10] [600] [0]\n        линия снега в ((600) - (скроллинг Х)) ((30) - (скроллинг У)) [1] [150] [20]\n        подарок в ((630) - (скроллинг Х)) ((65) - (скроллинг У)) [20] [красный]\n        рендер поверхности [10] [180] [700] [85]\n        линия снега в ((700) - (скроллинг Х)) ((200) - (скроллинг У)) [1] [50] [20]\n        линия снега в ((670) - (скроллинг Х)) ((170) - (скроллинг У)) [2] [60] [20]\n        рендер поверхности [40] [10] [400] [60]\n        линия снега в ((400) - (скроллинг Х)) ((90) - (скроллинг У)) [1] [65] [35]\n        рендер поверхности [50] [10] [250] [120]\n        линия снега в ((250) - (скроллинг Х)) ((150) - (скроллинг У)) [1] [75] [35]\n        елка в ((50) - (скроллинг Х)) ((270) - (скроллинг У)) [25]\n        рендер поверхности [200] [50] [20] [150]\n        линия снега в ((20) - (скроллинг Х)) ((200) - (скроллинг У)) [1] [230] [35]\n        рендер поверхности [200] [20] [-350] [150]\n        рендер поверхности [300] [85] [-640] [183]\n        линия снега в ((-640) - (скроллинг Х)) ((250) - (скроллинг У)) [1] [340] [30]\n        линия снега в ((-620) - (скроллинг Х)) ((200) - (скроллинг У)) [1] [200] [30]\n        линия снега в ((-810) - (скроллинг Х)) ((170) - (скроллинг У)) [2] [150] [30]\n        подарок в ((-650) - (скроллинг Х)) ((290) - (скроллинг У)) [20] [синий]\n        подарок в ((-550) - (скроллинг Х)) ((280) - (скроллинг У)) [16] [красный]\n        пушинка в ((-430) - (скроллинг Х)) ((150) - (скроллинг У)) [120]\n        пушинка в ((-390) - (скроллинг Х)) ((150) - (скроллинг У)) [100]\n        пушинка в ((-350) - (скроллинг Х)) ((150) - (скроллинг У)) [90]\n        пушинка в ((-300) - (скроллинг Х)) ((150) - (скроллинг У)) [110]\n        пушинка в ((-240) - (скроллинг Х)) ((150) - (скроллинг У)) [100]\n        рендер портала [-785] [299] [40]\n    else\n        if <(№ уровня) = [3]> then\n            елка в ((0) - (скроллинг Х)) ((0) - (скроллинг У)) [27]\n            рендер батута [150] [-30] [70]\n            рендер поверхности [240] [40] [60] [-110]\n            линия снега в ((60) - (скроллинг Х)) ((-70) - (скроллинг У)) [1] [280] [30]\n            рендер поверхности [240] [40] [360] [50]\n            елка в ((360) - (скроллинг Х)) ((150) - (скроллинг У)) [20]\n            линия снега в ((360) - (скроллинг Х)) ((98) - (скроллинг У)) [1] [280] [30]\n            рендер лавы горизонтали [360] [100] [50]\n            рендер батута [900] [80] [60]\n            подарок в ((760) - (скроллинг Х)) ((90) - (скроллинг У)) [25] [красный]\n            рендер поверхности [240] [40] [800] [0]\n            линия снега в ((800) - (скроллинг Х)) ((45) - (скроллинг У)) [1] [280] [30]\n            рендер поверхности [60] [40] [1100] [-90]\n            линия снега в ((1100) - (скроллинг Х)) ((-50) - (скроллинг У)) [1] [100] [30]\n            рендер поверхности [60] [40] [890] [-150]\n            линия снега в ((890) - (скроллинг Х)) ((-100) - (скроллинг У)) [1] [100] [30]\n            рендер портала [800] [-80] [30]\n        else\n            if <(№ уровня) = [4]> then\n                рендер поверхности [80] [20] [0] [-100]\n                линия снега в ((0) - (скроллинг Х)) ((-60) - (скроллинг У)) [1] [100] [30]\n                рендер поверхности [140] [80] [153] [-70]\n                линия снега в ((170) - (скроллинг Х)) ((-50) - (скроллинг У)) [1] [70] [30]\n                елка в ((130) - (скроллинг Х)) ((80) - (скроллинг У)) [30]\n                линия снега в ((154) - (скроллинг Х)) ((0) - (скроллинг У)) [1] [175] [30]\n                пушинка в ((830) - (скроллинг Х)) ((90) - (скроллинг У)) [80]\n                рендер поверхности [140] [80] [450] [-50]\n                пушинка в ((480) - (скроллинг Х)) ((-70) - (скроллинг У)) [50]\n                пушинка в ((450) - (скроллинг Х)) ((-50) - (скроллинг У)) [30]\n                подарок в ((450) - (скроллинг Х)) ((50) - (скроллинг У)) [20] [синий]\n                линия снега в ((450) - (скроллинг Х)) ((10) - (скроллинг У)) [1] [175] [30]\n                рендер поверхности [400] [80] [850] [0]\n                елка в ((1300) - (скроллинг Х)) ((30) - (скроллинг У)) [20]\n                линия снега в ((830) - (скроллинг Х)) ((0) - (скроллинг У)) [1] [300] [40]\n                линия снега в ((850) - (скроллинг Х)) ((60) - (скроллинг У)) [1] [440] [30]\n                рендер лавы горизонтали [750] [63] [40]\n                рендер поверхности [40] [30] [1300] [-70]\n                пушинка в ((1500) - (скроллинг Х)) ((0) - (скроллинг У)) [80]\n                пушинка в ((1500) - (скроллинг Х)) ((50) - (скроллинг У)) [60]\n                пушинка в ((1500) - (скроллинг Х)) ((90) - (скроллинг У)) [50]\n                шапочка в ((1500) - (скроллинг Х)) ((95) - (скроллинг У))\n                рендер батута [900] [80] [30]\n                рендер лавы вертикали [1020] [120] [100]\n                линия снега в ((1300) - (скроллинг Х)) ((-30) - (скроллинг У)) [1] [70] [40]\n                рендер поверхности [40] [30] [1500] [-70]\n                линия снега в ((1500) - (скроллинг Х)) ((-30) - (скроллинг У)) [1] [70] [40]\n                рендер поверхности [40] [30] [1700] [-40]\n                линия снега в ((1465) - (скроллинг Х)) ((-65) - (скроллинг У)) [3] [70] [40]\n                линия снега в ((1700) - (скроллинг Х)) ((0) - (скроллинг У)) [1] [70] [40]\n                рендер портала [1900] [20] [20]\n            else\n                рендер поверхности [600] [30] [0] [-120]\n                елка в ((180) - (скроллинг Х)) ((-10) - (скроллинг У)) [25]\n                линия снега в ((0) - (скроллинг Х)) ((-75) - (скроллинг У)) [1] [600] [35]\n                пушинка в ((-130) - (скроллинг Х)) ((-30) - (скроллинг У)) [80]\n                пушинка в ((-130) - (скроллинг Х)) ((20) - (скроллинг У)) [60]\n                пушинка в ((-130) - (скроллинг Х)) ((60) - (скроллинг У)) [50]\n                шапочка в ((-130) - (скроллинг Х)) ((65) - (скроллинг У))\n                рисовка the end \n            end\n        end\n    end\nend\n\ndefine разшифровка (элемент) в списке (списке)\nif <(списке) = [уровень]> then\n    delete all of [координаты уровня v]\n    set [элемент +1 v] to [0]\n    set [элемент +2 v] to []\n    repeat until <(letter (элемент +1) of (item (элемент) of [уровень v])) = [,]>\n        set [элемент +2 v] to (join (элемент +2) (letter (элемент +1) of (item (элемент) of [уровень v])))\n        change [элемент +1 v] by (1)\n    end\n    add (элемент +2) to [координаты уровня v]\n    change [элемент +1 v] by (2)\n    set [элемент +2 v] to []\n    repeat until <(letter (элемент +1) of (item (элемент) of [уровень v])) = [,]>\n        set [элемент +2 v] to (join (элемент +2) (letter (элемент +1) of (item (элемент) of [уровень v])))\n        change [элемент +1 v] by (1)\n    end\n    add (элемент +2) to [координаты уровня v]\n    change [элемент +1 v] by (2)\n    set [элемент +2 v] to []\n    repeat until <(letter (элемент +1) of (item (элемент) of [уровень v])) = [,]>\n        set [элемент +2 v] to (join (элемент +2) (letter (элемент +1) of (item (элемент) of [уровень v])))\n        change [элемент +1 v] by (1)\n    end\n    add (элемент +2) to [координаты уровня v]\n    change [элемент +1 v] by (2)\n    set [элемент +2 v] to []\n    repeat until <(letter (элемент +1) of (item (элемент) of [уровень v])) = []>\n        set [элемент +2 v] to (join (элемент +2) (letter (элемент +1) of (item (элемент) of [уровень v])))\n        change [элемент +1 v] by (1)\n    end\n    add (элемент +2) to [координаты уровня v]\nend\n\ndefine касание стен\nset [элемент +3 v] to [1]\nset [касается? v] to [нет]\nrepeat (length of [уровень v])\n    разшифровка (элемент +3) в списке [уровень]\n    if <<<(скорость Х игрока) > (((item (1) of [координаты уровня v]) - ((item (3) of [координаты уровня v]) / (2))) - ((размер пера уровня) / (1.12)))> and <(скорость Х игрока) < (((item (1) of [координаты уровня v]) - ((item (3) of [координаты уровня v]) / (-2))) + ((размер пера уровня) / (1.12)))>> and <<(скорость У игрока) > (((item (2) of [координаты уровня v]) - ((item (4) of [координаты уровня v]) / (2))) - ((размер пера уровня) / (1.12)))> and <(скорость У игрока) < (((item (2) of [координаты уровня v]) - ((item (4) of [координаты уровня v]) / (-2))) + ((размер пера уровня) / (1.12)))>>> then\n        set [касается? v] to [да]\n    end\n    change [элемент +3 v] by (1)\nend\n\ndefine параметры платформера\nif <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n    change [скорость х направления игрока v] by (1.5)\nend\nif <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n    change [скорость х направления игрока v] by (-1.5)\nend\nif <<([abs v] of ((mouse x) - ((игрок x) - (скроллинг Х))) ) > [10]> and <not <<<key (right arrow v) pressed?> or <key (left arrow v) pressed?>> or <<key (d v) pressed?> or <key (a v) pressed?>>>>> then\n    if <<mouse down?> and <(mouse x) > ((игрок x) - (скроллинг Х))>> then\n        change [скорость х направления игрока v] by (1.5)\n    end\n    if <<mouse down?> and <(mouse x) < ((игрок x) - (скроллинг Х))>> then\n        change [скорость х направления игрока v] by (-1.5)\n    end\nend\nset [скорость х направления игрока v] to ((скорость Х направления игрока) * (0.8))\nизменить скорость х игрока на (скорость Х направления игрока)\nchange [скорость у направления игрока v] by (-1)\nif <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > ((игрок y) - (скроллинг У))>>> and <(в воздухе?) < [5]>> then\n    set [скорость у направления игрока v] to [8]\nend\nизменить скорость у игрока на (скорость У направления игрока)\nпозиция\nкамера в скроллинг [8] (игрок x) (игрок y)\nif <(игрок y) < [-500]> then\n    рестарт\nend\nchange [элемент +5 v] by (1)\n\ndefine контур (размер пера)\nразшифровка (линия#) в списке [уровень]\npen up\nset pen size to ()\nset pen size to (размер пера)\nchange pen (brightness v) by (-5)\nset x to ((item (1) of [координаты уровня v]) + ((((item (3) of [координаты уровня v]) / (-2)) + ((размер пера уровня) / (-2))) + ((размер пера) / (2))))\nset y to ((item (2) of [координаты уровня v]) + (((item (4) of [координаты уровня v]) / (2)) + (((размер пера уровня) / (2)) + ((размер пера) / (-2)))))\npen down\nset x to ((item (1) of [координаты уровня v]) + (((item (3) of [координаты уровня v]) / (2)) + (((размер пера уровня) / (2)) + ((размер пера) / (-2)))))\nset y to ((item (2) of [координаты уровня v]) + (((item (4) of [координаты уровня v]) / (-2)) + (((размер пера уровня) / (-2)) + ((размер пера) / (2)))))\nset x to ((item (1) of [координаты уровня v]) + (((item (3) of [координаты уровня v]) / (-2)) + (((размер пера уровня) / (-2)) + ((размер пера) / (2)))))\nset y to ((item (2) of [координаты уровня v]) + (((item (4) of [координаты уровня v]) / (2)) + (((размер пера уровня) / (2)) + ((размер пера) / (-2)))))\npen up\n\ndefine позиция\nset [скорость х игрока v] to ((игрок x) - (скроллинг Х))\nset [скорость у игрока v] to ((игрок y) - (скроллинг У))\n\ndefine изменить скорость у игрока на (скорость у)\nchange [игрок y v] by (скорость у)\nпозиция\nкасание стен\nif <(касается?) = [да]> then\n    repeat until <(касается?) = [нет]>\n        if <(([abs v] of (скорость У направления игрока) ) / (скорость У направления игрока)) = [-1]> then\n            change [игрок y v] by (1)\n            set [в воздухе? v] to [0]\n        else\n            change [игрок y v] by (-1)\n            change [в воздухе? v] by (1)\n        end\n        позиция\n        касание стен\n    end\n    set [скорость у направления игрока v] to [0]\nelse\n    change [в воздухе? v] by (1)\nend\n\ndefine изменить скорость х игрока на (скорость х)\nchange [игрок x v] by (скорость х)\nпозиция\nкасание стен\nif <(касается?) = [да]> then\n    set [скорость игрока х противоположность v] to (([abs v] of (скорость Х направления игрока) ) / (скорость Х направления игрока))\n    repeat until <(касается?) = [нет]>\n        if <(скорость игрока х противоположность) = [-1]> then\n            change [игрок x v] by (1)\n        else\n            change [игрок x v] by (-1)\n        end\n        позиция\n        касание стен\n    end\n    set [скорость х направления игрока v] to [0]\nend\n\ndefine камера в скроллинг (сглаживание) (x) (y)\nset [скроллинг х v] to ((скроллинг Х) + (((x) - (скроллинг Х)) / (сглаживание)))\nset [скроллинг у v] to ((скроллинг У) + (((y) - (скроллинг У)) / (сглаживание)))\nпозиция\n\ndefine рендер батута (x) (y) (ширена)\npen up\nset pen size to (30)\nset pen color to (#ffd900)\ngo to x: ((x) - (скроллинг Х)) y: ((y) - (скроллинг У))\npen down\ngo to x: ((x) - (скроллинг Х)) y: (((y) - (скроллинг У)) + ((ширена) / (-2)))\npen up\nset pen color to (#ffdc00)\nset pen size to (20)\nset pen size to (30)\nset [элемент +4 v] to [-90]\ngo to x: (((x) - (скроллинг Х)) + ((ширена) / (-2))) y: ((y) - (скроллинг У))\npen down\ngo to x: (((x) - (скроллинг Х)) + ((ширена) / (2))) y: ((y) - (скроллинг У))\npen up\ngo to x: (((x) - (скроллинг Х)) + ((ширена) / (-2))) y: ((y) - (скроллинг У))\npen up\nif <<<((скорость Х игрока) + (20)) > (((x) - (скроллинг Х)) + ((ширена) / (-2)))> and <((скорость Х игрока) + (-20)) < (((x) - (скроллинг Х)) + ((ширена) / (2)))>> and <<((скорость У игрока) + (20)) > (((y) - (скроллинг У)) + (-10))> and <((скорость У игрока) + (-20)) < (((y) - (скроллинг У)) + (10))>>> then\n    set [скорость у направления игрока v] to [17]\nend\n\ndefine рендер лавы горизонтали (x) (y) (ширена)\npen up\nset pen color to (#ff0000)\nset pen size to (20)\ngo to x: (((x) - (скроллинг Х)) + ((ширена) / (-2))) y: ((y) - (скроллинг У))\npen down\ngo to x: (((x) - (скроллинг Х)) + ((ширена) / (2))) y: ((y) - (скроллинг У))\nset pen (transparency v) to (80)\nset pen size to (50)\ngo to x: (((x) - (скроллинг Х)) + ((ширена) / (-2))) y: ((y) - (скроллинг У))\nif <<<((скорость Х игрока) + (20)) > (((x) - (скроллинг Х)) + ((ширена) / (-2)))> and <((скорость Х игрока) + (-20)) < (((x) - (скроллинг Х)) + ((ширена) / (2)))>> and <<((скорость У игрока) + (20)) > (((y) - (скроллинг У)) + (-10))> and <((скорость У игрока) + (-20)) < (((y) - (скроллинг У)) + (10))>>> then\n    рестарт\nend\n\nwhen [r v] key pressed\nрестарт\n\ndefine рендер портала (x) (y) (размер)\ngo to x: ((x) - (скроллинг Х)) y: ((y) - (скроллинг У))\nset pen color to (#5eff08)\nchange pen (color v) by (([cos v] of ((элемент +5) * (2)) ) * (40))\nset pen size to ((размер) + (15))\nset pen (transparency v) to (50)\npen down\npen up\nset pen size to (размер)\nset pen (transparency v) to (0)\npen down\npen up\nif <<<((скорость Х игрока) + (20)) > (((x) - (скроллинг Х)) + ((размер) / (-2)))> and <((скорость Х игрока) + (-20)) < (((x) - (скроллинг Х)) + ((размер) / (2)))>> and <<((скорость У игрока) + (20)) > (((y) - (скроллинг У)) + (-10))> and <((скорость У игрока) + (-20)) < (((y) - (скроллинг У)) + (10))>>> then\n    change [№ уровня v] by (1)\n    рендер\n    рестарт\nend\n\ndefine рендер лавы вертикали (x) (y) (высота)\npen up\nset pen color to (#ff0000)\nset pen size to (20)\ngo to x: ((x) - (скроллинг Х)) y: (((y) - (скроллинг У)) + ((высота) / (-2)))\npen down\ngo to x: ((x) - (скроллинг Х)) y: (((y) - (скроллинг У)) + ((высота) / (2)))\nset pen (transparency v) to (80)\nset pen size to (50)\ngo to x: ((x) - (скроллинг Х)) y: (((y) - (скроллинг У)) + ((высота) / (-2)))\nif <<<((скорость Х игрока) + (20)) > (((x) - (скроллинг Х)) + (-20))> and <((скорость Х игрока) + (-20)) < (((x) - (скроллинг Х)) + (20))>> and <<((скорость У игрока) + (20)) > (((y) - (скроллинг У)) + ((высота) / (-2)))> and <((скорость У игрока) + (-20)) < (((y) - (скроллинг У)) + ((высота) / (2)))>>> then\n    рестарт\nend\n\ndefine рендер фона\ngo to x: (0) y: (0)\nset pen color to (#003158)\nset pen size to (700)\npen down\npen up\n\ndefine рендер поверхности (ширена) (высота) (пx) (пy)\nchange [линия# v] by (1)\npen up\nset pen (transparency v) to (0)\nset pen (brightness v) to (100)\nset pen (saturation v) to (100)\nset pen color to (#795533)\nset pen size to (50)\ngo to x: ((пx) - (скроллинг Х)) y: ((пy) - (скроллинг У))\nchange x by ((ширена) / (-2))\nchange y by ((высота) / (2))\npen down\nchange x by (ширена)\nchange y by ((высота) * (-1))\nchange x by ((ширена) * (-1))\nchange y by (высота)\npen up\ngo to x: ((пx) - (скроллинг Х)) y: ((пy) - (скроллинг У))\nif <(ширена) > (высота)> then\n    change pen size by ((высота) / (2))\n    change x by (((ширена) / (-2)) + (25))\n    pen down\n    change x by ((ширена) - (50))\n    pen up\nelse\n    change pen size by (ширена)\n    change y by (((высота) / (-2)) + ((size) / (2)))\n    pen down\n    change y by ((высота) - (50))\n    pen up\nend\nadd (join (join (join (join ((пx) - (скроллинг Х)) [, ]) ((пy) - (скроллинг У))) [, ]) (join (join (ширена) [, ]) (высота))) to [уровень v]\nset pen (transparency v) to (50)\nконтур [20]\nset pen (transparency v) to (0)\nконтур [10]\n\ndefine подарок в (х) (у) (размер) (цвет)\nif <not <<([abs v] of (х) ) > [500]> or <([abs v] of (у) ) > [400]>>> then\n    if <(цвет) = [красный]> then\n        set pen color to (#fd0000)\n    else\n        if <(цвет) = [синий]> then\n            set pen color to (#2a00fd)\n        end\n    end\n    set pen (transparency v) to (50)\n    set pen size to ((размер) + (5))\n    pen up\n    go to x: ((х) - (размер)) y: ((у) - (размер))\n    pen down\n    change y by ((размер) * (2))\n    change x by ((размер) * (2))\n    change y by ((размер) * (-2))\n    change x by ((размер) * (-2))\n    pen up\n    set pen (transparency v) to (0)\n    set pen size to (размер)\n    pen up\n    go to x: ((х) - (размер)) y: ((у) - (размер))\n    pen down\n    change y by ((размер) * (2))\n    change x by ((размер) * (2))\n    change y by ((размер) * (-2))\n    change x by ((размер) * (-2))\n    pen up\n    go to x: (х) y: (у)\n    set pen size to ((размер) * (2))\n    pen down\n    pen up\n    if <(цвет) = [красный]> then\n        set pen color to (#fdce00)\n    else\n        if <(цвет) = [синий]> then\n            set pen color to (#fdaf57)\n        end\n    end\n    set pen size to ((размер) / (2))\n    go to x: ((х) + ((размер) * (1.2))) y: (у)\n    pen down\n    go to x: ((х) - ((размер) * (1.2))) y: (у)\n    pen up\n    go to x: (х) y: ((у) - ((размер) * (1.2)))\n    pen down\n    go to x: (х) y: ((у) + ((размер) * (1.2)))\n    go to x: ((х) - ((размер) * (0.7))) y: ((у) + ((размер) * (1.7)))\n    go to x: (х) y: ((у) + ((размер) * (1.2)))\n    go to x: ((х) + ((размер) * (0.7))) y: ((у) + ((размер) * (1.7)))\n    pen up\nend\n\ndefine елка в (х) (у) (размер)\nif <not <<([abs v] of (х) ) > [500]> or <([abs v] of (у) ) > [400]>>> then\n    set pen color to (#e69c00)\n    set pen size to ((размер) * (2))\n    pen up\n    go to x: (х) y: ((у) - ((размер) * (2)))\n    pen down\n    set y to (у)\n    pen up\n    set y to ((у) + ((размер) * (4)))\n    set pen color to (#2dd200)\n    pen down\n    go to x: ((х) + ((размер) / (2))) y: ((у) + ((размер) * (3)))\n    set x to (х)\n    change pen (brightness v) by (-5)\n    go to x: ((х) + (размер)) y: ((у) + ((размер) * (2)))\n    set x to (х)\n    change pen (color v) by (-5)\n    go to x: ((х) + ((размер) * (2))) y: (у)\n    set x to (х)\n    pen up\n    set pen color to (#2aca00)\n    set y to ((у) + ((размер) * (4)))\n    pen down\n    go to x: ((х) - ((размер) / (2))) y: ((у) + ((размер) * (3)))\n    set x to (х)\n    change pen (brightness v) by (-5)\n    go to x: ((х) - (размер)) y: ((у) + ((размер) * (2)))\n    set x to (х)\n    go to x: ((х) - ((размер) * (2))) y: (у)\n    set x to (х)\n    pen up\n    go to x: ((х) + ((размер) * (1.5))) y: (у)\n    set pen color to ((-909639680) + ((([sin v] of (элемент +5) ) * (256)) + (200)))\n    set pen size to (размер)\n    pen down\n    pen up\n    set pen (transparency v) to (70)\n    set pen size to ((размер) + (15))\n    pen down\n    pen up\n    go to x: ((х) - ((размер) * (1.3))) y: (у)\n    set pen (transparency v) to (0)\n    set pen color to ((-909639680) + (((([sin v] of (элемент +5) ) + (100)) * (256)) + (200)))\n    set pen size to (размер)\n    pen down\n    pen up\n    set pen (transparency v) to (70)\n    set pen size to ((размер) + (15))\n    pen down\n    pen up\n    go to x: (х) y: ((у) + ((размер) * (2.5)))\n    set pen (transparency v) to (0)\n    set pen color to ((-909639680) + (((([sin v] of (элемент +5) ) + (200)) * (256)) + (200)))\n    set pen size to (размер)\n    pen down\n    pen up\n    set pen (transparency v) to (70)\n    set pen size to ((размер) + (15))\n    pen down\n    pen up\nend\n\ndefine пушинка в (х) (у) (размер)\nif <not <<([abs v] of (х) ) > [500]> or <([abs v] of (у) ) > [400]>>> then\n    pen up\n    set pen color to (#f9f9f9)\n    set pen size to (размер)\n    go to x: (х) y: (у)\n    pen down\n    pen up\n    set pen (transparency v) to (50)\n    change pen size by (15)\n    pen down\n    pen up\nend\n\ndefine линия снега в (х) (у) (тип) (длина) (размер)\nif <not <<([abs v] of (х) ) > [500]> or <([abs v] of (у) ) > [400]>>> then\n    pen up\n    if <(тип) = [1]> then\n        go to x: ((х) - ((длина) / (2))) y: (у)\n        set pen size to (размер)\n        set pen color to (#ffffff)\n        pen down\n        set x to ((х) + ((длина) / (2)))\n        change pen size by (15)\n        set pen (transparency v) to (50)\n        go to x: ((х) - ((длина) / (2))) y: (у)\n    else\n        go to x: (х) y: ((у) - ((длина) / (2)))\n        set pen size to (размер)\n        set pen color to (#ffffff)\n        pen down\n        set y to ((у) + ((длина) / (2)))\n        change pen size by (15)\n        set pen (transparency v) to (50)\n        go to x: (х) y: ((у) - ((длина) / (2)))\n    end\n    pen up\nend\n\ndefine рестарт\nset [игрок x v] to [0]\nset [игрок y v] to [0]\n\nwhen flag clicked\nforever\n    play sound [barradeen-i-cant-take-my-eyes-out-of-you \(1\) v] until done\nend\n\ndefine рисовка the end \nset pen color to (#ff0000)\nchange pen (color v) by (([sin v] of ((элемент +5) * (3)) ) * (10))\nset pen size to (20)\nset pen (transparency v) to (80)\nрисовка [t] x: ((-75) - (скроллинг Х)) y: ((65) - (скроллинг У))\nchange pen (color v) by (10)\nрисовка [h] x: ((-50) - (скроллинг Х)) y: ((65) - (скроллинг У))\nchange pen (color v) by (10)\nрисовка [e] x: ((-25) - (скроллинг Х)) y: ((65) - (скроллинг У))\nchange pen (color v) by (10)\nрисовка [e] x: ((25) - (скроллинг Х)) y: ((65) - (скроллинг У))\nchange pen (color v) by (10)\nрисовка [n] x: ((50) - (скроллинг Х)) y: ((65) - (скроллинг У))\nchange pen (color v) by (10)\nрисовка [d] x: ((75) - (скроллинг Х)) y: ((65) - (скроллинг У))\nset pen (transparency v) to (0)\nset pen size to (5)\nset pen color to (#ffffff)\nрисовка [t] x: ((-75) - (скроллинг Х)) y: ((65) - (скроллинг У))\nрисовка [h] x: ((-50) - (скроллинг Х)) y: ((65) - (скроллинг У))\nрисовка [e] x: ((-25) - (скроллинг Х)) y: ((65) - (скроллинг У))\nрисовка [e] x: ((25) - (скроллинг Х)) y: ((65) - (скроллинг У))\nрисовка [n] x: ((50) - (скроллинг Х)) y: ((65) - (скроллинг У))\nрисовка [d] x: ((75) - (скроллинг Х)) y: ((65) - (скроллинг У))\n\n
Christmas is coming soon! and that's why I made this project first! this project was created for @Debility_Kheops contest\nI tried very hard.\nAdvertisement counter - 18\n\ncontrol:\n※ arrows to move\n※ awsd to move\n※ mouse to move\n※ R to restart\n※ enjoy the game!\n\nI made a regular platformer, just replaced it with a feather, there is nothing surprising here\nGo to explore \n\nthanks @CoolGolub for the music\n\nhappy new year!\n\nP.s in 6th place in contest by @Debility_kheops yey!