Hi I have created some simple bash scripts that can be used to update Picotron to the latest version on Linux. You can find the scripts here: https://github.com/Outplayed8713/Picotron-Updater . I hope that you find them helpful!
Included Scripts:
- picotron_update.sh: Downloads and extracts latest version of Picotron if there are new updates.
- picotron.sh: Runs the updater then starts Picotron. This script can be used instead of the Picotron executable so Picotron is always up to date.
- generate_desktop_entry: Creates a Picotron desktop entry so Picotron appears in your system's applications list. The desktop entry executes the Picotron.sh script.
Warning:
These scripts require your lexaloffle account credentials to Download the latest version of Picotron. The script will prompt for your credentials and will store them in a plaintext file on your computer. The script sets the file permission to 600, so only your user can read and write to this file, but be aware that your account password could be easily exposed in the event your system is compromised.
SIBYL
-a mini horror game-
SUPER SPECIAL THANKS TO MBoffin (Dylan Bennett) for map collision stuff.
WARNING
This game has some scary images and pixelated blood and gore, viewer digression is advised.
This game also has flashing images, which can bother those who have sensitivity to such things.
CONTROLS
ARROW KEYS - move character
[X] (keyboard X) - accept/close menu
[O] (keyboard Z) - pull up menu/statistics - this also pauses the game
PREMISE
This game is a tiny little survival horror game made with PICO-8. The goal was to see if I could make something creepy in such a restrictive environment.
Flying over a pixelated landscape, looking down at mountains, valleys, and lakes.
(256 chars)
local f,s,v,x,y,w,z=0,sin::_::?"βΆ1βΆc0βΆ!5f10<1β¬ οΈ3β¬οΈββ5β677" for i=0,4600do z=59-i\64x=i%64-32if(abs((z+64)/x)>5)fillp(z>51and β)v=z+f y=s(x/99+v/30)-s(v/40+x/30)+s(x/64+v/99)/2+2y*=y/2w=y*8+z*6z=z/13-y/17+3circfill(x*20/z+64,136-w*2/z,20/z,1+y) end f+=1goto _ |
I've noticed the min
and max
functions have a surprisingly high CPU cost.
For example
a=stat(1) for i=1,1000 do b=min(1,2) end print(stat(1)-a) |
Outputs:0.103
Which is almost twice the CPU cost for sqrt()
a=stat(1) for i=1,1000 do b=sqrt(2) end print(stat(1)-a) |
Outputs:0.054
And even if I define my own "min" function in lua, it's still a lot faster.
function mymin(a,b) return a<b and a or b end a=stat(1) for i=1,1000 do b=mymin(1,2) end print(stat(1)-a) |
Outputs:0.057
Is this a mistake?
Hello,
Short time listener, first time caller here. I apologize in advance if this is a basic question!
I'm pretty new to Pico-8 and Picotron development, and I'm trying to set up functionality to allow a little character to jump when I press space. Good news is I can get it to jump. Bad news is that if I hold space, it keeps jumping.
I'm using keyp to handle the button press, like below in my jumping/falling code. Apologies in advance if this code is less than stellar...I'm more a web guy than a game dev.
function updatePlayerYSpeed(entity) oldSpeed=entity.ySpeed if(keyp("space") and not entity.isFalling and not entity.isJumping) then entity.isJumping=true end if(entity.isJumping and entity.ySpeed>-entity.maxSpeed) then if(entity.ySpeed>0) then entity.ySpeed = 0 end return entity.ySpeed-entity.speedMod elseif(entity.y<yMax) then entity.isFalling=true entity.isJumping=false return entity.ySpeed+gravity [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=156333#p) |
This cart shows what I think is a bug with the garbage collector interacting with weakrefs. Nothing should be drawn, yet sprite zero is shown. I'm not entirely sure how to show code here? I'm new!
Here are the steps:
Create a table with weakref values.
Add a value to that table.
Pass that table to a function.
The function uses a LOCAL variable to iterate over ALL() values of the table.
Return
The LOCAL variable holds a reference to the last member of the table. The LOCAL variable doesn't appear to get correctly garbage collected, and so neither does the last table member.
Weirdly, if I run stat(0) inside the function with the iterator, all is well. If I run it outside the function, nothing works.
You are a ship collector with questionable methods of obtainment.
Collect the 100 unique ships! Embarrass the police when they try to catch you!
π
ΎοΈ
Primary weapon (hold to shoot and charge Secondary)
Secondary weapon (release and press)
Repair (mash!)
β
Tertiary weapon
Press β in hangar to see upcoming enemies.
Features:
- 2 player co-op!
- 100 unique ships!
- 10 different weapon systems!
- Progressive difficulty!
- Particle effects!
- Embarrass the police without real world implications!
Change log:
I made definition files so that LSP can support pico8/picotron's library functions and special syntax, so that pico8/picotron programs can be written in external editors such as VSCode while getting the help of various modern features.
How to
- Install and enable sumneko/Lua extensions in VSCode Marketplace
-
Download pico-api
- New a folder .vscode in your workspace, and put the file setting.json into it
- Change the field Lua.workspace.library in .vscode/settings.json to the path to the folder picotron(or folder pico8, depending on the type of your project)
- New a cartridge and use this snippet at the top of its code:
-- picotron cd("/myproj") include("main.lua") -- pico8 [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=131319#p) |
On vacation recently, I was excited about seeing Mt Fuji from a ropeway the next day and made a quick tweetcart about it! 275 bytes
(275 chars)
pal({7,12,140,13,129,1,5,8,8,14,142,143,7},1)r=rnd::_::x=r(128)y=r(128)c=9+y/26-2+r(1.5) if(y<((x+40)/6)^1.6and y<((178-x)/6)^1.6and y<79+r(2))c=2.5-sgn(y-45-sin(x/21)*r(4))*1.5+r(2.5-sgn(x-69-r(8)-y/3+25)*.7) pset(x,128-y,c)a=r(1)d=r(25)pset(28+sin(a)*d,30+cos(a)*d,9)goto _ |
You are trapped alone in a forest, and must find a source of warmth...
Oh, and you're also blind.
Directions
- So... what do I do again?
Use the arrow keys to move. Please avoid running into walls.
- Wait! But I can't see the walls!
Use X + an arrow key to check in a particular direction for walls.
- Okay, but where am I going?
Press Z to check the temperature.
- "Warmer" means you're getting closer.
- "Colder" means you're getting further.
- "..." means that it's the same distance away as the last time you checked, or that you haven't moved since last checking.
- Closer to what?
The exit, which will allow you to select a power-up, then take you to the next level.
- Pfft, this is going to be easy.
Keep an eye on the meter towards the bottom. When it runs out, you freeze to death.
- oh. . .
Tips
Tiles are "remembered" (become visible) as you traverse the level (or check things or run into stuff). However, they also fade from memory over time.
As you get closer to the exit, "embers" will become visible to help guide you.
Remember to eat some stew between levels, whenever possible. You might not last too long if you don't...
And finally
I had this weird idea in my head for a while, of some sort of dungeon crawler where the player would only be able to see tiles that they had visited recently. So I decided to create it. It took me a little under a week to finish this, though it isn't really a dungeon crawler anymore.
This is my first complete PICO-8 game. Hopefully it's fun. Enjoy!
--J. M. Potionwiz