I have made a set of tools that allows you to get some kind of sprites on the TI-84 CE (and CSE, but that has DCSE). I found Elfprince's [not so well written] tutorial on using plots to create sprites. since the TI-84 CE has no sprite system right now, I created a set of tools that should help people use Plots for their own spriting needs.
Plotsprites have numerous disadvantages to using standard sprite systems, but it does work and can display sprites, which is what I was after.
Issues:
Cannot display more than 999 individual points - limitation of using list variables. likely get around: use Plot2 and Plot3, or storePic?
Takes a long time to add multiple sprites together - limitation of PlotAdd program. what is a better way of adding one list to the end of another?
Note on P3 Compression:
P3 compression (P3: Pixels-per-plot) is a lossy compression; only even rows and columns are kept. draw with A=1 (if using plotspr program) or, well, not the smallest dot. If you pick apart these programs, you will see what I mean.
Download:
Cemetech.net:
Plotlib
This looks great, Luxen; thank you for putting this tool together. Ever since Elfprince posted
his guide on sprites without libraries, I've been sad that more programs don't use plot/stats sprites and text sprites. Between this tool and
mr womp womp's new text sprite generator, I think that TI-BASIC programmers have a nice toolbox for lib-less programs.
Could it be because plot sprites are interconnected with each others, unlike on the FX-9860G (where if you draw a dot outside the screen then it's not connected with lines, allowing ASM-like graphics if you have enough RAM)? As for text sprites it might be due to slow drawing speed. I always found dual-layer ASCII more ideal. But it's cool that there are multiple ways like this to create pure-BASIC sprites.
Kerm wrote:
Ever since Elfprince posted his guide on sprites without libraries, I've been sad that more programs don't use plot/stats sprites and text sprites.
DJ_O wrote:
Could it be because plot sprites are interconnected with each others...?
Plots aren't fast enough to be "ASM-like" (at least for screens that need to be constantly updated), but they aren't connected, either. Just use the "Scatter" plot type. this makes L1L2 pretty much a fast way of "Pt-On(X,Y" where X=L1(n) and Y=L2(n).
Kerm wrote:
Between this tool and mr womp womp's new text sprite generator, I think that TI-BASIC programmers have a nice toolbox for lib-less programs.
Anyone want to try and see the speed difference between these two methods, as well as size and "ease-of-use"? I'd imagine Plots would take more space in memory, but would render faster (excepting for adding more than one sprite to the screen (PlotAdd (seriously, anyone have ANY ideas on how to make this faster???))).
Edit:
I found that rendering some screen once is fine, but you must 1->dim(L3 and L4 before you prepare the next screen. otherwise, PlotAdd will just slap the new screen on top of the old one. Ill write up a fix for this, but just so you know!
bump: haven't packaged it yet, but I found a way to make PlotAdd MUCH faster. ya know, I was looking through the command listings for plot math, and found this nice thing called "augment".
besides that, I've only done a handful of other optimisations, nothing that is really notable.
Big noteworthy improvement! I think I found out how to get around that 999-point limitation. will run through the gamut tonight, but I'm pretty absolutely certain it'll work.
At the same time, Ill also rework the current toolset to use less REAL vars, so you have more to work with for your games.
Will update and upload on Saturday or Sunday. see you till then!
Well, I decided to wait on releasing the update, cause ill be packing in several example programs with it. This way, people new to plotsprites can better see how plotsprites work. I recognise that my previous example program was rather useless except for listing what was available in the package.
Anyways, here's what i'm working on:
Card matching game
Rock-paper-scizzors
Tunnel flow
Sorry for the delay, but I promise it'll help.
Thank you so much for making this. I really needed this. Is there a tutorial on how to use this?
Hey Luxen, this is awesome, I don't know how I missed it earlier. I'm really excited to see what you come up with using stat sprites. Sorry about the sometimes atrocious grammar in that guide, I wrote it in one sitting back in 9th or 10th grade and was too excited about it to really proofread. I thought I mentioned augment() in the tutorial though as the suggest canonical way to concatenate plotsprites. The 999 point limit wasn't an issue back on the 83+, because we only had 768 pixels to work with. What is this nonsense, assembly world has corrupted my brain. I just used low-pixel-density graphics.
Calc_Knight: Kerm linked to a tutorial above that covers some of the techniques.
Cool. Is this in color because all of the screenshots are in black and white?
plotlib /currently/ only supports single color sprites, and because of the work that would be involved in decoding a multicolor sprite for plotlib, I never will add it.
If you need to work with color, then either modify/use your own 'plot1(xxx,yyy,zzz.....'. One of the options in there is color. I would have made the color directly choosable via a variable, but for some odd reason, it doesnt accept variables in that.
A better tutorial will be uploaded once the final, polished version of plotlib is released.