? MarioMiner Library ● SmileBASIC Source

Sign In

Register
*Usernames are case-sensitive
Forgot my password
Another contest? You asked for it!

MarioMiner Library

Submitted
Updated
Author
Mariominer
Public Key
43EX243D
Min. Compat.
All
Version
1.0
Rating
4 votes
Description I've used this library by myself in multiple programs, but here it is by itself: The MarioMiner Library. This library is packed with some cool features, including pointers, array constructors, sprite shaders, and many other useful gadgets. Documentation in the file will explain each feature to you in simple terms, so it should be simple to understand, though I'm always up for questions. Do you need word wrapping? This library does that. Resizing graphics? Slow, but it does that too. It even has a function that creates an on-screen keyboard on the bottom screen that you can click and use so you don't need to switch XSCREEN (since doing so wipes the sprites and bg screen). It does have an UPPER function, but not a coordinating LOWER function (I don't know why, but I never needed to use it.) Instructions Load the library into a slot (as with all libraries) LOAD "PRG1:MMLIBRARY.LIB",0 USE 1Then you can read the documentation, which should answer most questions. However, the documentation doesn't include shading, so here's some info on that: To use sprite shading, you must make 2 sprites for every sprite you want to use it on in sequential order. First, set the angle you want the light source to be at using ANGD. It takes 2 values: the first one sets the angle of height of the light source compared to the sprite (should always be higher than 181 degrees). The second one sets the angle that the light source is to the sprite on the plane of the screen. This needs to be refreshed only when you are changing the angle of the light source. To get these angles, use GETANG to get the plane angle and GETHANG to get the height angle. When you want to cast your shadow, simply use SHADE (sprite number). This will turn the second sprite into a shadow and properly put it around the sprite. It's very fast and easy; 3 sprites will only take a millisecond to cast the shadow for all of them. Alright, any questions? I'd love to answer them. Notes Don't use the FILE_EXISTS function. CHKFILE works much better; I just didn't know it existed.
Categories
Keywords
  • shading
  • shadows
  • wordwrapping
8 Comment(s) 12Me21 12Me21 Admin Syntax Highlighter Received for creating the code syntax highlighter on SBS Night Person I like the quiet night and sleep late. Express Yourself You could use SPLINK in SHADE so you don't have to update it every time the sprite moves: COMMON DEF SHADE S VAR X,Y,Z SPCHR S+1,SPCHR(S) SPHOME S OUT X,Y SPHOME S+1,X,Y SPOFS S OUT ,,Z SPOFS S+1,,,Z+1 'make sure shadow is behind sprite SPCOLOR S+1,RGB(122,0,0,0) IF HANG!=90 THEN SPSCALE S+1,1,TAN(RAD(90-HANG)) ELSE SPSCALE S+1,0,0 ENDIF SPROT S+1,-ANG SPLINK S+1,S END Mariominer Mariominer First Day Joined on the very first day of SmileBASIC Source Website Promoted Page My page was promoted on SmileBASIC Source! Achievements Expert Programmer Programming no longer gives me any trouble. Come to me for help, if you like! Programming Strength The only thing with that is that, while useful, it kind of throws off the main reason I have it update. The main reason is that if you change the sprite number automatically (like with SPANIM) or change it for a reason (like turning a character into a different facing character), it needs to update the shadow. While SPLINK would be useful, I also kind of dislike it for the purpose. snail_ snail_ Page Moderator Helper Received for being very helpful around SmileBASIC Source Achievements Expert Programmer Programming no longer gives me any trouble. Come to me for help, if you like! Programming Strength Second Year My account is over 2 years old Website Protip: INPUT and LINPUT will pop up the on-screen keyboard regardless of what your XSCREEN is. I'm sure there's some other use for your custom keyboard though (non-blocking keyboard input? I dunno) Curious to try this out! You totally beat me to the idea of sprite shadows so let's see if I'm pleased… (I'm sure I will be anyway.) Mariominer Mariominer First Day Joined on the very first day of SmileBASIC Source Website Promoted Page My page was promoted on SmileBASIC Source! Achievements Expert Programmer Programming no longer gives me any trouble. Come to me for help, if you like! Programming Strength The only thing I dislike about INPUT and LINPUT is that it interrupts anything else that's happening at the time, so if you want to be able to type and detect, say, the B button, you can't. 12Me21 12Me21 Admin Syntax Highlighter Received for creating the code syntax highlighter on SBS Night Person I like the quiet night and sleep late. Express Yourself I made a LINPUT replacement function for my chat program. I would have released it separately, but instead of the function being run in a loop or something, you use it like regular LINPUT, and it will GOSUB @UPDATE every frame, which kind of limits its uses. PetitPocky PetitPocky Staff Pick "Your program is one of our favorites!" - Staff Achievements Great Page Hidden Achievements Expert Programmer Programming no longer gives me any trouble. Come to me for help, if you like! Programming Strength Nice randomouscrap randomouscrap Robot Hidden Easter Eggs Second Year My account is over 2 years old Website Drawing I like to draw! Hobbies Huh... this seems like it has some awesome stuff in it! Mariominer Mariominer First Day Joined on the very first day of SmileBASIC Source Website Promoted Page My page was promoted on SmileBASIC Source! Achievements Expert Programmer Programming no longer gives me any trouble. Come to me for help, if you like! Programming Strength Yeah, it's really just a bunch of stuff that I've used myself in some programs, but I've been using it for so long and constantly changing it, so it's got a bunch of random things put together.