Skip to content

Instantly share code, notes, and snippets.

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

Achie Game Dev Achie72

💻
Probably doing some game jam
View GitHub Profile
@Achie72
Achie72 / basic_multiplayer.p8
Created March 16, 2025 10:14
Multiplay Demo
function _init()
-- create collection for players
players = {}
-- p1
player1 = {
x = 0,
y = 2,
clr = 12,
health = 10
}
@Achie72
Achie72 / add_something.p8
Created March 16, 2025 09:53
How to spawn stuff in PICO-8 with a function
-- create a table to hold your objects
coins ={}
--now you can add things into here by hand, but you can also make a functionnsonyou can call that point
function add_coin(xpos, ypos)
-- now lets make a temporary local table to hold the coins atrributes, you want position mainly
local coin = {
x = xpos,
y = ypos
@Achie72
Achie72 / pico_playlist.md
Last active March 3, 2025 21:37
Game List
@Achie72
Achie72 / pico8-particles.p8
Last active March 16, 2025 11:12
PICO-8 Particles
-- inside init have a collection called particles
-- this is where we will store each an every particles, so we can iterate
-- over them in the future (aka process them one by one)
particles = {}
-- adder function, you call this anytime you want to add a new particle
-- to the system. This will help us centralise every modification as this
-- function is the only thing that you will have to modifiy.
function add_particle(_x, _y, _sx, _sy, _lifetime, _color, _type)
-- create a local temporary particle where we create the data
@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 March 16, 2025 11:12
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