Ceil() function does not work correctly:
ceil(1) -->returns 1 ceil(1.0) -->returns 2 (Error) |
Same for any N.0 float. Seems to work correctly in other circumstances.
LUA math.ceil(1.0) correctly returns 1 and can therefore be used as an alternative in the meantime.
Tested with version 0.1.0e on Windows 10
(I already posted this in the 'Picotron bugs' thread, but including it here with a proper 'Bugs' tag as I couldn't work out how to add a tag to the other post)
Version 0.1.0e on Windows 10
Strings cannot be indexed using var[n]. This is different to Pico-8, where strings are indexable. However, for Picotron, it may be by design as strings are not indexable in Lua itself.
a = "string" print(a[2]) --> outputs nil (should be 't') |
A workaround for the time being is to use sub(a, 2, 2)
Hi! I am new here
I just barely bought Pico 8 and used some tutorials online to make this simple animated "GeK"
If anyone has any tips or just criticism for beginners like me, I'd very much appreciate it.
(I have had experience with html and JavaScript before)
0.3 finally released
Controls are simple: Arrows move GeK and X makes him "speak"
This is 0.2
Hi,
Currently toying around with Picotron basics after some (but not too much) prior experience with Pico8.
I'm trying to work with multiple layers and some degree of transparency between them but it's not quite working.
In the map screen, nearly all tiles are in the lowest layer; the top layer has only the single mushroom sprite on the far right. My assumption is that the default black in subsequent layers would act as transparency. I swear I had this working previously but am having trouble recreating it -- when I actually run the cart, the black of the upper layer acts as just solid black, only rendering the mushroom but nothing of the layer below (wizard character drawn at runtime).
Based on Pico8 docs, I've got a palt(0, true) in my _init() with the understanding it should turn black to alpha, but it seems to make no difference. I also see that black should certainly act as the transparent color by default anyway?
Anyone know what I'm doing wrong? Swapping layers renders that grassy layer as expected, with the lower layer (mushroom) totally hidden.
Very much an early work in progress. Wanted to make a super small arcade game, something you might see with vector graphics and a roller ball for controls.
I haven't made games in awhile, been trying to work on larger projects, and that has been pretty daunting. But then I went to Can Can Wonderland, a very cool arcade in St. Paul, Minnesota, USA. I played a bunch of super retro arcade games there, stuff like Atari Football and Anti-Aircraft. I was inspired to try to make a game like that, something with very simple controls and concepts.
Controls:
up/down/left/right - Move cursor
Z - switch cursor direction between left and right
X - turn closest plane in the direction of the cursor
This is very much a proof of concept. If I go further with this, I imagine that each color plane would have to be directed to a certain edge of the circle, and later levels would have storm areas you have to avoid, and UFOs that are worth bonus points.
load #solitaire_suite
no sound currently added
saves don't work on bbs right now
the mod manager isn't guaranteed on the bbs right now
Release 0.2.0
Version 0.2.0 brings a new solitaire game, a mod manager, and a bunch of smaller changes. Thanks to anyone whose been following the updates and joining the streams. Also thanks to Louie Chapman for his contributions (2 solitaire variants, a card back, and helping test that it actually works.), SoundDotZip for the aseprite to picotron image plugin, Fletch for an animated card back, and imjustkerb for testing out the example project.
The suite currently has 7 solitaire variations main
- Klondike Solitaire
A battle theme for my game
Boy, oh boy. Making video games takes a bunch of work.
I’ve decided to release my game as a serial, like a comic book.
I will need to make a couple of enemies, puzzles, sfx, throw it all in a level and move on to the next entry.
Hopefully I can bundle everything in a multi cart, or picotron cart.
edit:
removed reverb
I'm having trouble understanding the clip function. When I use it with a stationary camera it works as I would expect it to but when the camera follows the player it hides everything I'm trying to clip. I'm probably missing something obvious here. Any help would be greatly appreciated!
function _init() p={ sp=16, x=63, y=63 } end function _update() if btn(⬅️) then p.x-=1 elseif btn(➡️) then p.x+=1 elseif btn(⬆️) then p.y-=1 elseif btn(⬇️) then p.y+=1 end --i comment out the camera --for stationary movement --in this example camera(p.x-63,p.y-63) end function _draw() cls() map() if p.x>72 and p.x<90 and p.y>32 and p.y<64 then clip(p.x,p.y,8,4,true) spr(p.sp,p.x,p.y) clip() else spr(p.sp,p.x,p.y) end end |
not sure if this is a bug in picotron or just in the docs, but in the gfx pipeline doc it says that the colour tables are accessed like this:
out_col = peek(0x8000+coltab*0x1000 + target_col*64 + draw_col) |
but to get the colour table working properly in practice i have to swap the target and draw colours like this:
function c_set_table (draw_color, target_color, result) poke (0x8000 + 64 * draw_color + target_color, result) end |
thought i'd post a demonstration of generating simple dither patterns for fillp in case it was useful to anyone!
feel free to use under the CC license or mit license or public domain
dither.lua:
-- threshold map from https://en.wikipedia.org/wiki/Ordered_dithering local threshold_map = { 0, 8, 2, 10, 12, 4, 14, 6, 3, 11, 1, 9, 15, 7, 13, 5, } local function make_mask (value) local mask = 0 for i = 1, 16 do mask = mask * 2 if threshold_map [i] >= value then mask = mask + 1 end end return mask end local dither_masks = {} for i = 0, 16 do dither_masks[i] = make_mask (i) [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=145139#p) |
About
A classic example of scope-creep 😅
What started off as an exercise to learn how to do create a cool "Tron"-style theme in Picotron
...eventually turned into a Theme+multi-Wallpaper pack (WITH Installer!) 😇
Installation
Run the following from the Picotron console:
load #pico_tron
Then do <CTRL/CMD+R> to run the installer
- To install the TRON-style Picotron theme, click Install [Theme]
- To install the multi-Wallpaper cart, click Install [Wallpaper]
- To change wallpaper (at any time), click [Next Wallpaper]
NOTE: In order to persist the above installation, the following paths need to exist:
Any time something does a notify(), if "RSHIFT Magnify" is enabled, the mouse cursor and the icons at the top of the desktop get black boxes around them, and applications seem to have issues updating graphics in windowed mode. After the notify(), opening applications in windowed mode seems to tank the framerate as well.
I'm only on Linux, unable to test other OSs.
Issue is not present in version 0.1.0b2_amd64 binary.
Issue is present in both static and dynamic binaries for 0.1.0d
Issue resets on restarting picotron, but resumes on next notify()
Toggling "RSHIFT Magnify" does not clear issue
Steps to recreate issue:
- Move/remove/rename your existing lexaloffle folder
- mv ~/.lexaloffle ~/.lexaloffle.old
- Launch picotron
- ./picotron
- Enable magnifier
- Picotron menu > System Settings
- Page 2
- Select checkbox "RSHIFT Magnify"
- Trigger a notification
Hello @zep. I had to dig into the bug where text in text editors would overlap for some reasonand I noticed something: on Windows, the following snippet causes the issue 100% when pasted from notepad:
adasd the game |
Of course, I don't think copy-pasting it from here would work. As a matter of fact, there should be two blank lines and there's only one, so there's something altering the text, be it the BBS, the browser or something else.
So, I hacked in gui_ed.lua:insert_multiline_string
a way to read the string and its hexdump in the console log in the following snippet. It's ugly but it's functional.
local res = "" --str = str:gsub("\r", "") -- I'll get to that for i=1, str:len() do local c = str:sub(i,i) local co = ord(c) local cs = c if co < 32 then cs = ("<%02x>"):format(co) end res ..= ("[%s][%02x]"):format(cs, co) end printh(res) |
I spotted the presence `[<0d>][0d]