Log In  

BBS > Community Superblog
All | Following | GIFs | Off-site



Cart #pixeditor-30 | 2022-04-24 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
7


PixEditor is a tool that can be used to draw 8x8px sprites and turn them into nonograms/picross boards. It uses a simple format that allows boards to be shared for other people to edit/solve. Here's a little guide:


Controls and layout:

PixEditor is controlled with mouse only, using just the cursor and left click. This also makes it compatible with mobile devices (except for saving and loading).
The PixEditor layout is designed to look like the built-in editors found in PICO-8. It features two modes: Draw Mode (PixEditor) and Play Mode (PixPlayer). In both modes, colors can be selected from the bottom of the screen. Draw Mode's layout has several icons, each one affecting the board in a different way:

  • Clear: this icon clears the entire board filling it with color 0, the default transparent color.
  • Grid: this icon turns the grid on and off.
  • Play View: this icon turns Play View on and off. If Play View is on, all transparent colors will turn invisible (color 0) and all visible colors will be displayed as color 7.
  • Save: this icon saves the board as a string.
  • Load: this icon loads a string to the board.
  • Game: this icon switches the game mode from original to color and vice versa. Unlike all of the previous icons, it can be found at the top right of the screen.
  • Play on Load: this icon turns the "Play on Load" mode on and off. It can be found next to the Game icon.
  • Switch Mode: changes the mode from PixEditor to PixPlayer and vice versa. It can be found at the top right of the screen, which displays the name of the mode.
  • Color Transparency: this icon turns the transparency of the selected color on and off, and it can be found next to the "pen color" text (top middle). When a color is transparent, it shows four dots on top of the color selection bar found at the bottom of the screen.

The name and state of each icon can be seen at the bottom left of the screen when the cursor is positioned over it.


Saving:

When clicking on the "save" button (on the BBS, press ctrl+c afterwards), the board will be saved to a string, with each part of it representing different parameters of the sprite:

  • Item 1: pixeditor_board (used to check the loaded string format)
  • Items 2-17: color transparency table
  • Items 18-81: pixel colors
  • Item 82: PixPlayer completion text - this string defines the message that's shown when a board is completed in the PixPlayer. When saving, this string defaults to "well done!", but it can be changed in a text editor. It can be useful to display the name of whatever the sprite is supposed to represent. However, once the player switches to from Play Mode to Edit Mode this text will be reset to "well done!".

To load a string copied outside of PICO-8, the key combination ctrl+v must be pressed before clicking the "load" button.
If Play on Load mode is enabled, the mode will be set to PixPlayer as soon as a string is loaded, and, every time the mode is switched to PixPlayer, the player won't be able to go back to PixEditor until the puzzle is solved.


Thanks to the PICO-8 discord server for all of the help and feedback!
Thanks to Ningow for helping with and providing code for number rendering!

7
11 comments


Cart #picowings_2-0 | 2022-03-12 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
75

Presenting Picowings Flight Simulator

Take off and explore the mountains and lakes of Picotopia!

Controls
-- left, right: Roll + Yaw
-- up, down: Pitch
-- z, x: Throttle
-- p: Pause and set time of day

Tips:
Hold down Z to increase speed on the runway before pulling up (down arrow) to take off.
If you look around, you will see houses, buildings, and ships.

Technical Notes
Flight model should be "somewhat realistic" in that it models thrust, lift, drag and weight--Of course all the numbers are made up, and things are grossly simplified.

[ Continue Reading.. ]

75
9 comments


This issue reproduces for me on multiple browsers (including chrome), and for luchak (on chrome 98).

Warning: this bug deletes all BBS saves - not just the ones of the carts used to reproduce it.

Steps to reproduce:

  1. Load some cart with a save in it, verify that the save works. I used https://www.lexaloffle.com/bbs/?pid=94408#p (you can save/restore via menu)
  2. Open new tab with some other cart. I used https://www.lexaloffle.com/bbs/?pid=108109#p
  3. In this new tab, press play and immediately switch to the old tab
  4. Refresh the old tab and check if your saves are still there. They will not be.
  5. If you want to see your saves again, switch to the new tab and let it load. If you don't care, delete the new tab - your saves are now gone forever.

It looks like when a game is first loading, it deletes the local storage (well, indexed db). Then, a bit later, it restores it.

4
1 comment


I made a mod that makes Celeste Classic just a bit harder... enjoy!

Cart #celesteplusplus-0 | 2022-03-12 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
21

21
17 comments


Cart #apocalypse_dog-0 | 2022-03-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

MAde within less than 10h coding and development time :D for a mini jam, not best, not my worst.

2
2 comments


Cart #concat___table-0 | 2022-03-11 | Code ▽ | Embed ▽ | No License
1

Feature Overview

CAT() concatenates two or more tables.

  • The second and subsequent arguments are added to the table elements of the first argument.
  • Returns a concatenated table.
  • The table used for the first argument is updated. (destructive)
  • This function consumes 39 Token.
local tbl_1 = {'a'}
local tbl_2 = {'b', 'c'}

cat(tbl_1, tbl_2)

?tbl_1[1] -- a
?tbl_1[2] -- b
?tbl_1[3] -- c

-- Only primary elements can be cloned by specifying an empty table for the first argument.
local tbl = {1, 2, 3}
local tbl_dup = cat({}, tbl)
tbl[1] = 256

?tbl_dup[1] -- 1
?tbl_dup[2] -- 2
?tbl_dup[3] -- 3

[ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=88288#p)
1
0 comments


Concept Here

Cart #sq_test-0 | 2022-03-11 | Code ▽ | Embed ▽ | No License

Needs Help Here

Cart #sq_test-1 | 2022-03-12 | Code ▽ | Embed ▽ | No License

1 comment


I don't feel like I have the greatest grasp on Lua metatables/metamethods, but I came across some unexpected behavior this week and was wondering if this is a bug. Example cart attached.

I'm setting up a "class" like so:

class = {}
class.__index = class

function class:new(instance)
	local instance = instance or {}

	setmetatable(instance, self)
	instance.__index = instance

	add(self, instance)

	return instance
end

To save tokens, and since I never expect to have numeric indexes in class or any subclasses I instantiate from it, I simply add the instance to whatever object is self when :new() is called. ie, class[1] is a subclass, and subclass[1] == class[1][1].

This works great if I use vanilla Lua ipairs() to iterate over subclass, but if I use Pico-8's all() or foreach() built-ins, things start breaking. Unlike with ipairs(), if #subclass < #class, the loop continues and retrieves any remaining values from class! So, in the example below, the all() loop will correctly access `class

[ Continue Reading.. ]

8 comments


I implemented a simple CNN (Convolutional Neural Network) to recognize handwritten numbers!
The original CNN was implemented and trained in Tensorflow/Keras. The weights of the CNN are kept using sprites.
There are still some mistakes, but it will be fun to see how the CNN works (or not).
(The code is messed up, so I'll fix it someday...)

(Edit) Now the mouse input is available!
Left click: draw
Right click: delete
Left + Right click: delete all

Cart #mnist_pico8-1 | 2022-03-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
17

17
8 comments


Cart #bullet_show_down-0 | 2022-03-10 | Code ▽ | Embed ▽ | No License
6


This is a Mod of the game
"SnowBallShowDown"
Only for fun.

6
2 comments


Under the Commandline Parameters it lists:

-screenshot_scale n scale of screenshots. default: 3 (368x368 pixels)

The actual size of a 3x screenshot scale is: 384x384 pixels

1
0 comments


Cart #snakop_v1_1-0 | 2022-03-09 | Code ▽ | Embed ▽ | No License
4

  • 2 more groundbreaking fruit types that are purely cosmetic
  • fixed snakop's fruit finding ability on the title screen
  • still no sound
4
4 comments


After loading a cart how do you edit its source code/sprites/sounds?

All toturials say to tap ESC but that doesn't bring up the editors - just a menu.

9 comments


Now that I am finally writing music in Pico-8, I would like to request from @zep that you can play beyond 32-notes with SFX().

Already the LOOP marker will count past this but it does not start to play the next SFX, instead it is silent before restarting.

So it would be a single flag that appears before LOOP to show this SOUND has 64-notes instead of 32. And if THAT SFX had the flag set it would be 96 instead of 64.

You can see it here as a PINK button to select just before LOOP.

2 comments


Hi!

I am working on a 3D raycaster game. It's largely working; see the gif below:

I am basically using zep's cast demo as a starter - if you look through my code you will see his draw_3d() function, albeit pretty heavily hacked at this point. I use tline() to draw my walls, and i apply a fillp() based on distance from the camera to get a (currently ugly) dithered lighting effect.

I would like to do the same thing for my floors! Except, I am drawing my floors vertically. See the next gif:

I only draw a floor (vertical line() downward) if my casted ray hits a wall OR a new tile type (thats how i get different floor colors).

Anyone have a cpu-conservative tip for how I could get a gradient similar to my walls on the floor? I COULD draw the floors first as a flood-fill, but this would ignore different colors and elevations. I can't think of any way to apply a smart horizontal-fill strategy, which would allow me to apply fillp() based on distance from the camera.

[ Continue Reading.. ]

3
10 comments


Cart #duckman-0 | 2022-03-09 | Code ▽ | Embed ▽ | No License
3

I have no idea what I am doing I just followed the nerdy teachers guide. The goal of the game is to get to the red flag

3
2 comments


Cart #pongbygeneralchaos-3 | 2022-05-17 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3

Ever wondered what it would be like if pong went to the next level?

I think I may have found the answer. Try it out and tell me what you think.

Special thanks to dw817 for play-testing.

Note: Feels WAY better in full screen.

Controls

P1:

Use Z or X to accept/continue/etc.
Up and down arrows to move/select.
Left and right arrows to select difficulty. (Only at menu)

P2:

Use up and down arrows to move.

Rules

Try to get the ball past your opponent to score a goal(edge of screen) by moving your paddle into the

[ Continue Reading.. ]

3
3 comments


Cart #smashless-3 | 2022-03-09 | Code ▽ | Embed ▽ | No License
3

Demo of new game: Smashless

3
2 comments


Something I noticed today, browsing the PICO-8 forums on my iPhone 6: when I opened the Tell me about how you compose music thread, it would always crash the browser. Safari and Chrome would report that the tab had repeated errors, Opera would crash out entirely.

I'm guessing here when I suggest the embedded SFX music player is related to this, but I wonder if all the scripts are overloading the limitations of the device. Granted, this is a device that will sometimes struggle to run a PICO-8 cart at all, but it makes me wonder if some kind of click-to-activate option for SFX previews might be worth implementing.

Edit: It seems like this has been largely addressed by the new SFX preview system; closing.

0 comments




Top    Load More Posts ->