Skip to content

Instantly share code, notes, and snippets.

View Achie72's full-sized avatar
💻
Probably doing some game jam

Achie Game Dev - Bela Toth Achie72

💻
Probably doing some game jam
View GitHub Profile
@Achie72
Achie72 / map-strings.p8
Created June 22, 2024 17:38
PICO-8 load maps from strings
-- For this I whipped up my good ol’ reliable approach of having the following functions:
-- export the currently drawn map to the clipboard
-- I used this in copied .p8 files to draw levels,
-- run them and copy the given string into this main
-- file's map collection
function export_map()
-- start with empty string
local mapString = ""
-- loop over the map tile by tile
-- and append tile numbers by , after each other
@Achie72
Achie72 / movement.p8
Created June 17, 2024 19:57
PICO-8 Sliding Movement for PPJJGG
-- function to add characters to the game
-- at any point on the map
function add_character(_x, _y)
local p = {
x = _x,
y = _y,
direction = 5,
doReplaceOldTile = false,
replaceTileId = 0
}
@Achie72
Achie72 / pico8_pickups.p8
Last active May 20, 2024 09:53
Pickups in PICO-8
-- Or if you don't want to bother with drawing each pickup with every tile aviable to you, you can make them "objects".
--For this, create an array, that will hold all our pickups:
pickupCollection = {}
-- and a function that you can call to add pickups.
-- we include a _type so later you can differentiate them
-- by checking the this. For ex: _type = 1 is a healing item, _type = 2 is a bomb etc...
function add_pickup(_xPosition, _yPosition, _type)
-- we create a local variable to hold the item
@Achie72
Achie72 / replacer.p8
Created April 20, 2024 16:00
Replacer
function replace()
-- collection for the if is it this tile
local tilesToCheck = {1,2,3,4,5,6}
-- collection to replace tile
local tilesToReplace = {10,20,30,40,50,60}
local x,y = 0,0
for i=1,#tilesToCheck do
if mget(x,y) == tilesToCheck[i] then
@Achie72
Achie72 / selector_lib.p8
Last active April 14, 2024 17:14
Janky Selector "Lib"
pico-8 cartridge // http://www.pico-8.com
version 42
__lua__
-- selector library
-- by achiegamedev
-- the selector object you will be playing and
-- calling around with. You can create a new
-- one by calling selector:init({object})
-- where object has the same values as here
@Achie72
Achie72 / toolbar_and_shovel.p8
Created April 13, 2024 16:28
How we handle setting, getting and swapping lines!
elseif state == "tools" then
-- pressing left will only move you to first item
if btnp(0) then toolbar.cursor = max(0, toolbar.cursor-1) end
-- pressing right will only mvoe to the last item
if btnp(1) then toolbar.cursor = min(12, toolbar.cursor+1) end
-- if we are on tools I want to have a float-in menu
-- that comes in from the bottom, showcasing the tools
toolbar.y = lerp(toolbar.y, toolbar.yOnScreen, 0.2)
-- go back to planning phase
@Achie72
Achie72 / td_wave_system_dummy.p8
Last active April 9, 2024 16:29
PICO-8 Wave System
pico-8 cartridge // http://www.pico-8.com
version 42
__lua__
-- I would create an enemy adder function that
-- creates enemies at certain positions (basically spawn them in)
function add_enemy(_x, _y, _type)
-- if youw ant to store enemy properties, I'd do it here in an array
-- for ex:
--[[
local enemyData = {
@Achie72
Achie72 / tutorial-segments.p8
Created February 25, 2024 19:08
One Last Swing - Tutorial code
-- here we modifiy the creation to accomodate
-- the tutorial, where we are gonna show the
-- player which stance beats what
if tutorial > 0 then
tutorial -= 1
if tutorial > 0 then
-- based on which tutorial we are in, set the enemy stance so that is beatable
-- by the other table inside the players code when we are about to resolve the fight
local tutorialBeatTable = {MID_STANCE,LOW_STANCE, MID_STANCE, HIGH_STANCE}
@Achie72
Achie72 / dw_transition.p8
Created February 25, 2024 18:53
One Last Swing - Circular Transition by DW
-- transiton effect is from DW from the lexaloffle bbs
function draw_transition_effect()
-- magic circle does the
-- opposite of circfill and
-- instead erases the outside
-- of the circle first
for i=64,transition,-1 do
circ(32,32,i,11)
circ(33,32,i,11)
end--next i
@Achie72
Achie72 / 1k_defender.p8
Created February 4, 2024 13:18
1k Defender Raw Code
a,h,v,t,w,d,l,b,e,p,r,k,eb,ht,ld=20,64,100,0,0,0,10,{},{},{},rnd,del,{},{},0
function ce(a,b,c,d,e) if (((a-b)*(a-b)) + (c-d)*(c-d) <= e*e) then return true else return false end end
::_::
if time() < 3 then goto title else
cls()t+=1
if(t%2==1)add(b,{x=r(128),y=0,t=1,b=0,c=1+flr(r(2))*6})
if(t>30)then t,d=0,d+0.005 end
if(w<time())then
i={x=r(120),y=-2,t=r(3),s=r({1,2}),sp=time()+r()}add(e,i)