From 2f98a2fa26550b718f431983252e685175efe05c Mon Sep 17 00:00:00 2001 From: James Turk Date: Tue, 7 Mar 2023 19:29:31 -0600 Subject: [PATCH] pico8 init --- .gitignore | 2 + improv.p8 | 100 +++++++++++++ snowdogs.p8 | 397 ++++++++++++++++++++++++++++++++++++++++++++++++++++ toomgis.p8 | 65 +++++++++ yoyodyne.p8 | 192 +++++++++++++++++++++++++ 5 files changed, 756 insertions(+) create mode 100644 .gitignore create mode 100644 improv.p8 create mode 100644 snowdogs.p8 create mode 100644 toomgis.p8 create mode 100644 yoyodyne.p8 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..981918b --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.log +demos diff --git a/improv.p8 b/improv.p8 new file mode 100644 index 0000000..ab9f67d --- /dev/null +++ b/improv.p8 @@ -0,0 +1,100 @@ +pico-8 cartridge // http://www.pico-8.com +version 41 +__lua__ + + + +-- letter select +letters = { + "a", "b", "c", "d", "e", "f", + "g", "h", "i", "j", "k", "l", + "m", "n", "o", "p", "q", "r", + "s", "t", "u", "v", "w", "x", + "y", "z", "_", "<", "★" +} +lsel = { + pos = 1, + row_w = 13, + word = "" +} + +function _draw() + cls() + lsel:draw(10, 10) +end + +function _update() + lsel:update() +end + +function lsel:update() + if btnp(⬅️) then + self.pos -= 1 + elseif btnp(➡️) then + self.pos += 1 + elseif btnp(⬇️) then + self.pos += self.row_w + elseif btnp(⬆️) then + self.pos -= self.row_w + elseif btnp(🅾️) then + letter = letters[self.pos] + if letter == "_" then + self.word = self.word.." " + elseif letter == "<" then + self.word = sub(self.word, 0, #self.word-1) + else + self.word = self.word..letter + end + end +end + +function lsel:draw(x, y) + local cx = x + for i,l in pairs(letters) do + if i == lsel.pos then + print(l, cx, y, 7) + rect(cx-2, y-2, cx+4, y+6, 10) + else + print(l, cx, y, 1) + end + cx += 8 + if i>0 and i%self.row_w==0 then + y += 8 + cx = x + end + end + print(self.word) +end +__gfx__ +00000000000000bbbbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000bbcccccbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000bcccccccccb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +8000000000bccc88888cccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +c80000000bccc8000008cccb00000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +cc8000000bcc800000008ccb0000008c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +ccc800000bcc800000008ccb000008cc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +cccc80000bcc800000008ccb00008ccc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +bcccc8000bccc8000008cccb0008cccc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0bcccc8000bccc88888cccb0008ccccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00bcccc8000bcccccccccb0008ccccb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000bcccc8000bbcccccbb0008ccccb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000bcccc80000bbbbb00008ccccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000bcccc8000000000008ccccb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000bcccc80000000008ccccb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000bcccc800000008ccccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000bcccc8000008ccccb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000bccc8000008cccb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/snowdogs.p8 b/snowdogs.p8 new file mode 100644 index 0000000..7827e4c --- /dev/null +++ b/snowdogs.p8 @@ -0,0 +1,397 @@ +pico-8 cartridge // http://www.pico-8.com +version 41 +__lua__ +-- snow dogs +-- by jpt + + +function _init() + create_particles() +end + +function _update() + update_snow() + if mode == "title" then + update_title() + elseif mode == "game" then + handle_input() + update_trees() + end +end + +function _draw() + if mode == "title" then + draw_title() + draw_snow() + elseif mode == "game" then + draw_game() + draw_snow() + --pdebug() + draw_hud() + end +end + + +function draw_game() + cls() + rectfill(0,0,128,128, 6) + draw_dog(5, 0, 0) + draw_dog(5, 0, 1) + draw_dog(6, 1, 0) + draw_dog(7, 1, 1) + draw_dog(7, 0, 2) + draw_dog(6, 1, 2) + draw_trees() +end + + +-->8 +-- particles + +particles = {} +max_x = 200 + +function create_particles() + for i=1,300 do + particles[i] = { + y=rnd(128)-128, + x=rnd(max_x), + dir=rnd(2)-1 + } + end +end + +function draw_snow() + for p in all(particles) do + pset(p.x, p.y, 7) + end +end + +function update_snow() + for p in all(particles) do + p.x += p.dir - steering + p.y += 1 + speed + if p.y > 128 or p.x < 0 then + p.y = 0 + p.x = rnd(max_x) + end + end +end + +-->8 +-- game entities + +function draw_dog(dog_n, x, y) + -- x is 0..1 + -- y is 0..4 + dog_x = ( + 74 - (16 * x) + + (steering*4*y) + ) + -- grey transparency + palt(0b000001000000000) + spr(dog_n, dog_x, + 128-(16*(y+1)), 1, 2) + palt() +end + +function draw_tree(x, y) + spr(11, x, y, 1, 2) +end + +function pdebug() + print("sledx "..sled_x, 0, 0, 11) + print("speed "..speed) +end + +function draw_trees() + for i=1,8 do + draw_tree( + left_wall[i]-8 - sled_x + 64, + (i-1)*16 + ) + draw_tree( + right_wall[i] - sled_x + 64, + (i-1)*16 + ) + end +end + +function update_trees() + local new_dist = distance + speed + if flr(new_dist / 16) > flr(distance / 16) then + for i = 8,2,-1 do + left_wall[i] = left_wall[i-1] + right_wall[i] = right_wall[i-1] + end + left_wall[1] = left_wall[2] + rnd(21) - 10 + right_wall[1] = right_wall[2] + rnd(21) - 10 + end +end + +function draw_hud() + rectfill(14,0,114,4,7) + rectfill(14,1,14+distance/10000*100,3,11) + for l=0,5 do + print("🐱", 1, 1+l*7, 7) + end +end +-->8 +-- global state + +mode = "title" +steering = 0 +speed = 1 +distance = 0 +sled_x = 64 + +left_wall = { + 22, 20, 20, 18, + 18, 16, 16, 16, +} + +right_wall = { + 112, 112, 114, 114, + 116, 118, 118, 118 +} + +-->8 +-- input processing + +function handle_input() + if btn(0) then + steering = -1 + elseif btn(1) then + steering = 1 + else + steering = 0 + end + + if btn(2) then + speed = 2 + else + speed = 1 + end + distance += speed + sled_x += steering * speed +end +-->8 +-- title + +title_y = 0 +title_stretch = 0 +title_rainbow = 0 +title_susan = -40 +title_89 = 40 + +function update_title() + if title_y < 50 then + title_y += 1 + elseif title_stretch < 16 then + title_stretch += 1 + end + if title_stretch == 16 and title_susan < 30 then + title_susan += 1 + title_89 -= 1 + end + + if btnp(4) then + mode = "game" + end +end + +function draw_title() + cls(0) + + if title_susan then + print("susan butcher's", + title_susan, + title_susan + 10, 12) + end + + pal(8, 8+t()%6) + pal(12, 8+(t()+4)%6) + sspr(48, 24, 54, 16, + 40-title_stretch, + title_y, + 54+title_stretch*2, + 16+title_stretch) + sspr(104, 24, 16, 16, + 70+title_89, + 100+title_89, + 48, 48) +end +__gfx__ +00000000644444466444444667c7c7c6666666666666666666666666666666660000000000033000666666666666666600000000666666666666666600000000 +000000006499994664999946c777777c666666666666666666666666556666550000000000033000666336666663766600000000466666646666666600000000 +00700700693993966939939677077077666666666666666666666666565555650000000000333300666336666663366600000000446666444666666600000000 +00077000699999966999999d77777777666666666466664660066776665555660000000000333300663333666633776600000000444664446666666600000000 +0007700069999996699999dd77788777666666666444444666007766655555560000000003333330663333666637736600000000646666466666666600000000 +00700700699ee996699ee9dd67777776666666666644446666777066655555560000000000044000663333666633336600000000664444666666666600000000 +0000000066999966669999dd66777766666666666644446666070066665555660000000000044000633333366333777600000000660440666666666600000000 +0000000066699666666996dd67777776666666666664466666677666666556660000000000044000633333366377733600000000664444444444446600000000 +000000006dd99dd66dd99ddd77777777666666666664466666707766665555660000000000000000633333366333333600000000664444044444444600000000 +00000000ddddddddddddddd677677677666666666644446666077766655555560000000000000000333333333333777700000000666440044444444400000000 +00000000dd2222dddd22222677677677666666666644446666770066655555560000000000000000333333337777733300000000666440444444444400000000 +00000000dd2222dddd22222677677667666666666644446666770766655555560000000000000000666446666664466600000000666666444444444600000000 +00000000dd2222dddd22222666677766666666666644446666077766655555560000000000000000666446666664466600000000666666446666644600000000 +00000000dd2222dddd22222666777776666666666644446666077766655555560000000000000000666446666664466600000000666666446666644600000000 +00000000d222222dd222222667777776666666666644446666677666665555660000000000000000666446666664466600000000666666446666644600000000 +00000000622222266222222667777776666666666664466666607666666556660000000000000000666446666664466600000000666666046666604600000000 +00000000622222266666666666666666666666660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000622662266666666666666666666666660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000622662266666666666666666666666660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000622662266666666666666666666666660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000622662266666666666666666666666660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000622662266666666666666666666666660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000666666666666666666666666666666660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000666666666666666666666666666666660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000666666666666666666666666000000000000000066660666600066660666600066000666666000066000666600000000080000000000000000000000 +00000000666666666666666666666666000000000000000066660666660066660666600600600660000600666600666660000000800888800088880000000000 +00000000666666666666666666666666000000000000000006600660066006600066006600660660000606600660660066000000008000080000008000000000 +00000000666666666666666666666666000000000000000006600660006006600066006600660666666606600660660006000000008000080000008000000000 +00000000666666666666666666666666000000000000000006600660006006600066006666660666660006600660660006000000000888800088888000000000 +00000000666666666666666666666666000000000000000006600660066006600066006600660660660006600660660066000000008000080000008000000000 +00000000666666666666666666666666000000000000000066660666660066660066006600660660066000666600666660000000008000080000008000000000 +00000000666666666666666666666666000000000000000066660666600066660066006600660660006600066000666600000000000888800088880000000000 +__label__ +60606060600000000060000000006000000000000000000000000000000000000000000000000000000000000000000000006000000000600000000060606060 +00000000006000000000600000000060000000000000000000000000000000000000000000000000000000000000000000600000000060000000006000000000 +00000000000060000000006000000000606000000000000000000000000000000000000000000000000000000000006060000000006000000000600000000000 +60606000000000600000000060000000000060000000000000000000000000000000000000000000000000000000600000000000600000000060000000006060 +00000060000000006000000000600000000000606000000000000000000000000000000000000000000000006060000000000060000000006000000000600000 +00000000600000000060000000006000000000000060606060606060606060600060606060606060606060600000000000006000000000600000000060000000 +60600000006000000000000000000060000000000000000000000000000000006000000000000000000000000000000000600000000000000000006000000060 +00006000000060000000600000000000606000000000000000000000000000000000000000000000000000000000006060000000000060000000600000006000 +00000060000000600000006000000000000060606060606060606060606060606060606060606060606060606060600000000000006000000060000000600000 +60000000600000006000000060000000000000000000000000000000606060606060606060000000000000000000000000000000600000006000000060000000 +00600000000000000000000000606000000000000000000060606060606060606060606060606060600000000000000000006060000000000000000000000060 +00006000006000000060000000000060606060606060606060606060606000000000006060606060606060606060606060600000000000600000006000006000 +00000000000060000000600000000000000000000000606060606060606060606060606060606060606060000000000000000000000060000000600000000000 +60000060000000600000006060000000000000006060606060600000000000000000000000000060606060606000000000000000606000000060000000600000 +00000000600000006000000000606060606060606060606000000000000000000000000000000000006060606060606060606060000000006000000060000000 +00600000000000000060000000000000000000606060606060606060606060606060606060606060606060606060000000000000000000600000000000000060 +00006000006000000000600000000000006060606060000000000000000000000000000000000000000000606060606000000000000060000000006000006000 +00000060000060000000006060606060600060600000000000000000000000000000000000000000000000000060600060606060606000000000600000600000 +60000000000000600000000000000000606060606060606060606060606000000000006060606060606060606060606060000000000000000060000000000000 +00600000600000006000000000000060606060000000000000000000000060606060600000000000000000000000606060600000000000006000000060000060 +00000000006000000060606060606060606000000000000000000000000000000000000000000000000000000000006060606060606060600000006000000000 +00006000000060000000000000006060606060606060606060000000000000000000000000000000606060606060606060606000000000000000600000006000 +60000060000000600000000000606060600000000000000000606000000000000000000000006060000000000000000060606060000000000060000000600000 +00000000000000006060606060006060000000000000000000000060606000000000006060600000000000000000000000606000606060606000000000000000 +00600000600000000000000000606000606060606060000000000000000060606060600000000000000000606060606060006060000000000000000060000060 +00006000006000000000006060600060000000000000600000000000000000000000000000000000000060000000000000600060606000000000006000006000 +00000000000060606060600060606000000000000000006060000000000000000000000000000000606000000000000000006060600060606060600000000000 +60000060000000000000006060606060606060600000000000600000000000000000000000000060000000000060606060606060606000000000000000600000 +00600000600000000000606060600000000000006000000000006060000000000000000000606000000000006000000000000060606060000000000060000060 +00000000006060606060000060000000000000000060000000000000606060600060606060000000000000600000000000000000600000606060606000000000 +00006000000000000000606000606060606000000000600000000000000000006000000000000000000060000000006060606060006060000000000000006000 +60000060000000000060606060000000000060000000006000000000000000000000000000000000006000000000600000000000606060600000000000600000 +00600000606060606060606000000000000000600000000060600000000000000000000000000060600000000060000000000000006060606060606060000060 +00000000000000000000000060606060600000006000000000006000000000000000000000006000000000006000000060606060600000000000000000000000 +00006000000000006060606000000000006000000060000000000060600000000000000060600000000000600000006000000000006060606000000000006000 +60000060606060606060600000000000000060000000600000000000006060606060606000000000000060000000600000000000000060606060606060600000 +00000000000000000000006060606060000000000000006000000000000000000000000000000000006000000000000000606060606000000000000000000000 +00600000000000606060600000000000600000600000000060000000000000000000000000000000600000000060000060000000000060606060000000000060 +00006060006060600000000000000000000000006000000000600000000000000000000000000060000000006000000000000000000000000060606000606000 +60000000600000006060006060606000006000000060000000006060000000000000000000606000000000600000006000006060606000606000000060000000 +00600000000060606000600000000060000060000000600000000000606060606060606060000000000060000000600000600000000060006060600000000060 +00006060606000000060000000000000000000600000006000000000000000000000000000000000006000000060000000000000000000600000006060606000 +00000000000060606000606060600000600000000000000060000000000000000000000000000000600000000000000060000060606060006060600000000000 +60000000006000000060000000006000006000006000000000606000000000000000000000006060000000006000006000006000000000600000006000000000 +00606060600060606000000000000060000000000060000000000060606060606060606060600000000000600000000000600000000000006060600060606060 +00000000006000000000606060000000000060000000600000000000000000000000000000000000000060000000600000000000606060000000006000000000 +00000000600060600060000000600000600000600000006000000000000000000000000000000000006000000060000060000060000000600060600060000000 +60606060006000006000000000006000000000000000000060606060606060606060606060606060600000000000000000006000000000006000006000606060 +00000000000060600060606060000060006000006000000000000000000000000000000000000000000000006000006000600000606060600060600000000000 +00000000600000006000000000600000000060000060000000000000006060606060606000000000000000600000600000000060000000006000000060000000 +60606060006060000000000000006000600000000000606060606060606060606060606060606060606060000000000060006000000000000000606000606060 +00000000600000600060606060000000000000600000000000000000606060606060606060000000000000000060000000000000606060600060000060000000 +00000060006000006000000000000060006000006000000000006060606060000000606060606000000000006000006000600000000000006000006000600000 +60606000000060600000000000600000000060000060606060600060600000000000000060600060606060600000600000000060000000000060600000006060 +00000000606000000060606000006000600000000000000000006060006060606060606000606000000000000000000060006000006060600000006060000000 +00000060000060006000000060000000000000600000000000606060600000000000000060606060000000000060000000000000600000006000600000600000 +60606000600000600000000000600060006000006060606060606000000000000000000000006060606060606000006000600060000000000060000060006060 +00000000006000000060606000006000000060000000000000000060006060606060606000600000000000000000600000006000006060600000006000000000 +00000060000060006000000060000000600000600000000060606000600000000000000060006060600000000060000060000000600000006000600000600000 +60606000600000600000000000600060006000006060606000000060000000000000000000600000006060606000006000600060000000000060000060006060 +00000060006000000060606000000000000000000000000060600000006060606060606000000060600000000000000000000000006060600000006000600000 +00000000600060006000000060006000600060000000006000006000600000000000000060006000006000000000600060006000600000006000600060000000 +60606000000000600000000000600060000000606060600060000060000000000000000000600000600060606060000000600060000000000060000000006060 +00000060006000000060606060000000006000000000006000600000000060606060600000000060006000000000006000000000606060600000006000600000 +00006000600060006000000000006000600060000000000060006000006000000000006000006000600000000000600060006000000000006000600060006000 +60600000000000600000000000600060000000606060600000000000600000000000000060000000000060606060000000600060000000000060000000000060 +00000060006000000060606060006000006000000000006000600060000000000000000000600060006000000000006000006000606060600000006000600000 +00006000600060006000000000600000600060000000600060000000000060606060600000000000600060000000600060000060000000006000600060006000 +00600000000000600000000000000060000000600060000000006000006000000000006000006000000000600060000000600000000000000060000000000060 +60000060006000000060606060006000006000006000006000600000600000000000000060000060006000006000006000006000606060600000006000600000 +00006000000060006000000000600000600060000000600000000060000000000000000000600000000060000000600060000060000000006000600000006000 +60600000600000000000000000006060000000606060000060000000000000000000000000000000600000606060000000606000000000000000000060000060 +00000060006000600000606060600000606000000000000000006000000060606060600000006000000000000000006060000060606060000060006000600000 +00006000000000000060000000000060000060000000006000600000006000000000006000000060006000000000600000600000000000600000000000006000 +60600000600060006000000000006000006000606060600000000000600000000000000060000000000060606060006000006000000000006000600060000060 +00000060000000000000606060600060600000000000000060000060000000000000000000600000600000000000000060600060606060000000000000600000 +00000000006000600060000000006000006060000000006000000000000000000000000000000000006000000000606000006000000000600060006000000000 +60606000600060000000000000000060600000606060600000006000000000000000000000006000000060606060000060600000000000000000600060006060 +00000000000000006000006060606000606060000000000000600000000060606060600000000060000000000000606060006060606000006000000000000000 +00000060006000600000600000000060000000600000000060000000606000000000006060000000600000000060000000600000000060000060006000600000 +60606000000000000060000000000000606060006060606000000060000000000000000000600000006060606000606060000000000000600000000000006060 +00000000600060000000000060606060000000600000000000006000000000000000000000006000000000000060000000606060600000000000600060000000 +00000060000000006000006000000000606060006000000000600000000000000000000000000060000000006000606060000000006000006000000000600000 +60606000006000600000600000000000006060600060606060000000000000606060000000000000606060600060606000000000000060000060006000006060 +00000000600000000060000060606060600060006000000000000000006060000000606000000000000000006000600060606060600000600000000060000000 +00000000000060000000000000000000006000600060000000000060600000000000000060600000000000600060006000000000000000000000600000000000 +60606060000000006000006000000000000060606000606060606000000000000000000000006060606060006060600000000000006000006000000000606060 +00000000006000600000600000006060606060606060000000000000000000000000000000000000000000606060606060606000000060000060006000000000 +00000000600000000060000000600000000000606000600000000000000000606060000000000000000060006060000000000060000000600000000060000000 +60606060000060000000000060000000000000006060006060606060606060000000606060606060606000606000000000000000600000000000600000606060 +00000000000000006000006000000060606060600060600000000000000000000000000000000000000060600060606060600000006000006000000000000000 +60000000006000000000600000006000000000006060606060000000000000000000000000000000606060606000000000006000000060000000006000000000 +00606060600000600000000000600000000000000000606000606060606060606060606060606060006060000000000000000060000000000060000060606060 +00000000000060000060000060000000606060606060606060600000000000000000000000000060606060606060606060000000600000600000600000000000 +60000000006000006000006000000060000000000000006060606060000000000000000000606060606000000000000000600000006000006000006000000000 +00606060600000000000000000006000000000000000000060606060606060606060606060606060600000000000000000006000000000000000000060606060 +60000000000000600000600000600000000060606060606060606060606000000000006060606060606060606060600000000060000060000060000000000000 +00600000000060000060000000000000006000000000000000006060606060606060606060606000000000000000006000000000000000600000600000000060 +60006060606000000000000060000000600000000000000000000000006060606060606000000000000000000000000060000000600000000000006060606000 +60600000000000006000006000000060000000006060606060606060606060606060606060606060606060606000000000600000006000006000000000000060 +00006000000000600000000000006000000000600000000000000000000000000000000000000000000000000060000000006000000000000060000000006000 +60600060606060000000600000600000000060000000000000000000000000000000000000000000000000000000600000000060000060000000606060600060 +00006000000000000060000000000000006000000000006060606060606060606060606060606060606000000000006000000000000000600000000000006000 +60600060000000006000000060000000600000000060600000000000000000000000000000000000000060600000000060000000600000006000000000600060 +60606000606060600000006000000060000000006000000000000000000000000000000000000000000000006000000000600000006000000060606060006060 +00000000000000000000600000006000000000600000000000000000606060606060606060000000000000000060000000006000000060000000000000000000 +60606060000000000060000000600000000060000000000000606060000000000000000000606060000000000000600000000060000000600000000000606060 +00606060606060606000000060000000006000000000006060000000000000000000000000000000606000000000006000000000600000006060606060606060 +60006000600000000000000000000000600000000000600000000000000000000000000000000000000060000000000060000000000000000000000060006000 +00600060006000000000606000000060000000006060000000000000000000000000000000000000000000606000000000600000006060000000006000600060 +00006060600060606060000000006000000000600000000000000000606060606060606060000000000000000060000000006000000000606060600060606000 +60600060606000000000000000600000000060000000000000006060000000000000000000606000000000000000600000000060000000000000006060600060 +00006000600060000000000060000000006000000000000060600000000000000000000000000060600000000000006000000000600000000000600060006000 +00000060006000606060606000000000600000000000606000000000000000000000000000000000006060000000000060000000006060606060006000600000 +60606060606060000000000000000060000000000060000000000000000000000000000000000000000000600000000000600000000000000000606060606060 +00000000606060600000000000006000000000006000000000000000000000000000000000000000000000006000000000006000000000000060606060000000 +00000000006060606060606060600000000060600000000000000060606060606060606060600000000000000060600000000060606060606060606000000000 +60606060600060000000000000000000006000000000000000606000000000000000000000006060000000000000006000000000000000000000600060606060 +00000000006060606060000000000000600000000000006060000000000000000000000000000000606000000000000060000000000000606060606000000000 +00000000000000606000606060606060000000000000600000000000000000000000000000000000000060000000000000606060606060006060000000000000 +00606060606060006060000000000000000000006060000000000000000000000000000000000000000000606000000000000000000000606000606060606060 +60000000000000606060600000000000000060600000000000000000000060606060600000000000000000000060600000000000000060606060000000000000 +00000000000000006060606060606060606000000000000000006060606000000000006060606000000000000000006060606060606060606000000000000000 +00000000000000000060606000000000000000000000000060600000000000000000000000000060600000000000000000000000006060600000000000000000 +00000000000000000000606060000000000000000060606000000000000000000000000000000000006060600000000000000000606060000000000000000000 +00000000000000000000006060606060606060606000000000000000000000000000000000000000000000006060606060606060606000000000000000000000 +00000000000000000000000060600000000000000000000000000000000000000000000000000000000000000000000000000060600000000000000000000000 +00000000000000000000000000606060000000000000000000006060606060606060606060606000000000000000000000606060000000000000000000000000 + +__map__ +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +__sfx__ +01030000000000000000000020500305004050050500a050100502a0502805027050292502725025250212501e25019250162502c150261501d15000000000000000000000000000000000000000000000000000 +001000001325013250132502525023250142401c24026230142502526027240282502625020250192501725017250192501b25012250000000000000000000000000000000000000000000000000000000000000 +__music__ +00 01424344 + diff --git a/toomgis.p8 b/toomgis.p8 new file mode 100644 index 0000000..b752d74 --- /dev/null +++ b/toomgis.p8 @@ -0,0 +1,65 @@ +pico-8 cartridge // http://www.pico-8.com +version 41 +__lua__ +function x_draw() + cls() + amc = 9 --orange (-1, red) + pmc = 2 --purple (-1, blue) + +end + +function _draw() + cls() + sprm(0, 20, 20, 1, 2) + sprm(32, 20, 32, 1, 2) + + sprm(44, 80, 80, 1, 2) + + sprm(0, 50, 100, 1, 2) + sprm(32, 50, 112, 1, 2) + spr(35, 50, 112, 2, 2) + + sprm(15, 100, 10, 1, 4) +end + +function sprm(n, x, y, w, h) + spr(n, x, y, w, h) + spr(n, x+w*8, y, w, h, true) +end +__gfx__ +000022220000000000000000000ee000aaaaaaaa00000000005555000454540000999900000870000000000000cccc0000777000000000000000000000005555 +000222220000000000000000009ea9000aa77aa0060000000088880004545400099999900007400009f9f9f00cccccc006444660000000000000000000055555 +002244440000000000000000009ae9000aa778a000666600008ff800055555000aaaa8a000444700999999990ccccfc006444666000000000000000000055555 +002245540000000000000000009aa9000a8888a00088880000ffff0004545400088aaaa000477700aaaaaaaa0cfcffc006444606000000000000000000099999 +002250740000000000000000009ae9000a877aa00087870000f44f0004545400008aa80000ffff004a444a440cffccc006444666000000000000000000099999 +022247440000000000000000009ea9000aaaaaa000787800008ff8000555550000aa880000ffff00bbb88abb0cfffcc006444660000000000000000000997799 +022224440000000000000000009ae9000aaaaaa0008787000088880004545400000aa000000ff000999989990cccccc006644600000000000000000000977779 +022224000000000000000000000ee00000aaaa000088880000088000045454000008a000000ff0000999999000cccc0000666600000000000000000009977079 +02202944000000000000000000333300000033000000000000033000000330000003300000000000000000000033330000000000000000000000000009997799 +202029990000000000000000030330300000033000330300023333300099990003333330000000300000000003ffff3000000000000000000000000009999999 +20202099000000000000000030300303000999330000300022233320099a9a90033bb33000000b300000000003ffff3000000000000000000000000009999999 +202024090000000000000000030330300099990300888800023202229999999933bbbb330000b33000000000033333300000000000000000000000000a990000 +2020404f00000000000000000330033000999900088888800322232099999a9933bbbb33000b330000000000033333300000000000000000000000000a999000 +0020040f00000000000000000003300009999000088888800202020099999999333bb33300b3300000000000033333300000000000000000000000000aaa9999 +00000000000000000000000000033000999000000888888022202220099999900333333003330000000000000333333000000000000000000000000000aa9999 +00000000000000000000000000033000990000000088880002000200009999000030030000000000000000000033330000000000000000000000000000aaaaaa +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000aaaaaa +00000000000000000000000000000000000006440000000000000000099999099099099000000000000000000000000000000011000000000000000000a0aaaa +0700077700000000000000000000000000006444000000000000000099909909999999900000000000000000000000000000011100000000000000000000aaaa +00707700000000000000000000000000000044540000000000000000999099099099099000000000000000000000000000001111000000000000000000009aaa +0007077700000000000000000000000000044546000000000000000088808808808808800000000000000000000000000000066600000000000000000009999a +000777000000000000000000000000000044540000000000000000000880880880880880000000000000000000000000000006b6000000000000000000999999 +0007777700000000000000000000000bb44540000000000000000000008888088088088800000000000000000000000000000166000000000000000009999999 +00007000000000000000000000000bbbb55400000000000000000000000000000000000000000000000000000000000000000016000000000000000009999999 +000077770000000000000000000bbbbb5b5400000000000000000000000000000000000000000000000000000000000000111001000000000000000099999999 +0000000700000000000000000bbbb77575bb00000000000000000000022220022022022000000000000000000000000006611111000000000000000999999999 +000000770000000000000000bbbb775757bb00000000000000000000020222022222222000000000000000000000000000001111000000000000000999999999 +000007700000000000000000bbbbbbb577bb00000000000000000000020222022022022000000000000000000000000000011111000000000000000999999999 +000000700000000000000000000000b77bb000000000000000000000011110011011011000000000000000000000000000111111000000000000000999999999 +000007000000000000000000000000b7bb0000000000000000000000011000011011011000000000000000000000000000111111000000000000000999999999 +000077000000000000000000000000bbb00000000000000000000000011000011011011100000000000000000000000000111111000000000000000999999999 +000770000000000000000000000000bb000000000000000000000000011000000000000000000000000000000000000000000440000000000000000009999999 +__map__ +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000010030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 diff --git a/yoyodyne.p8 b/yoyodyne.p8 new file mode 100644 index 0000000..5fd7437 --- /dev/null +++ b/yoyodyne.p8 @@ -0,0 +1,192 @@ +pico-8 cartridge // http://www.pico-8.com +version 41 +__lua__ + +function _init() + yyl:init() +end + +function _update() + yyl:update() +end + +function _draw() + cls() + yyl:draw() +end + + + +-->8 +-- yoyodyne logo + +yyl = { + ps = {}, + filled = {}, + ex = 0, + ey = 128, + vx = 0, + vy = -1, + done = false, + maxt = 60, +} + +function dist(x1, y1, x2, y2) + return sqrt( + (x2-x1)^2 + (y2-y1)^2 + ) +end + +function yyl:init() + for x=0,128 do + for y=0,100 do + seq = 128*y + x + + -- y stem + if y >= 50 and x < 54 and x > 46 then + self.filled[seq] = 8 + self.filled[seq-6] = 12 + end + if y >= 50 and x > 75 and x < 82 then + self.filled[seq] = 8 + self.filled[seq+6] = 12 + end + -- arms of y + if y < 50 and y > 10 then + if abs(x-y) < 4 then + self.filled[seq] = 8 + self.filled[seq-6] = 12 + end + if abs(128-x-y) < 4 then + self.filled[seq] = 8 + self.filled[seq+6] = 12 + end + end + + -- green o + local od = dist(x, y, 64, 30) + if od > 10 and od <= 15 then + self.filled[seq] = 11 + end + + -- blue o + if od > 15 and od < 20 then + self.filled[seq] = 12 + end + + end + end +end + +function yyl:chk_stop(p) + -- round to nearest whole + seq = 128*flr(p.y+0.5) + flr(p.x+0.5) + if self.filled[seq] == p.c then + p.vy = 0 + p.x = flr(p.x+0.5) + p.y = flr(p.y+0.5) + self.filled[seq] = true + -- note! there is a bug + -- nearby, filled is set + -- incorrectly sometimes + -- not sure why + end +end + +function yyl:fill_it_in() + -- reset filled as workaround + -- for chk_stop bug + yyl:init() + for i,c in pairs(self.filled) do + y = flr(i/128) + x = i-(128*y) + add(self.ps, {x=x, y=y, c=c, vy=0,vx=0}) + end + self.done = true +end + +function yyl:update() + if not self.done then + -- emit pixels + for c in all{8, 11, 12} do + add(self.ps, + {x=self.ex, y=self.ey, c=c, + vy=rnd(2)+2*self.vy, + vx=rnd(2)+2*self.vx} + ) + end + + -- fill it in? + if t() > self.maxt then + self:fill_it_in() + end + + -- move emitter + if self.ex < 128 then + self.ex += 1 + elseif self.ex == 128 then + self.ey += 1 + end + end + + -- update pixels + for i, p in pairs(self.ps) do + if p.vy > 0 then + p.x += p.vx + p.y += p.vy + self:chk_stop(p) + + if p.y < 0 or p.y > 128 or p.x < 0 or p.x > 128 then + deli(self.ps, i) + end + end + end + +end + +function yyl:draw() + for p in all(self.ps) do + pset(p.x, p.y, p.c) + end + if self.done then + print("d", 64, 52, 11) + print("y", 64, 58, 11) + print("n", 64, 64, 11) + print("e", 64, 70, 11) + end +end +__gfx__ +00000000000000bbbbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000bbcccccbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000bcccccccccb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +8000000000bccc88888cccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +c80000000bccc8000008cccb00000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +cc8000000bcc800000008ccb0000008c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +ccc800000bcc800000008ccb000008cc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +cccc80000bcc800000008ccb00008ccc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +bcccc8000bccc8000008cccb0008cccc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0bcccc8000bccc88888cccb0008ccccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00bcccc8000bcccccccccb0008ccccb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000bcccc8000bbcccccbb0008ccccb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000bcccc80000bbbbb00008ccccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000bcccc8000000000008ccccb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000bcccc80000000008ccccb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000bcccc800000008ccccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000bcccc8000008ccccb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000bccc8000008cccb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +0000000000bcc8000008ccb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +__sfx__ +000f041e00500005001d550225502255027550275502e5502e55027550275503055027550225501f5501b5501b5501f55022550275502c5502d5502d5502855026550255502655027550245501f5501b55016550