Updated version that allows you add and remove pens and control the size of the cog etc.
Note the size of the Wheel is set. The size of the cog is derived by the amount of teeth on the cog. This is to ensure that the teeth of the big wheel and the small cog work together.
A simple toy to play with. I was going to add a UI for adding pens changing the colours of the pens. Changing the number of teeth in the wheel etc but probably won't do that.
Feel free to play around with the code. Changing the number of teeth on the wheel will change the ratios for getting back to the same place.
Pens are just objects with 3 values the angle of the pen (0-1) the distance in radiuses of the pens 0-1 and the colour.
I don't have any reproduction steps, however one of the featured carts crashed on me earlier today.
The error message that it produced makes me think this is coming from the internals of pico-8 unfortunatly the text is truncated.
I DO NOT have any replication steps. Others have suggested that this error occurs when an error happens with a coroutine.
I did check the code of the cart and the word HEADER didn't appear in it.
This is just a cart to launch the games I've been given premission to launch from the basic shump showcase jam.
This jam was run by @Krystman to go along with his video series. https://www.youtube.com/watch?v=81WM_cjp9fo&list=PLea8cjCua_P3Sfq4XJqNVbd1vsWnh7LZd
I asked for permission from people to add their carts here. And I have done so. I'd like more entries and also would love if they would provide me with a 24x24px image to represent their cart.
If anyone else has a cart that they would like added from the shmup showcase then please let me know and I'll add it.
If any aspiring musician wants to write a bit of background music for this then please feel free.
This is a tool for creating and editing splines within your game. I used this initally for a shmup i was working on where I wanted to create an intresting enemy flight pattern.
The black area represents a 128x128 screen.
Just click in the points you want then press CTRL+C to copy to clipboard This will copy all points to the clipboard as a string.
This string can be then used within your game.
This is what I use it for.
You can test out pasting of splines here. Also this cart has code for handling the splines.
Hi All,
This is just a quick util method for printing in multiple colours per line of pixel. Its probably been done many time before but this is just my take on it.
The function in question is 41 tokens:
function stripe(txt, x, y, cols) local w = print(txt,x,y,0) for i=1,#cols do clip(x,y+i-1,w,1) print(txt,x,y,cols[i]) end end |
cols is an array of colours which should be at least as large as the height of the text being printed. For normal text this will be 5 values, but if split into multiple lines or you print bigger text then you need more values.
In the cart I've demonstrated some uses of it including a scrolling table that could be used as an effect.
According to the manual
> Additionally, when X, Y are not specified, printing text below 122 causes the console to scroll. This can be disabled during runtime with POKE(0x5f36,0x40).
However I've got a cart that has a performance issue as soon as the print leaves the screen.
Adding in
poke(0x5f36,0x40)
to the cart fixes the issue so the performance issue is to do with screen scrolling.
To see in the above cart press X to start the game and wait for the ship to leave the bottom of the screen
Following lazy devs tutorial sort of at https://www.youtube.com/watch?v=81WM_cjp9fo&list=PLea8cjCua_P3Sfq4XJqNVbd1vsWnh7LZd
29th Jan 2023
I think this just has some music changes and small tweaks to the previous version.
Music by LokiStriker https://lokistriker.itch.io/
I'm so happy with the music.
Below is the beginnings of level2 I've uploaded as a separate cart but its just uncomment some code to run this level.
Hi All,
I've a suggestion that I believe has some value to people making tooling chains is the ability to store metadata within the text version of a cart cart.
This would allow for saving anything that an external editor of a p8 file would want to save and restore upon loading a cart.
For example storing custom pallets or even palette transitions means that they could draw their sprites and see how they look in a fade/palette swap. If they had a fade that they liked they could work in the sprites in an external tool. Anyone else using the same tool could see the settings that were applied.
Pico8 could also store its own metadata there, like the undo history. so if someone reloaded or switched platform they could pick up where they left off.
"save the .p8 on your desktop, move it over to your handheld while you travel, and then back to desktop, and there's no need to get back in the groove manually each time you load up the file" - this is what someone suggested on discord, I'm not naming them in case they don't want to have their name associated with this post.
12th Aug
Changed how drifty the main character is. Made the hitboxes more forgiving.
Okay there is no way I'm finishing this in time for the jam.
Most of the time has been just working on the Character's mechanics and nothing else.
Concept
Dr Evil Lulzs has just killed your master you vow to get your revenge in 30 seconds. This gives you thirty seconds to reach Dr Evil Lulzs and attack or you will explode violently.
01 Aug
Hi all,
This is a question I asked on discord, but I thought to get some feedback on here.
Stupid question maybe. I'm editing in vscode. I've put rulers at 32 chars to match the in built editor. How the heck do you all make your code fit inside a pico8 editor horizontally.
I don't mind going over every so often but 32 chars is very very little.
ico_zoom_in = create_icon(0x3844.92ba, 0x9244.3a01, 100, 40) |
comes to 62 chars.
even if I rename to be
zi = ci(0x3844.92ba, 0x9244.3a01, 100, 40) |
it comes to 44 chars but zi is a horrible name for zoom in icon. and ci is a horrible name for create icon.
maybe something like this.
local top = 0x3844.92ba local btm = 0x9244.3a01 local x,y = 100, 40 zoom_in_ico=c_ico(top,btm,x,y) |
That fits but need to lift a lot of variables out and still c_ico isn't very clear name.
Do you all even consider this?
I find I just can't work with 32 chars.
Not really fun, but I'm uploading to see.
Anyone have any idea how handling should work for a track of approximately this width.
No collision detection.
x to accelerate.
Sprite rotation using a function supplied by @freds72
Do you want to zoom in our out of your map during the game this may be for you.
Simple cart to show off the zoom function.
Cursor keys to scroll x/z to zoom in and out.
actual function is as follows
--prints the map zoomed -- zoom is the zoom factor 2 for twice as big -- 0.5 for half as big -- mx = the pixel cordiante of the map to start -- my = the pixel cordiante of the map to start -- sx = screen offset x -- sy = screen offset y function zmap(zoom,mx,my,sx,sy) zoom = zoom or 1 mx= mx or 0 my= my or 0 sx= sx or 0 sy= sy or 0 for i=0, 127 do tline(0,i,127, i, mx, my+i/8/zoom, 1/8/zoom) end end |
Please feel free to adapt for your own projects.
A better version of this could use a screen clipping rectangle but I wasn't sure if it was necessary or not
Inspired by a game on Amstrad CPC this is my attempt make a game in the snake category. This is my first ever pico8 game.
15 Levels
2 Types of enemy, CPU controlled snakes and the vicious seeker.
3 Types of bonus
S to make your snake short
L to gain a new life
Ghost gain one new life every three levels.
I hope you all enjoy this as much as I enjoyed playing the original.
Level music by @SmellyFishstiks
Update v1.1
Minor update to allow input buffering as suggested.