########################################### # # Snow Daze # # Clear all the snow off your driveway # before you're late for work! # Press ASWD to move around the driveway # and press E to shovel snow behind you. # Runs best at 100 cycles/frame. # # Created for the 2015 CCP Game Jam # Theme: Winter # ########################################### :alias px va :alias py vb :alias dir vc :alias frame vd :alias timer v9 :alias timerx v8 :alias endflag v7 :const LEFT 45 :const RIGHT 0 :const TICK_TIME 8 :const SNOWFALL 8 : draw-image v0 := 0 v1 := 0 v2 := 32 loop sprite v0 v1 0 i += v2 v0 += 16 if v0 == 128 begin v0 := 0 v1 += 16 end if v1 != 64 then again ; : draw-player i := person-r i += dir i += frame sprite px py 15 ; : do-snow i := snow v3 := 0 loop v1 := random 0b111111 v1 += 32 v2 := random 0b11111 v2 += 16 sprite v1 v2 15 v0 := 5 wait v3 += 1 if v3 != SNOWFALL then again ; : do-scoop frame := 15 draw-player v0 := 5 gamewait draw-player frame := 30 draw-player v0 := 5 gamewait draw-player frame := 0 v1 := py i := snow :macro scoop DELTA1 DELTA2 { v0 := px v0 += DELTA1 sprite v0 v1 15 if vf == 0 begin sprite v0 v1 15 else v0 += DELTA2 sprite v0 v1 15 if vf == 1 then sprite v0 v1 15 end } if dir == LEFT begin scoop -8 16 else scoop 8 -16 end ; : move-player vf := 5 if vf key begin if py != 10 then py += -1 end vf := 8 if vf key begin if py != 0x31 then py += 1 end vf := 7 if vf key begin px += -1 dir := LEFT end vf := 9 if vf key begin px += 1 dir := RIGHT end vf := 6 if vf key then do-scoop ; : countdown if timer == 0 begin timer := TICK_TIME vf := 4 i := timeslice sprite timerx vf 3 timerx += -1 if timerx == 3 then endflag := 1 else timer += -1 end ; : gamewait loop sync countdown v0 += -1 if v0 != 0 then again ; : wait loop sync v0 += -1 if v0 != 0 then again ; : game-over draw-player v0 := 20 wait v1 := 32 v2 := 15 v3 := 0 i := block loop sprite v1 v2 0 if vf != 0 then v3 += 1 v0 := 5 wait sprite v1 v2 0 v1 += 16 if v1 == 96 begin v1 := 32 v2 += 16 end if v2 != 63 then again i := bighex v3 v1 := 60 v2 := 14 sprite v1 v2 10 v0 := 20 wait v0 := key setup ; : sync loop vf := delay if vf != 0 then again vf := 2 delay := vf ; : intro-num i := bighex v0 v1 := 60 v2 := 14 sprite v1 v2 10 v0 := 10 wait sprite v1 v2 10 ; : setup clear i := background draw-image timerx := 123 timer := 0 px := 64 py := 32 endflag := 0 draw-player do-snow v0 := 10 wait v0 := 3 intro-num v0 := 2 intro-num v0 := 1 intro-num ; : main hires setup loop draw-player move-player draw-player countdown if endflag == 1 then game-over sync again : timeslice 0x80 0x80 0x80 : block 0x00 0x00 0x7F 0xFE 0x7F 0xFE 0x7F 0xFE 0x7F 0xFE 0x7F 0xFE 0x7F 0xFE 0x7F 0xFE 0x7F 0xFE 0x7F 0xFE 0x7F 0xFE 0x7F 0xFE 0x7F 0xFE 0x7F 0xFE 0x7F 0xFE 0x00 0x00 : snow 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x7E 0x7E 0x7E 0x00 : person-r 0x38 0x38 0x28 0x3C 0x78 0x70 0x78 0x78 0xF8 0xF8 0xFB 0x7F 0x4F 0x4B 0x6C : scoop1-r 0x00 0x1C 0x1C 0x14 0x1E 0x7C 0xF8 0xF8 0xFC 0xFC 0xFC 0x7F 0x4F 0x4F 0x6F : scoop2-r 0xC0 0xCE 0x4E 0x6A 0x7F 0xFE 0x78 0x7E 0x7C 0xF8 0xF8 0xF8 0x38 0x48 0x6C : person-l 0x1C 0x1C 0x14 0x3C 0x1E 0x0E 0x1E 0x1E 0x1F 0x1F 0xDF 0xFE 0xF2 0xD2 0x36 : scoop1-l 0x00 0x38 0x38 0x28 0x78 0x3E 0x1F 0x1F 0x3F 0x3F 0x3F 0xFE 0xF2 0xF2 0xF6 : scoop2-l 0x03 0x73 0x72 0x56 0xFE 0x7F 0x1E 0x7E 0x3E 0x1F 0x1F 0x1F 0x1C 0x12 0x36 : background # (1024 bytes) 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xE0 0x00 0xEF 0xFF 0xEF 0xFF 0xEF 0xFF 0xE0 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFE 0xFF 0xFE 0xFF 0xFF 0x00 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x00 0xFF 0xFF 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0x00 0x00 0x00 0x00 0xFF 0xFF 0x00 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x00 0xFF 0xFF 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xFF 0x00 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x00 0xFF 0xFF 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xFF 0x00 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x00 0xFF 0xFF 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xFF 0x00 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x00 0xFF 0xFF 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x7F 0xFF 0x7F 0xFF 0xFF 0xFF 0x00 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x00 0xFF 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x07 0xFF 0xF7 0xFF 0xF7 0xFF 0xF7 0x00 0x07 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFC 0xFF 0xFE 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFE 0xFF 0xFF 0xFF 0xFF 0xF8 0xFB 0x00 0x00 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFC 0xFF 0xFC 0xFF 0xEE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFE 0xFF 0xFC 0xFF 0xF8 0xFF 0xB8 0xFF 0xF0 0x8F 0xC0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x5F 0xFF 0x7F 0xFF 0x7F 0xFF 0x7F 0xFF 0x3F 0xFF 0x5F 0xFF 0x7F 0xFF 0x7F 0xFF 0x3F 0xFF 0x3E 0xFF 0x3F 0xFF 0x1F 0xFF 0x0F 0xDF 0x01 0xFF 0x00 0x3D 0x00 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x7F 0xFF 0xFF 0xFF 0xFF 0xFE 0x1F 0x00 0x00