You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
2.5 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. pico-8 cartridge // http://www.pico-8.com
  2. version 32
  3. __lua__
  4. -- game code
  5. bg = 12
  6. function init_world()
  7. player = {}
  8. player.x = 64
  9. player.y = 16
  10. player.spr = 1
  11. drops = {}
  12. ramps = {}
  13. add_ramp(50,20,15,10)
  14. add_ramp(60,50,15,-15)
  15. add_ramp(50,60,20,0)
  16. end
  17. function _init()
  18. -- button-press initial delay
  19. poke(0x5f5c, 1)
  20. -- button-press repeat
  21. poke(0x5f5d, 2)
  22. init_world()
  23. end
  24. function _update()
  25. update_player()
  26. update_drops()
  27. end
  28. function add_ramp(x,y,dx,dy)
  29. r = {}
  30. r.x = x
  31. r.y = y
  32. r.dx = dx
  33. r.dy = dy
  34. add(ramps, r)
  35. end
  36. function update_player()
  37. if btn(0) then
  38. player.x -= 1
  39. end
  40. if btn(1) then
  41. player.x += 1
  42. end
  43. if btn(2) then
  44. player.y -= 1
  45. end
  46. if btn(3) then
  47. player.y += 1
  48. end
  49. if (player.y < 0) player.y = 0
  50. if (player.y > 127) player.y = 127
  51. if (player.x < 0) player.x = 0
  52. if (player.x > 127) player.x = 127
  53. if btnp(🅾️) then
  54. drop = {}
  55. drop.x = player.x
  56. drop.y = player.y
  57. add(drops, drop)
  58. end
  59. end
  60. function update_drops()
  61. draw_world()
  62. new_drops = {}
  63. for i=1,#drops do
  64. drop = drops[i]
  65. drop.y += 1
  66. if drop.y < 128 then
  67. add(new_drops, drop)
  68. end
  69. end
  70. drops = new_drops
  71. end
  72. function _draw()
  73. draw_world()
  74. spr(player.spr,player.x-1,player.y-1)
  75. print("drops: "..#drops, 1, 6, white)
  76. end
  77. function draw_world()
  78. cls(bg)
  79. foreach(drops, draw_drop)
  80. foreach(ramps, draw_ramp)
  81. end
  82. function draw_ramp(r)
  83. line(r.x,r.y,r.x+r.dx,r.y+r.dy,brown)
  84. end
  85. function draw_drop(drop)
  86. pset(drop.x, drop.y, white)
  87. end
  88. -->8
  89. -- library
  90. black = 0
  91. dark_blue = 1
  92. dark_purple = 2
  93. dark_green = 3
  94. brown = 4
  95. dark_gray = 5
  96. light_gray = 6
  97. white = 7
  98. red = 8
  99. orange = 9
  100. yellow = 10
  101. green = 11
  102. blue = 12
  103. indigo = 13
  104. pink = 14
  105. peach = 15
  106. function print_ctr(s,y,c)
  107. print(s,64 - #s * 2,y,c)
  108. end
  109. __gfx__
  110. 000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
  111. 00000000aaa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
  112. 007007000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
  113. 00077000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
  114. 00077000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
  115. 00700700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000