Made this to try my hand at using sin and cos to draw shapes. plus i just wanted to make some snow :3 I overclocked it with the number of snowflakes because i wanted to see as many as possible. the framerate drops aren't so bad for the subject matter anyway...
EDIT: 1.1 Update!
- number of flakes and max radius fluctuates now so it's a much more dynamic screensaver
- refactored the code in a separate lua file for easy implementation into other projects
- "manual" mode with button inputs for messing around, also intended for anyone who wants to use this for their own thing. to access this, load the cart and set "manual" to true in snowflakes.lua
PHOTOSENSITIVE EPILEPSY (PSE) - SEIZURE WARNING FLICKERING IMAGES!
Just finished a write-up on this but managed to lose it somehow, so here's the short version.
Trying to write a couple of my own Triangle Fill algorithms before digging into any of the ideas presenting in this thread:
https://www.lexaloffle.com/bbs/?tid=31478
One of the algorithms I tried poorly "borrows" ideas from Brenesenham's Line Drawing Algorithm found here:
Optimal Popsicle Obstacle
More of a brain twister than a tongue twister
You run an out-of-the-oridnary popsicle stand, setting out your treats at night and only selling them at the end of the day. Within this time, they can melt, sog, or even worse. Your profit depends on how well you can stick, stack and freeze together your goods in order to create the optimal popsicle obstacle.
This is a work in progress simulation or particle system, based on The Coding Train video Coding Challenge #124 https://www.youtube.com/watch?v=mhjuuHl6qHM
Controls:
- If left mouse button is clicked, the particles will avoid the mouse.
I'm open to any change to boost the performance of the simulation (Quadrtree?). I plan to use it in a fishtank wallpaper or so, if anyone finds another use, feel free to play with the code!
Picotron started crashing when I run my new project, usually a few seconds after I start running it.
I can't figure out how to upload my cart, it keeps saying it's not valid
EDIT: Uploaded the cart
It seems like the .png file doesn't have the same issue when embedded here
Here's the crash report:
Translated Report (Full Report Below)
Process: picotron [37034]
Path: /Applications/Picotron.app/Contents/MacOS/picotron
Identifier: com.lexaloffle.picotron
Version: 0.1.0e (0.1.0e)
Code Type: ARM-64 (Native)
I've been trying to wrap my head around saving and loading in Picotron.
As always feel free to correct or improve, I'm always happy to learn.
2 main concepts to understand
As far as I know there is no automatic allocation of space for persistent userdata like in Pico8. You save your userdata as you would in other conventional game engines as an extra file. This makes it a whole lot easier.
This data is best stored as a table, so try player_vars={"Tammo",{"Sword",1},}
. That data structure is internally stored as a .pod, which can be saved or read via store
and fetch
respectively. (Otherwise you'll have to arrange your data and pod
it before saving just to unpod
it after loading it.
Now you'll just need a place to store your data. It is good practice to create your own folder inside /appdata
with mkdir
. For example mkdir(save_dir)
These files can be opened and read, but this is fitting for our open community. Let's imagine the easiest possible usecase. We want to keep track of the highscore. We need to check for any existing high scores on _init
and load them if they exist. If not we'll just start with the default value.
The Jelpi demo included with PICO-8, but with a cheat menu that can do some pretty funny stuff.
Cheats
Page 1:
RESTART LEVEL
: Restarts the current level. Unmodified from the original version.THANOS SNAP
: Activates the glitch mushroom effect, but way more intense. Destroys the game pretty much instantly.MAKE BREAKABLE
: Makes all of the tiles in the current level breakable.SKIP LEVEL
: Skips the current level.
Page 2:
INVINCIBILITY
: Activates the invincibility power-up effect for the duration of the current level.INFINITE CHARGE
: Disables the cooldown on Jelpi's charge attack, allowing him to go very, VERY fast.TOO MANY GEMS
: Turns the breakable blocks and some background objects into gems.
Petri
Petri is a chill cellular life simulator. Witness the rise and fall of countless living cells all trying their best to survive and reproduce.
Behavior and ultimate fitness are governed by stats, mutations, and a move-set, all of which are encoded into rudimentry DNA that is passed down to offspring.
Cells that consume enough food become healthy enough to reproduce. Reproduction weakens a cell, but allows it to pass its DNA (with potential mutations) on to the next generation.
Controls
❎ (X): Cycle through display modes
Enter/Pause: Display pause menu and adjust various game parameters
Additional Info
Stats
Each cell has three stats: strength, agility, and speed.
- Speed determines how likely a cell is to move
- Strength determines how likely a cell is to consume energy each time it moves
- Agility determines how likely a cell is to change direction each time it moves
Move Sets
Each cell has a move-set consisting of a list of numbers, 1-4, representing a cardinal direction.
Display Modes
The default display mode will output the number of living cells, the number of total births, the number of total dead cells, the amout of food currently in the environment, and the highest generation achieved.
The text-based display mode outputs the stats of the most recently birthed cells. Move-sets for each cell are indicated by a band of pixels, each color representing a different direction.
Sounds
There are only two sounds effects in the game, one to indicate a birth, and one to indicate a death.
based on the tutorial from here https://docs.coronalabs.com/tutorial/data/shuffleTable/index.html
local cardDeck = {"AS","AH","2S","3S","KH","QD","QS","KD","4D","10H"} math.random(flr(rnd())) local function shuffleTable(t) if (type(t) ~= "table") then print("warning") return false end local j for i = #t, 2, -1 do j = math.random(i) t[i], t[j] = t[j], t[i] end return t end cardDeck = shuffleTable(cardDeck) local currentIndex = 1 local function drawCards(num,deck) local cardsDrawn = {} for i = currentIndex, num do cardsDrawn[#cardsDrawn+1] = deck [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=145857#p) |
Celeste Downside
This is a mod inspired by Linj's map from newleste strawberry jam, "Summit downside".
You can press down to stop moving on the ground.
we take no responsibility for any harm caused to the player (you) and/or their desk as they play this mod. no financial compensation will be given for any property destroyed as a result of playing this mod. Thank you for understanding.
Updated to fix final level, making it less terrible
ExternalLog
A basic Log window that can be used with any windowed cart
Running this will open a readme.txt with this same text in it
Look inside to find the actual ExternalLog.lua file
Also see 'Example.lua' to see how to use this
Simple Usage
- Place ExternalLog.lua into the same directory as your main.lua
- Inlcude the ExternalLog.lua file with: include("ExternalLog.lua")
- Call ExternalLogWindow() in _init()
- Call Log("Hello World") to add a log message
Other Features
PassPrintToLog():
Call this in _init to be able to use print() to send Log messages
(you can also pass 'false' as a parameter to disable regular printing)
version: 0.1e
Os: Windows 10
How to reproduce:
- run following code
a=vec(1,2,3) b=vec(1,2,3) print(0.5*(a+b)) |
- picotron crashes to deskop with:
Exception thrown at 0x004A231E in picotron.exe: 0xC0000005: Access violation reading location 0x00000000.
Workaround #1:
a=vec(1,2,3) b=vec(1,2,3) print((a+b):mul(0.5)) |
Workaround #2:
a=vec(1,2,3) b=vec(1,2,3) print((a+b) * 0.5) |
Bouncy Ball
v3 2024-05-14:
- skarrmann hidden palette added
- increased chance of seeing secret unlockables
"The depressing thing about tennis is that no matter how good I get, I'll never be as good as a wall."
Game Guide
It takes a steady paddle...
The paddle imparts its speed on the ball, so keep it steady or use this to your advantage to control the ball.. if you can keep up with it!
Modifiers
Modifiers will refresh along the back wall every 5 bounces. Some will give you an advantage, others a disadvantage. Be careful what you land on!