Safe Crackers
Dive into the world of fast-paced safecracking with Safe Crackers! Armed with nothing but your wits and a mysterious one-button gadget, you’ll spin, time, and crack your way through increasingly challenging safes whilst uncovering quirky treasures.
A single button stands between you and glory, are you ready to become the ultimate safecracker?
Controls
X - that is all! Note - on some controllers this may map differently, on an xbox controller PICO's X key maps to B, for example.
About
My submission to the 2024 1-Button Game Jam. Built using PICO-8. I had two goals in this jam:
- Improve my understanding of trigonometry in the context of game development; hence the circle based mechanics.
The 2024 PICO-8 Advent Calendar is here! The busy little
Credits:
Midnight Blue by @zep
Snowkidz Battalion by @Mr_Ceppah
Fellow Kids Are Seizing Christmas by @nascimento-cesar
Sleigh Repair by @NarcolepticFrog
Dove Break by @SmellyFishstiks
Santa Sack by @thattomhall
Snowball Fight! by @jasondelaat
A fluttering Saltire or St Andrews Cross, diagonal white on a blue background for St Andrews Day, a holiday in Scotland where he is patron saint. It's also the Scottish flag.
(259 chars)
f=64pal({0,1,140,12,13},1)::_::cls()for c=0,127do p=(c>>6)+t()camera(0,sin(p)*5-f)for l=0,2do s=sin(p+.07)+(l&1)*3+3h=s-s\1for j=-1,1,2do fillp(h<.8and h>.2and 23130)line(c,mid(-f,f,j*(min(1,l)*abs(f-c)+(l&2)*16-16)),c,j*f,s+.5+s\1*16)end end end flip()goto _ |
mostly accurate 2d gravity simulation I made in 295 chars
(295 chars)
p={}for i=0,20do add(p,{rnd(127),rnd(127),0,0,1})end::_::cls()for i in all(p)do for j in all(p)do x=j[1]-i[1]y=j[2]-i[2]d=x^2+y^2f=0.03*j[5]/d if d<5and d!=0then for k=3,5do i[k]=(i[k]+j[k])/2end i[5]*=2del(p,j)else i[3]+=x*f i[4]+=y*f end end i[1]+=i[3]i[2]+=i[4]pset(i[1],i[2])end flip()goto _ |
Hi all, we are excited to share our first full Pico 8 project, called It's Ok To Jump Down. Run and jump your way through randomly generated islands to collect as many coins as possible. Spend your coins at the shop to unlock upgrades and most importantly new biomes to progress further. Finishing the 6th biome earns you a fun reward for your hard work, but don't be afraid to play past this point for a harder challenge.
The game centers around the water-jumping mechanic. Standing under a waterfall fills your water tank(s), which allows you to perform strings of jumps to collect hard to reach coins. You can also refill mid-air.
We really hope you enjoy!
Small numbers (such as 0.00001) are not sent properly between processes. For example, when process A sends 0.00001 to process B, the process B receives 1.
Instructions how to reproduce:
load #wuguzudofo
and run- hit "z" to create child process and send small number from this process to the parent
- parent process will present 1 instead of 0.00001
Whiskers in the Winter Labyrinth
​Here comes my first Picotron game 'Whiskers in the Winter Labyrinth'.
Created for the Cre8-Jam 2024 this puzzle game offers 24 levels. You play as Whiskers the cat that finds itself inside of a distorted labyrinth which needs to be fixed. There are also some things to collect and to discover.
As of right now the game is still a bit rough around the edges, having only a few sound effects and no music at all, but it is fully playable.
When the AI plays itself in my game, it is too much for the _update() so PICO-8 drops _draw() frames. The moves are correct, but its awkward because both pieces move at once.
How do I remedy this? Is it a coroutine I need? I've been playing with them and have gotten some crazy results, not really knowing what I am trying to accomplish. But is that even the right approach?
Or can I make some kind of delay between moves to give the cpu time to catch up? I tested by making it only run the engine after a button press and it works fine.
I also tried calling flip() explicitly after the resource-heavy function but no dice.
any pointers are appreciated.
THE GOD OF CHANCE HAS TAKEN OVER THE VAMPIRIC CASTLE: TAKE IT BACK
Use and manipulate the dice you roll each turn to most effectively deal damage to, and protect yourself from, the strange enemies in turn-based combat.
Maneuver through the castle walls and interior to reach and reclaim the throne, gaining upgrades along the way.
CONTROLS
Left/Right arrow keys: choose a category
Up/Down arrow keys: choose an option
Z key: confirm/select
X key: cancel or exit action/selection
Hey folks!
This is my first time using pico 8 and my first cart! It's an auto-battler where you make decisions on who to add to your team. Units have various combat styles, and some have non combat abilities as well.
Edit: Updated cart, found logic error in the cheetah, it is now a glass cannon just as I designed :3 And changed sprite colours of wolf to make it stand out from the porcupine.
The Free Lands, which has an ID of dekasimiha, is a "sandbox" game for Pico-8 where you can mine trees, explore castles, see ruins, find gold, collect enough keys, and destroy enough bosses to win! The game is in its early Beta stages, so don't expect much.
Features added in v1.3.2 (the latest): New keys, new areas (castles and ruins), a battleaxe added to the game, inventory expanded to tools, a new "tutorial" area that explains some mechanics and the game, and a new tree texture.
If you play this game and want to become a "registered" beta tester in the credits (once those get added... lol) then you can comment on this and say you played the game and want to be a beta tester! Thank you!
@toadofsky
I moved the conversation to chat so as not to clog up the cartridge section.
in response to your last post;
how are you going to hook up PICO-8 to the internet though? Can you do that?
Jorth
A small stack-based language interpreter implemented in Pico-8, oh and a text editor too. It's a programming toy. If you know Forth, this language won't be too hard to learn.
Controls
Ctrl-G: Switches modes
Ctrl-D: Deletes the current code
Ctrl-C: Copies the code (bugged)
Ctrl-V: Pastes whatever is in the clipboard (bugged)
Ctrl-H: Replaces the current content of the program with a help menu
Click to run the code.
Changelog
0.1:
- First version!
0.2:
- Added Ctrl-H for docs
- Added STOP intrinsic
0.3:
- New intrinsics for working with Lua
- New docs for IF-ELSE, DEF, and Lua intrinsics
- Smarter error messages
-= PYRO : World Espionage =-
OVERVIEW
An in-progress game based on the old DOS game Pyro II (itself based on an older game named Firebug).
Infiltrate various sites to recover or destroy top secret files, then burn the evidence as you make your escape. How far can you go?
INSTRUCTIONS
Shortly after entering a floor, your Fuse will ignite - use it to burn as much as you can before making your way down the exit stairs.
- Use Gas Canisters to spread gasoline, or leave them behind to cause explosions
- Only some walls burn, others cannot be burnt, though they can be exploded
- The staircase can only be entered from the right side, regardless whether the walls around it are burned down.
Hello,
I am simulating a ball being dragged around by a player. I'd like to create some animation to simulate that the ball is rotating (top-down view). I am trying to do that with a light source on top of the ball but I can't quite get it working correctly.
Looking for advice or some pointers to good tutorials on this subject.
Thanks in advance
function _init() player = {x=64, y=64} end function _update() local move_x, move_y = 0, 0 if btn(0) then move_x = -1 end if btn(1) then move_x = 1 end if btn(2) then move_y = -1 end if btn(3) then move_y = 1 end -- update player position and animation if move_x != 0 or move_y != 0 then player.x += move_x player.y += move_y end update_ball() end function _draw() cls() rectfill(player.x, player.y, player.x+8, player.y+8, 8) draw_ball() end --ball ball = {x=80, y=80, vx=0, vy=0, length=24, friction=0.9, mass=5, pull_force=0.2} ball.hitbox = {2,2,6,6} ball.name = "ball" ball.radius = 5 -- in ball initialization ball.light_pos = {x = ball.x, y = ball.y} function distance(x1, y1, x2, y2) return sqrt((x2-x1)^2 + (y2-y1)^2) end function update_ball() local dx = ball.x - player.x local dy = ball.y - player.y local dist = distance(ball.x, ball.y, player.x, player.y) if dist > ball.length then local angle = atan2(dx, dy) local pull_strength = (dist - ball.length) * ball.pull_force ball.vx -= cos(angle) * pull_strength ball.vy -= sin(angle) * pull_strength end ball.vx *= ball.friction ball.vy *= ball.friction ball.x += ball.vx ball.y += ball.vy if ball.vx != 0 or ball.vy != 0 then local move_dir_x = ball.vx > 0 and 1 or (ball.vx < 0 and -1 or 0) local move_dir_y = ball.vy > 0 and 1 or (ball.vy < 0 and -1 or 0) ball.light_pos.x += move_dir_x * 0.5 ball.light_pos.y += move_dir_y * 0.5 -- check if light has reached ball edge local light_dist = distance(ball.x, ball.y, ball.light_pos.x, ball.light_pos.y) if light_dist >= ball.radius+1 then -- move light along the direction of movement ball.rolled_under = true ball.roll_under_timer = ball.roll_under_frames -- reposition light on opposite side of ball and continue moving ball.light_pos.x = ball.x - move_dir_x * ball.radius ball.light_pos.y = ball.y - move_dir_y * ball.radius -- immediately continue moving in the same direction ball.light_pos.x += move_dir_x * 0.5 ball.light_pos.y += move_dir_y * 0.5 end end end function draw_ball() line(player.x+4, player.y+4, ball.x, ball.y, 13) circfill(ball.x, ball.y, 5, 1) -- light spot circfill(ball.light_pos.x, ball.light_pos.y, 1, 7) end |