EDIT: I just realized run
already takes an argument to serve as the breadcrumb from another cart. So this isn't an option. Never mind, nothing to see here.
Presently, to load+run you literally have to load blahblah.p8 and then run.
Would it be a bother to run the "run" code through the same line parsing that handles "load", and then auto-run it afterward?
I ask because I was running a bunch of local carts from the command line and it was a tiny bother to have to do two steps each time.
...YES, I realize this is a very minor thing, but hey, why not mention it? The worst that happens is that it doesn't get implemented, right? XD
... uh... r—right...?
Multi Marshmallow
Marshmallow Infinity with split-screen multiplayer.
=-=-=
New Version
The full version is now on the Marshmallow Infinity thread.
=-=-=
Press Z/O on up to 5 controllers to play with that many people. (4-5 might be a bit slow)
Collect coins to increase your score. The marshmallow with the most coins after everyone is burnt wins.
Blue coins will give you a coin or a life-up randomly.
Controls:
- Use the left and right arrow keys to move and Z to charge a jump.
- Release Z when the marshmallow stops flashing to jump high.
- Release Z while it is still flashing to do a small jump.
With circfill(), it's easily possible to draw circles everywhere, and even draw a circle with another circle cut out of it. But how would you draw the intersection of two circles, like the middle section on a venn diagram? I can't think of an easy way to do it. What I'm really looking for here is a way to shade arbitrary segments on an arbitrary venn diagram. Can anybody help?
If we type "x = -6", the "-6" part requires two tokens, which I assume is because the version of Lua you use was still internally treating negative literals as positive literals with a unary-minus operation applied to them, e.g. "x = unm(6)".
However, using a negative literal in PICO-8 appears to have the same cycle cost as using a positive literal, as far as I can tell with my benchmarks. For instance, "x = y / -6" costs the same as "x = y / 6".
So basically we're being charged a token for an operation that doesn't actually seem to occur, and really shouldn't need to occur anyway.
Would it be possible to delete the token cost for unary-minus if it's being applied to a literal?
The alternative is that people in dire token straits will write "x = y / 0xfffa", which is just gross. :P
Temporarily without a mouse, I notice that pico-8 ignores certain inputs from windows's mouse keys thing, where you can use the numpad to control the cursor. The default click button is NUM5, which doesn't get through. the system also uses NUM0 and NUM. for hold and release, to simulate click'n'drag, and those work fine, so you can still (clumsily!) draw pixels/stages.
Just thought I'd mention it; I understand this isnt exactly a priority thing to fix :)) but could I request a keyboard shortcut to add a code tab? I can't seem to find one and it's really the only reason I'd want to click anything in the code view. thanks!
Graph Plotter
Been working on this for a while! Hope you enjoy!
This is my first pico-8 project so I'm open to critical feedback!
Version 1.1:
-Removed polynomial setting to make way for big update ;)
-Added ability to "stamp" current graph and then calculate the intersection of the two graphs (i.e. solve the simultaneous equations)
-Bug fixes
Hello!
I'll be doing some visual effects coding and streaming it tomorrow on Twitch. That's Tuesday, March 24, 18:00 EET. This will actually be the first time I'm doing a show on Twitch, so hopefully everything goes well :)
Here's the link. See you there!
Hi everybody!
So, for a jam I'm far too unskilled to have considered, I'm putting together a little game where up to four players can pilot tiny ships and defend a fort. The ships can move about, and (eventually) shoot in the direction of a target that can be rotated around the ship by holding a button. It looks like this in practice:
(Enemies and animations forthcoming.)
Right now, I am attempting to optimize the code, because the player inputs eat a LOT of tokens in their current form. I currently have four different sets of inputs, one for each player, and each also moves a target that is specified as its own object (target1 with .x and .y, target2 with .x and .y, etc.). This is obviously no good, given the immense redundancies.
I think one could probably code a generic input function by making each target a property of its ship, using something like this:
function input(p) if btn(0,p.c) then p.x=p.x-1 p.targetx=p.targetx-1 --repositions player and target [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=73758#p) |
New version as of 9/12/2020 : Updated graphics, sound and movement controls.
Controls
Arrow keys move.
(x) to restart.
About
An asteroid mining roguelike.
You mine pink and yellow minerals for coins.
You mine blue water that is used as fuel for steam power.
You mine brown regolith for shielding against solar wind.
Moving to an asteroid starts the mining process.
The shield and fuel costs are designated as brown or blue numbers in the center map. When you cross the numbers, your shields and fuel are decreased that amount.
High brown numbers indicate intense solar wind. High blue numbers indicate distant asteroids.
Any feedback is appreciated.
Hi,
I'm iterating over all map cells multiple times, to do various actions:
for t_x = 0, 127 do for t_y = 0, 63 do -- scan tiles end end for t_x = 0, 127 do for t_y = 0, 63 do -- do something end end for t_x = 0, 127 do for t_y = 0, 63 do -- place tiles end end |
This works, but uses a lot of tokens (do something is actually 4-5 different actions).
As there are a lot of interdependencies between cells, I can not do this:
for t_x = 0, 127 do for t_y = 0, 63 do -- scan tiles -- do something -- place tiles end end |
Instead, I wanted to do this:
functions = { scan_tiles(t_x, t_y), do_something(t_x, t_y), place_tiles(t_x, t_y), } for f in all (functions) do for t_x = 0, 127 do for t_y = 0, 63 do f(t_x, t_y) end end end |
But I never get the arguments passed to the functions I call.
How to go about this?
All help very much appreciated!
I'm having an issue where it seems like I absolutely cannot pass an argument to a function, no matter what I do.
For starters, I am using doc_robs' famous hitbox function:
function player_hit(x1,y1,w1,h1, x2,y2,w2,h2) local hit=false local xs=w1/2+w2/2 local ys=h1/2+h2/2 local xd=abs((x1+(w1/2))-(x2+(w2/2))) local yd=abs((y1+(h1/2))-(y2+(h2/2))) if xd<xs and yd<ys then hit=true end return hit end |
So far, so good, right? Then I pass the following arguments along to it from another function:
if player_hit(p1.x,p1.y,pw,ph,star1.x,star1.y,sw,sh) then --stuff happens in here end |
All of the values in the preceding if statement are defined at _init(). The values pw, ph, sw, and sh are all 2, defined as global variables. The p1 and star1 values come from tables.
But every time I run my program, this error occurs: