i was using testing the classic library and notice nobody made a version for pico8 ,
the main motive probally is because pico8 uses tokens to limit your scope ,so something like oop can be really token intesive but, i made it anyways so here is classic in pico8.
--classic but in pico8
--class
class={}
class.__index=class
function class:ext()
local nclass={}
for k,v in pairs(self) do
if sub(k,1,1)=="_" and
sub(k,2,2)=="_" then
nclass[k]=v
end
end
nclass.super=self
nclass.__index=nclass
setmetatable(nclass,self)
return nclass
end
function class:new()
end
function class:__call(...)
local obj=setmetatable({},self)
obj:new(...)
return obj
end
|
tip:use with responsibility.

An early proof of concept for an Total War-like RTS in Pico8.
Controls (Global map):
Left and right arrow - choose territory.
Up and down arrow - choose type of troop to buy.
X - buy troop.
Z - attack territory.
Controls (Battlefield)
Arrow keys - move troop.
Z - choose next troop.
Different types of terrain provide different bonuses:
- Units in Forests can't be shot at.
- Units in Mountains shoot farther.
- Units in Swamps are slowed down.
- Units on Roads move faster.

Z / Left Mouse Click - summon tower
Hold X / Right Mouse Click - sell tower
The game is released on Steam: https://store.steampowered.com/app/2152410/WitchCraft_TD/
Steam version has achievements, new enemies, balance changes, small interface updates, music update.
Tileless main image is implemented with this snippet by @spellcaster https://www.lexaloffle.com/bbs/?tid=38884
Work-in-Progress game for the Basic Shmup Showcase.
Controls:
- ARROW KEYS to move
- Z to fire bullets
- X to fire s.weapon

I want to import my MIDI file into Pico-8,
and there will be a little error with using Denote or Midi2pico.
So I want to try import each tracks separately.
But I encountered a problem.
If I directly paste music data, it always pastes to the track 1, and covering the track previously posted.
and, I don't know how to move the music of track1 to track2.
Like this.
Is there a way to move all the music of track1 to track2 ?
I had used text editor to open .p8 file.
But I can't understand number rule.

I am working on a little shooter where players can move up and down a fixed track, and can aim a cannon to shoot a projectile at an angle. Ideally, this angle can run parallel to the track, but shouldn't intersect it.
I thought I had the math down, but I am running into an issue where the players' projectiles are able to intersect the track. It appears that, even though I constrain the angles that player cannons can point and fire, players seem to be able to extend and shoot a tiny bit beyond it. Strangely, a simple debug test that prints the angles indicates that they should be parallel to the track in these situations.
Angle constraint formulas:
--player 1 is on the left side, and aims right if p1.a<270 and p1.a>100 then p1.a=270 end if p1.a>90 and p1.a<270 then p1.a=90 end --player 2 is on the right side, and aims left if p2.a<90 then p2.a=90 end if p2.a>270 then [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=116799#p) |

Roguelite Shmup
Featuring 44 unique upgrades to choose from spread over 3 rarities - no build will be the same
There are also 4 different playable ships with their own playstyle (your unlocks are saved)
Can you weave through the 6 deadly waves of malevolent alien life?
Controls:
Z - (hold) Shoot / Select Item
X - Fire Weapon / Start Game
D-Pad - Move / Choose
Version 3 has arrived!
Changelog
-New common item, Lucky Kitty
-Removed rare item Evil Eye and replaced it with a new item, Elastic Compound
-Reworked items Red Headband and Mint Milk
-Reworked Pineapple playable ship
-Lots of visual improvements
-Critical hits have a new sound effect

Yay, I can still do it... after 35 years of work and family, I've made a game again.
Thanks to my son #2 for additional graphics and design.
Based on Dylan Bennett's βPICO-8 Top-Down Adventure Game Tutorial
Thanks a lot!:)
Features 20 Mobs, 16 Rooms, a secret Yetilevel!
Whip your whip in the running directionβ
Hint: You can move diagonalyβ
Have fun!:)


