Log In  

BBS > Superblog
Posts: All | Following    GIFs: All | Postcarts    Off-site: Accounts

Scrub is an animation data editor which allows you to make and preview .anm files.

load #scrub

Cart #scrub-2 | 2025-04-17 | Embed ▽ | License: CC4-BY-NC-SA
3

File format

The .anm file format consists of a table with string keys and values containing animations. Each animation contains string keys with arrays of data, each the same length. The only required key in an animation is duration, which is a series of numbers indicating the amount of time it takes for each frame to elapse. There is an optional events key, where the values are a dictionary of strings keys and arbitrary values, representing each event that occurs at the start of its respective frame.

Within the Scrub cart, the script src/animation.lua contains everything you need to play the animations in the .anm files in your own projects.

[ Continue Reading.. ]

3
0 comments


Cart #daburiwumu-1 | 2025-04-10 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA


I have been working on this game for a loong time, my first game. started with a tutorial from Spacecat, then i learned lots from the Nerdy teachers! and received his help and from Achiegame dev,over at nerdy teachers discord server, i also learnt from lots of tutorials from different persons(for example doc_robs for the parallax and the collisions) wich i could not still make them work at all cases TT__TT . its my very frist time programming in Lua (and i have forgotten all i learnt of c# for unity in the past,im just a 2d artist/animato/graphicDesigner that aches to make cute little games) i also struggled lots to make the music(LOTS XD i have no idea of music theory,hope to learn).

i will release this as is but im annoyed for the collisions and the way the gap between sunflowers changes abruptly.i attempted a timer so it occurs off screen but alas ,does not work. maybe someday i could review and correct the issues.

[ Continue Reading.. ]

0 comments


This old username is haunting me since 2015. Can I have it changed por favor? I've already emailed hey at lexaloffle, but nothing's ever come from it :(

1
2 comments


Cart #picoboard-1 | 2025-04-10 | Code ▽ | Embed ▽ | No License
5

About Picoboard

Picoboard is a simplistic work-in-progress productivity app with a kanban board interface and an integrated pomodoro timer
Currently in early development and open to feedback and suggestions!

Disclaimer:
The timer won't work in web while unfocused, since browsers tend to pause processes while unfocused

Controls

  • Mouse wheel to scroll x
  • Click labels to edit
  • Drag pages/items to move
  • Drag items onto timer to delete
5
1 comment


Title scene of incoming PicoCraft !

a pico demake of Warcraft III with some human troops

10
3 comments


I'm working on a script to turn any image into Picotron wallpaper. It sorta kinda works.

Its kinda cool ig.

from PIL import Image

img = Image.open("img.png").convert("RGB")
img = img.resize((480, 270), resample=Image.LANCZOS)

palette = [
    (0x00, 0x00, 0x00), (0x1d, 0x2b, 0x53), (0x7e, 0x25, 0x53), (0x00, 0x87, 0x51),
    (0xab, 0x52, 0x36), (0x5f, 0x57, 0x4f), (0xc2, 0xc3, 0xc7), (0xff, 0xf1, 0xe8),
    (0xff, 0x00, 0x4d), (0xff, 0xa3, 0x00), (0xff, 0xec, 0x27), (0x00, 0xe4, 0x36),
    (0x29, 0xad, 0xff), (0x83, 0x76, 0x9c), (0xff, 0x77, 0xa8), (0xff, 0xcc, 0xaa),
    (0x24, 0x63, 0xb0), (0x00, 0xa5, 0xa1), (0x65, 0x46, 0x88), (0x12, 0x53, 0x59),
    (0x74, 0x2f, 0x29), (0x45, 0x2d, 0x32), (0xa2, 0x88, 0x79), (0xff, 0xac, 0xc5),
    (0xb9, 0x00, 0x3e), (0xe2, 0x6b, 0x02), (0x95, 0xf0, 0x24), (0x00, 0xb2, 0x51),
    (0x64, 0xdf, 0xf6), (0xbd, 0x9a, 0xdf), (0xe4, 0x0d, 0xab), (0xff, 0x85, 0x57)
]

flat_palette = [value for color in palette for value in color]
flat_palette += [0] * (768 - len(flat_palette))

palette_img = Image.new("P", (1, 1))
palette_img.putpalette(flat_palette)

posterized = img.quantize(palette=palette_img, dither=Image.FLOYDSTEINBERG)

indices = list(posterized.getdata())
with open("wallpaper.p64", "w") as f:
    f.write("""picotron cartridge // www.picotron.net
version 2

:: main.lua
include("wallpaper.lua")

function _init()
	window{
		wallpaper = true
	}
end

function _draw()
	cls(0)
	spr(bg, 0, 0)
end
:: wallpaper.lua
bg = userdata("u8", 480, 270)
""")
    for i in range(len(indices)):
        f.write(f"bg:set({i % 480}, {i // 480}, {indices[i]})\n")
    f.write(":: [eoc]\n")
    f.flush()
4
1 comment


Had to download a new copy of Picotron, and this came up. Whenever I try to move anything or edit anything it immediately closes and crashes, is unusable. Does anyone know what this is?

This is a fresh install.

(The first word of the text document is “ha!”)

1
3 comments


Cart #loongtriune-4 | 2025-04-10 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
28

Loong Triune

The three legendary dragons are in dire need of sustenance to keep protecting our world. Collect each dragon's designated food, star fragments, and return to their portal before running out of energy. Play through 9 unique levels to satiate their needs and keep our world in balance.

Controls

X - Select a dragon to control
Z - hold to move quickly
Left - Turn CCW
Right - Turn CW

Dev Info

Cover image designed by Lacey Haight. The rest of the game was created by jblend.

[ Continue Reading.. ]

28
4 comments


Hello,

I have a feeling I don't fully understand vectors. I am thinking of the optimal way to handle the updating of a large number of entities for something like a Vampire Survivors game. Right now, in my testing, parallel arrays appears to have the lowest impact on CPU. 1000 mobs move towards the player and cpu is 0.601, metatables go up to 0.823

I tried vectors this morning and my cpu stat is 1.4.

Vectors are a bit new to me and I'm wondering if I going about this the right way.

function _init()
	mobs={}
	player={}
	player.v = vec(240, 130)
	for i=1, 1000 do
		local spawn_radius = max(470, 270) / 2 + 50
		local player_x, player_y = player.v:get(0, 2)
		local spawn_x = player_x
		local spawn_y = player_y
		local angle = rnd(1)
		local x = spawn_x + spawn_radius * cos(angle)
		local y = spawn_y + spawn_radius * sin(angle)

		v = vec(x, y)
		add(mobs,{v=v,spd=rnd(0.5)})
	end

end

function _update()

	for mob in all(mobs) do
		-- Calculate direction vector (from mob to player)
		local direction = vec(0, 0)

		-- Get mob and player positions
		local mob_x, mob_y = mob.v:get(0, 2)
		local player_x, player_y = player.v:get(0, 2)

		-- Create direction vector
		direction = vec(player_x - mob_x, player_y - mob_y)

		-- Normalize the direction (make it length 1)
		local mag = direction:magnitude()
		if mag > 0 then
			direction = direction:div(mag)

			mob.v = mob.v:add(direction:mul(mob.spd))
		end
	end
end

function _draw()
    cls()
    for mob in all(mobs) do
        local x, y = mob.v:get(0, 2)
        spr(1, x, y)
    end
    print(stat(1), 0, 0, 8)
end
1
6 comments


Cart #vec8-0 | 2025-04-08 | Embed ▽ | License: CC4-BY-NC-SA
14

Vec8 is a tool to generate vector/command based graphics for Pico-8 while minimizing data length and token usage.

It allows you to create a series of images and export them to a series of compressed pixels to be stored in your Pico-8 sprite map. Future plans might include exporting to a string.

The Pico-8 code to load and draw these images only takes 198 tokens (if not using any polyfill elements, otherwise +646 tokens)

There may be future updates to support things like text or custom user defined data.

Exported images to you're Pico-8 cart might look something like this:

this potentially allows you to store way larger and/or way more images than you would be able to otherwise in Pico-8.

[ Continue Reading.. ]

14
0 comments


Cart #seasons-0 | 2025-04-08 | Code ▽ | Embed ▽ | No License
5

Originally composed by:
Six Foe
DJ Godfather

5
1 comment


Cart #famemehuye-0 | 2025-04-07 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3

3
0 comments


Cart #kifonukipe-0 | 2025-04-07 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
6

6
1 comment


Cart #cave_spider_offensive-0 | 2025-04-07 | Code ▽ | Embed ▽ | No License
29


[32x8]

Ludum Dare 57 entry! https://ldjam.com/events/ludum-dare/57/spider-cave-offensive

Dig! Fight! Escape the spider! Defeat the spider!

You are being attacked by a giant spider after opening a cursed treasure chest. Defeat it while dealing with dangers of the cavern!

HOW 2 PLAY:

  • Move with arrow keys, walk into walls to dig them
  • Use the cave’s magic to your advantage

[ Continue Reading.. ]

29
10 comments


Cart #plush_girls_ld57-0 | 2025-04-07 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
7

"Power your drill and get to the very bottom of the world."

This is my first (finished) PICO-8 game, and my entry to Ludum Dare 57. The theme is "depths". Hope you enjoy it.

Controls

  • Arrow Keys: Control drill direction (cannot go up or go back!)
  • Z: Confirm / Continue
  • X: Randomize items during item selection

Screenshots

7
2 comments


All four panels of Modulus doing his daily calculations.

4
0 comments


Cart #wuzekibika-0 | 2025-04-07 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Hello! Publishing the cart of my little shmup which I coded with the help of this brilliant tutorial: https://www.youtube.com/watch?v=81WM_cjp9fo&list=PLea8cjCua_P3Sfq4XJqNVbd1vsWnh7LZd

0 comments


Modulus

The Fun Modulo Calculator

Modulo (%) is a mathematical operator that performs a division and returns the remainder.
It's very handy for creating timers that loop at specific intervals like for animations or counters.

I have a hard time visualizing how the formulas work so I made this silly tool to visualize it in a fun way.

Cart #modulus-0 | 2025-04-07 | Embed ▽ | License: CC4-BY-NC-SA
5

How to Use a Modulus Panel

1.Animation: Changes animation frames when the Results (7) equal 0.0
2.Timer: Choose between 'fps' and 'time()'.

  • fps - Starts at 0 and is incremented by 1 for each frame.
  • time() - calls the time() function which counts up the number of seconds since modulus started.

[ Continue Reading.. ]

5
0 comments


Cart #steroids-2 | 2025-04-07 | Code ▽ | Embed ▽ | No License

0 comments


Cart #picopride-1 | 2025-04-07 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA


A cartridge to display pride flags to the screen!

To go to the next flag, press the O button; to go to the previous flag, press the X button.

Currently, there's a total of 14 flags that can be displayed (with some concessions due to Pico-8's limitations):

  • Modern, 6 color pride flag
  • Gilbert Baker pride flag
  • Leather pride flag
  • Bisexual pride flag
  • Pansexual pride flag
  • Femboy pride flag
  • Trans pride flag
  • Non-Binary pride flag
  • Gender-fluid pride flag
  • Philadelphia pride flag
  • Aromantic pride flag
  • Agender pride flag
  • Asexual pride flag
  • 2022 polyamory pride flag

Feel free to add more flags!

0 comments




Top    Load More Posts ->