═нлллл┬┬┬╛╙╙╙╛┬┬┬╛ллл╛люл╛люл╛люлллЛН┬┬лН╙╙юН┬╗юНл╛юлю╛ююю╛ююю╛ююнлллл┬┬┬╛╙╙╙╛┬┬┬╛ллл╛ллл╛люл╛люлллЛН┬┬лН╙╙юН┬╗юНл╛юлл╛ююю╛ююю╛юю╛ллл╛╙╙╙╛╙╛╙╛╙йл╛╙╙╙▄┬┬┬люлнллнл╛л╙╙юЛ╛╙юН╙╙юН╙╙юН┬┬лНюЛНллНН╛ллл╛╙╙╙╛╙╛╙╛╙йл╛╙╙╙▄┬┬┬люлнллнл╛л╙╙юЛ╛╙юН╙╙юН╙╙юН┬┬лНюЛНллНН >ю?ЪЪЪЪЪЪЯЪЪЯЪЪЪЪЪЪЪЯЯЯЪЪЯЪЪЯЪЪЪЪЪЯЯЪЪЪЪЪЪЪЪЪЪЯЯЯЯЪЯЪЪЪЪЪЯЯЪЯЯЪЪЪЪЪЪЪЪЪЪЪЯЯЪЯЪЪЪЪЯЯЪЪЯЯЯЪЪЯЪЪЪЪЪЪЪЪЪЯЯЯЯЯЪЪЪЯЪЪЪЯЯЪЯЯЯЪЯЪЪЪЪЪЪЪЪЪЪЪЪЪЯЯЪЯЪЪЪЪЯЪЪЪЪЪЯЯЪЪЯЪЯящщщщщщщщщщ╙╙╙╙╙╙║╙╙║╙╙щщщщщя╙╙╙╙╙╙║ящщщщщщщщящ╙╙╙╙╙╙╙║╙щщщщщщщ╙╙╙╙╙╙╙щщщщщщщщщщ╙╙╙╙╙╙╙╙щщщщщщщллллллллллллллллллллллллллллллллллллллллэщщщщщщщщщщщмллллллллллллллллллллллллллллллллллллллллллллэщщщллллллллллллщщщщщщщллллллллллллллллллллллллллллллллллллллллщщщщщщщщщщщщщллллллллллллллллллллллллллллллллллллллллллллщщщщмлллллллллллщщщщщщмллллллллллллллллллллллллллллллллллллллллщщщщщщщщщщщщщлллллллллллллллллллллллллллллллллллллллллэщщщщщщщщщмллллллллщщщщщщлллллллллллллллллллллллллллллллллллллллллщщщщщщщщщщщщщлллллллллллллллллллллллллллллллллллллллллщщщщщщщщщщщлллллллллллщщмлллллллллллллллллллллллллллллллллллллллллщщщщщщщщщщщщщллллллллллллллллллллллллллллллллллллллллэщщщщщщщщщщщмллллллллллллллллллллллллллллллллллллллллллллллллллллллщщщщщщщщщщщщщллллллллллллллллллллллллллллллллллллллллщщщщщщщщщщщщщллллллллллллллллллллллллллллллллллллллллллллллллллллллэщщщщщщщщщщщмллллллллллллллллллллллллллллллллллллллллщщщщщщщщщщщщщлллллллллллллллллллллллллллллллллллллллллллллллллЪЪолллщщщщщщщщщщщлллллллллллллллллллллллллллллллллллллллллщщщщщщщщщщщщщллллллллллллллллллллллллллллллллллллллллллллллллЭЪЪЪлллэщщлллллщщмлллллллллллллллллллллллллллллллллллллллллщщщщщщщщщщщщщллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЗЪЪллллллллллллллллллллллллллллллллллллллллллллллллллллщщщщщщщщщщщщщлллллллллллллллллллллллллллллллллллллллллллллЭЪЪЪЗЪЪЪЪЪолллллллллллллллллллллллллллллллллллллллллллллллллллэщщщщщщщщщщщмлллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪЪЪ╞╙лллллллллллллллллллллллллллллллллллллллллллллллллллщщщщщщщщщщщлллллллллллллллллллллллллллллллллллллллллллллЭЪЪЪЪЪЪЪЪЪ?╙╙йцлллллллллллллллллллллллллллллллллллллллллллллллллэщщлллллщщмлллллллллллллллллллллллллллллллллллллллллллллЭЪЪЪЪЪЪЪЪЪ╞╙╙╙ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэщщлллллллллЭЪЪЪЪЪЪЪЪ÷╙╙ ╙йлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллщщщмллллллллЭЪЪЪЪЪЪЪЪ≥╙╙╙╙йллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэщщщщллллллллЭЪЪЪЪЪЪЪ÷≥╙╙╙╙йллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллщщщщщщщщщщллллллЪЪЪЪЪЪЪ÷≥╘╙╙╙ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэщщщщщщщщщщмлллллЧЪЪЪЪЪЪ÷≥≥╙╙йлллллллллллллллллллллллллллэщщллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллщщщщщщщщщщщщлллллЛЪЪСЪ?ОЧ9≥╘╙ллллллллллллллллллллллллллллщщщмллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэщщщщщщщщщщщщмлллллННЦЪ?НН>≥НнлллллллллллллллллллллллллллэщщщщллллллллллллллллллллллллллллллллллллллллллллллллллллллллллэщщщщщщщщщщщщмлллллллЦН>НН>нлллллллллллллллллллллллллллщщщщщщщщщщлллллллллллллллллллллллллллллллллллллллллллллллллллллллэщщщщщщщщщщщщмлллллллцл<лл<лллллл°≥≥≥≥≥йллллллллллллллэщщщщщщщщщщмллллллллллллллллллллллллллллллллллллллллллллллллллллллэщщщщщщщщщщщщмллллллллллллллллллл°≥≥≥≥╘Ы≥лллллллллллллщщщщщщщщщщщщллллллллллллллллллллллллллллллллллллллллллллллллллллллэщщщщщщщщщщщщмллллллллллллллллллл°≥≥≥≥≥ ≥ллллллллллллэщщщщщщщщщщщщмллллллллллллллллллллллллллллллллллллллллллллллллллллллщщщщщщщщщщщщллллллллллллллллллл°≥≥≥≥≥≥≥≥илллллллллллэщщщщщщщщщщщщмллллллллллллллллллллллллллллллллллллллллллллллллллллллэщщщщщщщщщщмллллллллллллллллллл°≥щщ²≥≥≥≥илллллллллллэщщщщщщщщщщщщмлллллллллллллллллллллллллллллллллллллллллллллллллллллллщщмллллэщщлллллллллллллллллллл°≥≥щDD■≥≥илллллллллллэщщщщщщщщщщщщмллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл°≥ыMDDD■≥илллллллллллэщщщщщщщщщщщщмллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл°≥щщMDO■≥иллллллллллллщщщщщщщщщщщщлллллЪЪолллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл°≥IDD@■≥иллллллллллллэщщщщщщщщщщмллллЭЪЪЪлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл°≥IHDD└■≥илллллллллллллщщмллллэщщлллЪЪЪЪЪЪЪЪЪлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллLDDHDдлллллллллллллллллллллллллллЭЪЪЪЪЪЪЪЪЪоллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллLDDDDдлллллллллллллллллллллллллллЪЪЪЪЪЪЪЪЪЪODлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллLдллллллллллллллллллллллллллллЭЪЪЪЪЪЪЪЪЪ?DDдцлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллLдллллллллллллллллллллллллллллЭЪЪЪЪЪЪЪЪЪODDDллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭЪЪЪЪЪЪЪЪъDDDдлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллдллщмLллллллллллллллллллллллллллЭЪЪЪЪЪЪЪЪщDDDDдлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллдллщмLллллллллллллллллллллллллллЭЪЪЪЪЪЪЪъщDDDDдлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллдллщмLлллллллллллллллллллллллллллЪЪЪЪЪЪЪъщMDDDллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллдллщмLлллллллллллллллллллллллллллЧЪЪЪЪЪЪъщщDDдллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллдллщмLлллллллллллллллллллллллллллЛЪЪСЪ?ОЧ=щMDллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллщмлллллллллллллллллллллллллллллННЦЪ?НН>щНнлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллщщмлллллллллллллллллллллллллллллллЦН>НН>нлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭЪЪщЪоллллллллллллллллллллллллллллллцл<лл<ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллтмдлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллщщмлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллдлдлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллдлдлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭЪЪлллллллллллллллллллллллдлдлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪоллллллллллллллллллллллйлйллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭЪЪЪЪЪЪЪЪоллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪЪЪлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭЪЪЪЪЪЪЪЪЪЪDдлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪЪЪCDD<ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪЪЪDDDдллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪЪMDD@DллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪъMDDDDллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪщMDDDDллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭЪЪЪЪЪЪЪщщDDDдллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЛЪЪЪЪЪЪЪщщMDDллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЧЪ?ЪЪСНъсщDдллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЛН>ЧЪЦННсМНллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл<ННЦННЦллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл<ллцллцлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭЪЪлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪолллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭЪЪЪЪЪЪЪЪоллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪЪЪлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭЪЪЪЪЪЪЪЪЪЪDдлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪЪЪCDD<ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪЪЪDDDдллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪЪMDD@DллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪъMDDDDллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪщMDDDDллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭЪЪЪЪЪЪЪщщDDDдллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЛЪЪЪЪЪЪЪщщMDDллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЧЪ?ЪЪСНъсщDдллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЛН>ЧЪЦННсМНллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл<ННЦННЦллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл<ллцллцлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭЪЪлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪолллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭЪЪЪЪЪЪЪЪоллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪЪЪлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭЪЪЪЪЪЪЪЪЪЪDдлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪЪЪCDD<ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪЪЪDDDдллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪЪMDD@DллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪъMDDDDллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЪЪЪЪЪЪЪЪщMDDDDллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭЪЪЪЪЪЪЪщщDDDдллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЛЪЪЪЪЪЪЪщщMDDллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЧЪ?ЪЪСНъсщDдллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЛН>ЧЪЦННсМНллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл<ННЦННЦллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл<ллцллцллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллХ9-- title: Sheep Dream Jump -- author: rina -- desc: Girl jumps from bed to flying sheep, sky darkens higher up -- script: lua SCREEN_W = 240 SCREEN_H = 136 GRAVITY = 0.11 JUMP_POWER = -4.55 MOVE_SPEED = 0.65 MOVE_ACCEL = 0.18 MOVE_FRICTION = 0.86 SHEEP_COUNT = 5 girl = {} sheep = {} sleepParticles = {} cameraY = 0 bestHeight = 0 gameOver = false bed = {} musicTimer = 0 musicStep = 1 gameOverSoundPlayed = false sheepPassed = 0 dreamScore = 0 difficultyBand = 1 melodyNotes = { "E-4","D-4","C-4","D-4", "E-4","D-4","C-4","A-3" } harmonyNotes = { "C-4","B-3","A-3","B-3", "C-4","B-3","A-3","F-3" } function clamp(v, a, b) if v < a then return a end if v > b then return b end return v end function skyColorByHeight(h) if h < 120 then return 12 end if h < 260 then return 13 end if h < 460 then return 1 end if h < 700 then return 14 end if h < 820 then return 5 end return 0 end function cloudColorByHeight(h) if h < 200 then return 13 end if h < 360 then return 14 end if h < 560 then return 12 end return 13 end function starColorByHeight(h) if h < 260 then return 13 end return 12 end function pickSheepType(index) local roll = math.random(1, 100) if index <= 2 then return "normal" end if difficultyBand <= 2 then if roll <= 72 then return "normal" end if roll <= 90 then return "sleepy" end return "gold" elseif difficultyBand <= 4 then if roll <= 58 then return "normal" end if roll <= 78 then return "sleepy" end if roll <= 92 then return "fragile" end return "gold" else if roll <= 48 then return "normal" end if roll <= 68 then return "sleepy" end if roll <= 88 then return "fragile" end return "gold" end end function resetGame() girl = { x = 104, y = 0, w = 20, h = 28, dx = 0, dy = 0, squish = 0, stretch = 0 } bed = { x = 86, y = 118, w = 68, h = 10 } girl.y = bed.y - girl.h sheep = {} sleepParticles = {} cameraY = 0 bestHeight = 0 gameOver = false musicTimer = 0 musicStep = 1 gameOverSoundPlayed = false sheepPassed = 0 dreamScore = 0 difficultyBand = 1 for i=1,SHEEP_COUNT do local sy = bed.y - 22 - i * 22 local zone = (i - 1) % 2 local nx if zone == 0 then nx = math.random(24, 88) else nx = math.random(132, 196) end addSheep(nx, sy, pickSheepType(i)) end end function addSheep(x, y, sheepType) local speed = 0.09 + math.random() * 0.12 local bobSpeed = 0.015 if sheepType == "sleepy" then speed = 0.05 + math.random() * 0.07 bobSpeed = 0.009 elseif sheepType == "gold" then speed = 0.11 + math.random() * 0.10 bobSpeed = 0.018 end table.insert(sheep, { x = x, baseY = y, y = y, w = 28, h = 10, drift = math.random() * 6.28, speed = speed, bob = math.random() * 6.28, bobSpeed = bobSpeed, type = sheepType or "normal", dead = false, fade = 0 }) end function addSleepParticle(x, y, kind) local text = "." local color = 15 local life = 40 local dx = (math.random() * 2 - 1) * 0.2 local dy = -0.25 - math.random() * 0.25 if kind == "z" then text = "z" color = 13 life = 42 dx = -0.15 + math.random() * 0.3 dy = -0.30 - math.random() * 0.20 elseif kind == "star" then text = "*" color = 12 life = 28 dx = -0.20 + math.random() * 0.4 dy = -0.22 - math.random() * 0.18 elseif kind == "spark" then text = "." color = 14 life = 24 dx = -0.30 + math.random() * 0.6 dy = -0.18 - math.random() * 0.15 elseif kind == "gold" then text = "+" color = 10 life = 34 dx = -0.20 + math.random() * 0.4 dy = -0.26 - math.random() * 0.16 end table.insert(sleepParticles, { x = x, y = y, dx = dx, dy = dy, life = life, maxLife = life, text = text, color = color }) end function spawnBounceParticles(x, y, sheepType) addSleepParticle(x - 2, y, "z") addSleepParticle(x + 2, y - 2, "star") addSleepParticle(x + 5, y - 1, "spark") if sheepType == "gold" then addSleepParticle(x + 1, y - 4, "gold") addSleepParticle(x + 6, y - 5, "gold") end end function spawnSleepTrail() if math.random(0, 24) == 0 then addSleepParticle(girl.x + 5, girl.y - cameraY + 3, "z") end end function spawnGameOverParticles() for i=1,10 do addSleepParticle( girl.x + math.random(0, 10), girl.y - cameraY + math.random(0, 12), (i % 2 == 0) and "z" or "star" ) end end function updateParticles() for i=#sleepParticles,1,-1 do local p = sleepParticles[i] p.x = p.x + p.dx p.y = p.y + p.dy p.life = p.life - 1 if p.life <= 0 then table.remove(sleepParticles, i) end end end function drawParticles() for i=1,#sleepParticles do local p = sleepParticles[i] local c = p.color if p.life < p.maxLife * 0.35 then c = 13 end print(p.text, p.x, p.y, c, false, 1, false) end end function playJumpSound() sfx(6, "A-2", 10, 0, 2, -3) end function playGameOverSound() sfx(2, "E-4", 18, 0, 1, -3) end function updateMusic() musicTimer = musicTimer + 1 if musicTimer >= 76 then musicTimer = 0 local note1 = melodyNotes[musicStep] local note2 = harmonyNotes[musicStep] sfx(4, note1, 20, 2, 5, -3) sfx(5, note2, 20, 3, 3, -3) musicStep = musicStep + 1 if musicStep > #melodyNotes then musicStep = 1 end end end function updateGirl() local targetDx = 0 if btn(2) then targetDx = -MOVE_SPEED elseif btn(3) then targetDx = MOVE_SPEED end girl.dx = girl.dx + (targetDx - girl.dx) * MOVE_ACCEL girl.dx = girl.dx * MOVE_FRICTION girl.x = girl.x + girl.dx girl.dy = girl.dy + GRAVITY girl.y = girl.y + girl.dy girl.squish = girl.squish * 0.82 girl.stretch = girl.stretch * 0.82 if girl.dy < -1.6 then girl.stretch = math.min(1.6, girl.stretch + 0.06) elseif girl.dy > 1.6 then girl.squish = math.min(1.6, girl.squish + 0.05) end if girl.x < -girl.w then girl.x = SCREEN_W end if girl.x > SCREEN_W then girl.x = -girl.w end end function updateSheep() for i=1,#sheep do local s = sheep[i] if s.dead then s.fade = s.fade + 1 else s.drift = s.drift + 0.01 s.bob = s.bob + s.bobSpeed s.x = s.x + math.sin(s.drift) * s.speed s.y = s.baseY + math.sin(s.bob) * 1.0 if s.x < -s.w then s.x = SCREEN_W end if s.x > SCREEN_W then s.x = -s.w end end end end function landsOnPlatform(px, py, pw, ph) local girlBottomPrev = (girl.y - girl.dy) + girl.h local girlBottomNow = girl.y + girl.h local overlapX = girl.x + girl.w > px and girl.x < px + pw local crossedTop = girlBottomPrev <= py and girlBottomNow >= py return overlapX and crossedTop end function bounceGirl(py, sheepType) girl.y = py - girl.h girl.dy = JUMP_POWER girl.squish = 1.8 girl.stretch = 0 sheepPassed = sheepPassed + 1 dreamScore = dreamScore + 1 if sheepType == "gold" then dreamScore = dreamScore + 4 end spawnBounceParticles(girl.x + 6, py - cameraY, sheepType) playJumpSound() end function checkLanding() if girl.dy <= 0 then return end if cameraY > -48 and landsOnPlatform(bed.x, bed.y, bed.w, bed.h) and girl.y < bed.y then bounceGirl(bed.y, "bed") return end for i=1,#sheep do local s = sheep[i] if not s.dead and landsOnPlatform(s.x, s.y, s.w, s.h) then bounceGirl(s.y, s.type) if s.type == "fragile" then s.dead = true end return end end end function updateCamera() local target = girl.y - 46 if target < cameraY then cameraY = cameraY + (target - cameraY) * 0.05 end local height = math.max(0, -math.floor(cameraY)) if height > bestHeight then bestHeight = height end difficultyBand = 1 + math.floor(height / 150) end function generateNextSheepPosition() local highestY = sheep[1].baseY for j=2,#sheep do if sheep[j].baseY < highestY then highestY = sheep[j].baseY end end local gap = 22 if difficultyBand >= 3 then gap = 24 end if difficultyBand >= 5 then gap = 26 end local attempts = 10 local newX = 20 while attempts > 0 do newX = math.random(20, SCREEN_W - 48) local ok = true for i=1,#sheep do local s = sheep[i] -- п©я─п╬п╡п╣я─я▐п╣п╪ я┌п╬п╩я▄п╨п╬ п╬п╡п╣я┤п╣п╨ п©я─п╦п╪п╣я─п╫п╬ я─я▐п╢п╬п╪ п©п╬ п╡я▀я│п╬я┌п╣ if math.abs((highestY - gap) - s.baseY) < 10 then if math.abs(newX - s.x) < 34 then ok = false break end end end if ok then break end attempts = attempts - 1 end local newY = highestY - gap return newX, newY end function recycleSheep() local bottomWorldY = cameraY + SCREEN_H + 16 for i=1,#sheep do local s = sheep[i] if s.dead and s.fade > 12 then s.y = bottomWorldY + 40 end if s.y > bottomWorldY then local nx, ny = generateNextSheepPosition() s.baseY = ny s.y = ny s.x = nx s.bob = math.random() * 6.28 s.dead = false s.fade = 0 s.type = pickSheepType(i) end end end function updateGameOver() if girl.y > cameraY + SCREEN_H + 26 then gameOver = true if not gameOverSoundPlayed then spawnGameOverParticles() playGameOverSound() gameOverSoundPlayed = true end end end function drawSoftCloud(x, y, c) circ(x + 5, y + 6, 5, c) circ(x + 12, y + 4, 6, c) circ(x + 20, y + 6, 5, c) rect(x + 5, y + 6, 16, 5, c) end function drawMoon(h) if h < 150 then return end local mx = 206 local my = 20 + math.sin(h / 70) * 2 local bg = skyColorByHeight(h) circ(mx, my, 13, 14) circ(mx, my, 11, 9) circ(mx, my, 8, 15) circ(mx, my, 6, 10) circ(mx + 4, my - 1, 6, bg) pix(mx - 4, my - 3, 15) pix(mx - 3, my - 4, 15) pix(mx - 2, my - 3, 15) end function drawBackground() local h = math.max(0, -math.floor(cameraY)) local bg = skyColorByHeight(h) cls(bg) local cloudCount = 5 if h > 500 then cloudCount = 3 end if h > 760 then cloudCount = 2 end local cc = cloudColorByHeight(h) for i=0,cloudCount-1 do local cx = (i * 53 + h // 5) % 280 - 20 local cy = ((i * 23 + h // 7) % 42) + 6 drawSoftCloud(cx, cy, cc) end drawMoon(h) if h > 140 then local c = starColorByHeight(h) local starCount = 10 if h > 300 then starCount = 16 end if h > 620 then starCount = 22 end for i=0,starCount do local sx = (i * 47 + h) % SCREEN_W local sy = (i * 29 + h // 2) % SCREEN_H pix(sx, sy, c) end end end function drawBed() local x = bed.x local y = bed.y - cameraY rect(x + 2, y + 8, 3, 6, 4) rect(x + bed.w - 5, y + 8, 3, 6, 4) rect(x, y + 4, bed.w, 6, 2) rect(x + 4, y, bed.w - 8, 6, 15) rect(x + 8, y - 2, 16, 5, 13) rect(x, y - 4, 4, 14, 4) rect(x + bed.w - 4, y - 2, 4, 12, 4) end function drawSheep(s) if s.dead and (s.fade % 4 >= 2) then return end local sx = s.x local sy = s.y - cameraY local faceColor = 4 local shadowColor = 13 if s.type == "gold" then faceColor = 10 shadowColor = 9 elseif s.type == "sleepy" then shadowColor = 14 elseif s.type == "fragile" then shadowColor = 12 end elli(sx + 14, sy + 9, 12, 3, 14) circ(sx + 6, sy + 5, 5, 15) circ(sx + 12, sy + 4, 6, 15) circ(sx + 19, sy + 5, 5, 15) circ(sx + 24, sy + 6, 4, 15) circ(sx + 11, sy + 7, 4, 15) circ(sx + 20, sy + 8, 3, shadowColor) circ(sx + 24, sy + 6, 4, faceColor) pix(sx + 21, sy + 3, 3) pix(sx + 28, sy + 3, 3) line(sx + 8, sy + 10, sx + 8, sy + 13, 3) line(sx + 13, sy + 10, sx + 13, sy + 13, 3) line(sx + 19, sy + 10, sx + 19, sy + 13, 3) pix(sx + 25, sy + 5, 0) if s.type == "sleepy" then print("z", sx + 29, sy - 2, 13) elseif s.type == "fragile" then line(sx + 7, sy + 2, sx + 10, sy + 6, 12) line(sx + 16, sy + 1, sx + 18, sy + 5, 12) elseif s.type == "gold" then pix(sx + 10, sy + 1, 10) pix(sx + 16, sy, 10) end end function drawGirl() local x = girl.x local y = girl.y - cameraY local ox = math.floor(x) local oy = math.floor(y) -- п▓п·п⌡п·п║п╚ я│п╥п╟п╢п╦ rect(ox + 3, oy + 2, 12, 8, 9) rect(ox + 1, oy + 5, 4, 7, 9) rect(ox + 15, oy + 5, 4, 7, 9) -- я┘п╡п╬я│я┌п╦п╨ rect(ox + 14, oy + 3, 4, 5, 9) rect(ox + 16, oy + 5, 3, 4, 9) -- п⌡п≤п╕п· rect(ox + 5, oy + 6, 10, 8, 4) -- п╖п│п⌡п п░ rect(ox + 4, oy + 3, 11, 4, 9) rect(ox + 3, oy + 5, 3, 3, 9) rect(ox + 13,oy + 5, 3, 3, 9) -- п╥п╡я▒п╥п╢п╬я┤п╨п╟ pix(ox + 14, oy + 2, 10) pix(ox + 15, oy + 3, 15) pix(ox + 13, oy + 3, 10) pix(ox + 14, oy + 4, 10) -- п⌠п⌡п░п≈п░ rect(ox + 7, oy + 9, 1, 2, 0) rect(ox + 12,oy + 9, 1, 2, 0) pix(ox + 7, oy + 9, 15) pix(ox + 12,oy + 9, 15) -- п═пёп°п╞п²п∙п╕ pix(ox + 6, oy + 11, 8) pix(ox + 13, oy + 11, 8) -- п═п·п╒ pix(ox + 10, oy + 12, 8) -- п╗п∙п╞ rect(ox + 9, oy + 14, 2, 2, 4) -- п▓п∙п═п╔ п÷п≤п√п░п°п╚ rect(ox + 7, oy + 16, 6, 3, 12) -- п²п·п╖п²пёп╗п п░ rect(ox + 6, oy + 19, 8, 4, 12) rect(ox + 5, oy + 23, 10, 2, 12) -- я┌п╣п╫я▄ п©п╦п╤п╟п╪я▀ rect(ox + 10, oy + 17, 3, 7, 13) -- п╫п╦п╥/п╨п╟п╧п╪п╟ rect(ox + 5, oy + 24, 10, 1, 15) -- п═пёп п≤ rect(ox + 4, oy + 17, 1, 5, 4) rect(ox + 15, oy + 17, 1, 5, 4) -- п²п·п⌠п≤ rect(ox + 8, oy + 25, 1, 5, 4) rect(ox + 12, oy + 25, 1, 5, 4) -- п╒п░п÷п·п╖п п≤ pix(ox + 8, oy + 30, 10) pix(ox + 12, oy + 30, 10) end function drawUI() rect(0, 0, 240, 18, 1) print("DREAM HEIGHT "..bestHeight, 4, 2, 15) print("SHEEP "..sheepPassed, 4, 10, 13) print("DREAM "..dreamScore, 86, 10, 10) if bestHeight < 120 then print("DOZING...", 166, 2, 15) elseif bestHeight < 320 then print("SHE IS DREAMING", 132, 2, 13) else print("DEEP SLEEP", 162, 2, 12) end end function drawGameOver() rect(44, 40, 152, 46, 1) rectb(44, 40, 152, 46, 15) print("SHE FELL ASLEEP", 74, 50, 15) print("DREAM HEIGHT "..bestHeight, 66, 60, 12) print("DREAM "..dreamScore, 92, 68, 10) print("PRESS Z/X TO RESTART", 60, 78, 13) end function TIC() if gameOver then updateParticles() drawBackground() if cameraY > -48 then drawBed() end for i=1,#sheep do drawSheep(sheep[i]) end drawGirl() drawParticles() drawUI() drawGameOver() if btnp(4) or btnp(5) then resetGame() end return end updateMusic() updateGirl() updateSheep() checkLanding() updateCamera() recycleSheep() updateGameOver() spawnSleepTrail() updateParticles() drawBackground() if cameraY > -48 then drawBed() end for i=1,#sheep do drawSheep(sheep[i]) end drawGirl() drawParticles() drawUI() end resetGame()