Hepatoorn
__
This is a BBS-compatible version of a game I made previously.
===This game only works on BBS===
STORY
... It's a mythical time. On the island of Delos, there is an evil presence that threatens the princess Dite.
Hephaist, a brave young blacksmith, landed on the island with a weapon.
It was not a sword like many heroes, but a hammer.
GAME
This is an action RPG that can be cleared in 30 minutes.
Use a useless hammer to kick enemies around and rescue Princess Dite.
Defeating enemies to some extent will accumulate experience and level up.
Treasures hidden on the island will strengthen Hephaist and pave the way.
Hephaist's health will be restored when you are in town.
The game will automatically save when you pass through the gate.
CONTROL
x ... Swing the hammer/ Talk to him (town only) / up+o Throw fireballs (requires orb)
o ... Jump / down+x Go down (specific floors only)
ITEMS
...A generic drug containing the same ingredients as Nectar, which quenched the throats of the gods. Increases maximum HP.
function _init() poke(0x5f2d,1) mx,my=stat(32),stat(33) cursor_x,cursor_y=64,64 nodes={} constant={n="constant",x=0,y=0,c=8} counter={n="counter",x=0,y=0,c=3} cam_x,cam_y=-60,-63 end function _update60() if (btnp(🅾️)) new(constant) if (btn(⬆️)) cam_y-=1 if (btn(⬇️)) cam_y+=1 if (btn(➡️)) cam_x+=1 if (btn(⬅️)) cam_x-=1 end function new(n) add(nodes,n) n.x=cursor_x+cam_x n.y=cursor_y+cam_y end function _draw() chosen = nil cls(0) for i, node in ipairs(nodes) do print(node.n .. " " .. node.x .. " " .. node.y, 0, i * 6, node.c) rect(node.x - cam_x, node.y - cam_y, node.x + 8 - cam_x, node.y + 4 - cam_y, node.c) if stat(34) ~= 0 and cursor_x >= node.x - cam_x and cursor_x <= node.x + 8 - cam_x and cursor_y >= node.y - cam_y and cursor_y <= node.y + 4 - cam_y then chosen = node end end if stat(32) ~= mx or stat(33) ~= my then cursor_x = stat(32) cursor_y = stat(33) end if chosen ~= nil then print(chosen.x, 0, 0, 12) chosen.x = cursor_x + cam_x - 4 chosen.y = cursor_y + cam_y - 2 end pset(cursor_x + 1, cursor_y, 6) pset(cursor_x, cursor_y + 1, 6) pset(cursor_x - 1, cursor_y, 6) pset(cursor_x, cursor_y - 1, 6) end |
The goal: when you create a new node
object, it should be at the cursor's position. You can drag them around. Press the circle button to create a new node. Use the arrow keys to move the camera. Use the mouse to drag nodes.
The problem: whenever a node is created or clicked, every single existing node's position moves to the mouse.
I'm sure it's some small detail I'm missing but I just can't find it. I would be very thankful for your help
i wrote down the rules for a weird little game with sliding tiles a little while ago, and only a couple days ago i had finished a little prototype for pico-8 :p
i'd like to do more with it in the future, but i think it's fun to play in its current state, so i thought i'd share it here. feedback is welcome !!
PLAY MY SEQUEL HERE
https://www.lexaloffle.com/bbs/?tid=143152
Floppa is celeste classic mod
Game about a Floppa the caracal climb and collect dumplings
----------CREDITS--------------------------
mod by NazarFloppaLovesP8
original by noel
list (ls) function bug
List function appears to show two identical file of same .p64 file on a cart. (fileception?)
Not sure what is the reason but it is most likely a problem within kernel function.
Output of the cart seems correct and there is one header & data for foxcord.p64
Images showing the bug and how it can be replicated:
I'm building a cozy game using Godot, and wanted to add a feature where users can pick up a PICO-8 cartridge and run the PICO-8 runtime + cartridge. Godot compiles to run cross-platform, so I figured that the best attempt to get this to work would be running a WASM file.
It seems like WASM support for PICO-8 exporter is experimental? The exporter produces .js and .wasm, so it seems that the WASM executable was intended to be called by the Javascript code. I briefly attempted to wire GDScript to call the WASM file, but the interface functions calls are not straightforward or documented anywhere.
Would love any input regarding running WASM and/or emulation in a Godot environment where the host machine may be arbitrary.
Pico Pets! is an auto-battler made for the Pico-8 fantasy console.
Pick your favorite hat and then buy, sell, and merge pets to get your gang of four animals to make it Round 7 and win the game. I hope you find it as fun to play as it was to make.
View the "Help" page in-game or screenshot for a brief explanation of the mechanics. Also available on itch.io
This is my second Pico-8 game and took significantly longer to work through (1 week) than my first game Phoenix (1 day). I decided that it's in a good enough state to call done, but I plan to revisit some of the work here with a more original take and additional polish.
Heal'em'up
Instructions
Heal your allies during a protest by throwing band-aids at them. They all need to be conscious at the end of the countdown!
Be careful, you have a limited number of ammunitions. Reload regularly.
You can also use a little caffeine boost to move faster!
About
We are a team of students at Ada Tech School from Paris, France. For our school project, we had two weeks to make a game using Pico-8. We are happy to present you Heal'em'up, a non-shooter where you need to heal instead of shooting. Your mission: protect and help all the protesters.
Stanz-ie ([https://github.com/Stanz-ie/])
Cannellette([https://github.com/cannellette/])
Hi there!
I've been using a relatively simple system for sprite animations that I find works pretty well without much overhead. It relies on a simple function to retrieve the current frame of an animation frame list (ani
) based on time
(t()
) and a given speed (spd
) in frames per second:
--get animation frame function anifrm(ani,spd) return ani[1+flr(spd*t()%#ani)] end |
That's it!
Now all we need is to define an animation as a list of sprite IDs:
--define player walk animation pwalkani={2,3,4,5} |
And we can assign this animation to our player just like assigning a single sprite:
--in _update(), during walk logic (e.g. btn left or right) player.sprite=anifrm(pwalkani,10) --in _draw(), using the normal spr() call spr(player.sprite,player.x,player.y) |
Here's an example cart to demonstrate fully, also taking sprite flipping into account:
Hey everyone!
I'm trying to prototype a little beat game in Picotron, but I'm having some issues with SFX/Music sync. I've been some references in pico8 to using stat() to read the current play time of active music tracks and use that to play SFX in sync with the beat.
There is stat() in picotron, but it's undocumented. I've tried iterating over a bunch of stat codes, but seems like it's pretty much zero after a stat code of about 9
I was wondering if anyone has had additional info about the stat method, or where else I might pull music timing info from?