P#11210 2015-06-09 23:30 ( Edited 2015-06-10 22:43)
Ahaha, was digging through some ooooold game idea files I had. I figured I'd post this one up here see if anyone wanted to do anything with it. I think pico would make a great platform for it. Forgive the simplistic style, I was young and design docs weren't in my vocabulary yet.
I believe the idea was the game was meant to be some sort of endless runner.
You are a chicken. You are running away and hiding from wolves. Running uses stamina, so the wolves will eventually catch you. Can collect feed to help raise stamina and lay eggs. You can lay eggs to help slow them down, eggs may cost stamina? You lay a random type of egg, with better ones being more rare. Normal eggs make them slip past. (Yolks are slippery.) Rotten eggs will ward them off. (Wolves are sensitive to smell.) Birth eggs will leave a chick to slow them down. (Wolves love to eat babies.) Mole holes will teleport you. Farmer will chase the wolves. (Power-up.) Some form of food. (Power-up Full Stamina recharge.) Maybe a button for brief flight? (To help clear pits or avoid obstacles) Flight would use more stamina.
Title is pretty self-explanatory. I'm very audio-driven, but I'm not good at producing audio.
So, I'm hoping to find someone like-minded to collab a small pico-8 project with.
Basically I want to form a game around the music, because that's how my mind likes to do things.
I can listen to the track(s) over and over and form in my head how the game should play out.
I'm very open to all sorts of styles and all levels of professionalism, even if you don't feel your music is that great, if it's got soul and it's better than what I could do, there could be hope!
If anyone out there is interested, let me know here!
Okie doke, folks, here we go!
Glitch Jam is taking place from now until May 3 at 12:00am!
Rules are simple make a Pico-8 creation that features an assortment of fun, crazy glitchiness and post it with the #GlitchJam tag!
A few things to keep in mind while you're glitching away:
1.Any form of glitchiness is accepted at any level! It can be a relatively normal game that uses glitching as an effect or as a theme! It can be in the music as well!
2.Also, you do not have to make a game by anymeans! Glitch style demos are also excepted, audio and/or visual pieces featuring your own special glitchiness are more than accepted, interactivity is optional!
And that's pretty much it! Just jam out and create to your heart's content! Reuse old code, assets, and more! It's all acceptable here! Multiple submissions? No problem, the glitchverse is many and diverse! Keep 'em comin'!
This is a simple mouse over text detection example.
Made it to help someone else's question but figured I'd post it here.
Also this isn't optimized, I tried to make it more for learning than optimization.
function _mot(_t) --if mouse is within the text -- boundaries then set that -- text.over to equal true if(_mx>=_t.x and _mx<(_t.x+(#_t.str*4)-1) and _my>=_t.y and _my<(_t.y+5) ) then _t.over = true else _t.over = false end end
Could be easily simplified to:
function _mot(_t) --if mouse is within the text -- boundaries then set that -- text.over to equal true _t.over=(_mx>=_t.x and _mx<(_t.x+(#_t.str*4)-1) and _my>=_t.y and _my<(_t.y+5) ) end
Everything is commented best I could, but feel free to ask questions if any arise.
So this was a quick project made for mouse and keyboard functionality in future projects. Hopefully someone out there will find it useful for them as well! Below is a "Features" list which also serves as a guide that explains how it works and how to utilize it, as well as some notes about particulars. Enjoy!
|Keyboard and Mouse state monitoring through the use of _keyboard() and _mouse() functions in the update step.*See below.|
|Currently Pressed Keyboard Key is stored in _kbk.|
|A keyboard string is stored in _kbs and sent to the "terminal," or _kbt, when return/enter is pressed. Afterwhich kbs is cleared.|
|Pressing backspace properly deletes the last character of _kbs.|
|Mouse Button state is stored in _mb.|
|Mouse X and Y are stored in _mx and _my. (If you would like to check if a sprite or similar is clicked on, just add a function that is called when (_mblu==true AND _mx >= _ox AND _mx<=_ox+_ow AND _my >= _oy AND _my<=_oy+_oh) where _ox, _oy, _ow, _oh are the to be clicked object's x, y, width, and height respectively.)|
|Mouse Button being held down is stored in _mbl, _mbr, and _mbm for left, right, and middle mouse buttons respectively. If their value >0 then they are being held down.|
|Most of the time you will probably just be checking if the button is being held down or has been released up. These can be checked with _mblu and _mbld for up and down respectively. (This goes for each button: _mbru, _mbrd, _mbmu, _mbmd; following the same pattern.) These are boolean values that simply become true on the frame they happen and are reset to false every frame.|
|Underscores before all variables and functions used by the library to prevent any naming conflicts with existing projects. (You can remove these if you want to save on tokens so long as it doesn't conflict with existing variable names.)|
|Check out the _demo() function's code for an example of implementing the library.|
Pressing p while typing brings up the pico-8 menu. (As does Enter in the browser.) So keep that in mind while you're working.
This thing isn't browser friendly at all, the demo at least. But Pico-8 just isn't there yet with browser compatibility and mouse/keyboard support.
I tried to keep the token AND character count as low as I possible could. I'm sure it could be optimized more. You guys are nuts with that stuff, but I did the best I could to make it tiny and unobtrusive. The library itself sits at 178 tokens and 693 characters.
Note there's no handling for keyboard keys that aren't string characters, backspace, or enter. So things like escape, delete, etc.. they are still added to _kbs but just display as a blank space when printed. But these keys can be easily handled through _kbk the same as return and backspace if you want.
Feature request is permitted. However, I don't want to add too much "specific" functionality. I want to keep it lightweight enough so that it can be slotted into pretty much any project that needs mouse and keyboard support with only minor editing based on case use.
Feel free to let me know if I messed anything up or could have optimized things more in terms of speed or token count!
Feel free to use freely in your games! Credit to MKLIB would be appreciated if you use it, though not necessary!
Why does the demo say "LEFT UP!" "RIGHT UP!" "MIDDLE UP!" before I even press anything?*See below.
*These functions must be called BEFORE any function that tries to read any of their variables because in order to save tokens I do not predefine these variables in the _init() except for kbs which was necessary. If you wanted to you could initialize all of the variables in your _init() code and then it wouldn't matter if they got called early and it would also remove the first 3 "Key up!" messages you see displayed at the start of the demo.
I'm learning more about memory stuff with the pico-8 and it's super interesting!
I had one quick question for zep.
What is meant in the documentation by this line?
"0x5f00 draw state [,cart data] (1024 bytes incl. unused)"
What exactly is draw state?
How is the data interpreted/formatted?
What does [,cart data] mean?
What is meant by (1024 bytes incl. unused)?
Every part of this is so cryptic to me, please help!
When loading things in pico-8 without specifying a file extension, it searches for ".p8.png" files as well as ".p8" files.
It's only a few seconds time saved, but it adds up over time.
So in case I wasn't clear what I'm requesting is that when I type "load cart_name" it could look for both cart_name.p8 AND cart_name.p8.png files.
Arrow Keys to Explore.
X to jump 1000 bytes forward.
This is my first program made with PICO-8.
I just did this to get used to the PICO-8 API.
It is a very rough memory explorer.
One problem I have is that most of the memory seems to get wiped when you run the program.
Also anything I'm doing poorly or inefficiently please let me know how to do better.
I've never programmed anything in lua before.