Line Of Sight Function
I`ve created a Line-Of-Sight function that should work for most projects. It checks for map-collisions(using flag0 as the collision layer). Please use it and let me know what you do with it!
I was inspired by this post: https://www.lexaloffle.com/bbs/?tid=48889
But i wanted a simpler starting point for my own approach. A Line Of Sight check is a good starting point for you own approach but also involves some math. So to bypass that step use my function:
UPDATE 16/9/22
added a optional length-variable. Use it to define a max "range" of the that line. Keep in mind that the function already neglects far away points.
Also added a new break point for perfomance.
function can_see(x1,y1,x2,y2,length)
--x1 and y1 are the point of view,length is the max distance of the two points
local max_length=length or 1000
local xvec=0
local yvec=0
local len=0
local ret=true
[ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=116768#p) |
Updates:
Revision 7 (0.1.1) - Minor changes, and bug fixes:
- Tweak: Mana Burst now grants a new Frog Bomb upon completion. Other effects are removed.
- Tweak: Triples shots now deal less damage.
- Tweak: Sprial shots now deal more damage.
- Tweak: Final Boss's health increased by 30%.
-
Tweak: Now Lina can move between transitions.
- Fix: Frog Bombs are now consumed when used.
- Fix: 3rd Witch now summons correct minions.
- Fix: Final enemies death will not cause immediate stage change.
- Fix: Frog Bombs now should be less performance killers.
Revision 6 (0.1.0) - Full Jam Release

I'm new to PICO-8, and am trying to get a basic top-down movement system. So far I have this:
left = btn(β¬ οΈ) right = btn(β‘οΈ) up = btn(β¬οΈ) down = btn(β¬οΈ) xspd = (num(right) - num(left)) * player.speed yspd = (num(down) - num(up)) * player.speed if fget(player.x + xspd, player.y) == 0 then xspd = 0 end if fget(player.x, player.y + yspd) == 0 then yspd = 0 end player.x = player.x + xspd player.y = player.y + yspd |
num() takes in a boolean, and outputs a number (true being 1, false being 0)
The problem I have, is that I'm trying to stop the player if they hit a wall (The wall's sprite having flag 0), and I'm not sure what to do. Does anyone know what's going on?
PICO-1K Jam 2022
The 2nd annual PICO-8 1K Jam (#Pico1k) has now started! π₯³
π https://itch.io/jam/pico-1k-2022
You have until the end of September to make cool things in PICO-8
...by using only 1K (1024) Compressed Bytes of code ποΈ
No pre-defined Sprites, Maps, SFX or Music data allowed.
ALL content must be created using code.
It can be a:
πΉοΈ Game
ποΈ Demo (Animated or Interactive)
π οΈ Tool or Utility
...whatever you can fit within 1KB, basically!
It's a relaxed, non-competitive jam, running for a whole month.
Please refer to the PICO-1K Jam page for Rules, FAQ & Resources & more info.

"Gravity Wrangler"
Each world hurtles into the deep, feigning a wandering heart, accelerating their demise. What would they think if they realized that, through the eons, I was the only one standing between them and the frozen abyss...
279 characters
m,o=128,{}for i=1,9 do
o[i]={rnd(m),rnd(m),0,0}end::_::for i=1,18 do
for j=1,64 do
pset(rnd(m),rnd(m),rnd(m)<1 and rnd(3))if(i<10 and j<10)a=o[i]b=o[j]x=a[1]-b[1]y=a[2]-b[2]d=sqrt(x^2+y^2)+.1a[3]-=x/d/999a[4]-=y/d/999
end
a[1]+=a[3]a[2]+=a[4]pset(a[1],a[2],i%9+7)end
flip()goto _ |
Carlae is a itsy-bitsy snake in πΉΜΆπ½ΜΆπΌΜΆ 358 characters, named after the cute tetracheilostoma carlae, but tetracheilostoma was kind of a mouthful.
changelog
2022-09-24
- shaved 18 characters






1 comment





.png)