Register |
  (Advanced search)
Pages: [1] 2 3 4 5 6 7 ... 10
 on: June 23, 2017, 09:04:10 AM 
Started by Wally - Last post by Wally

Just look at that doily! My, how elegant!

 on: June 19, 2017, 12:28:13 AM 
Started by Mia Kris - Last post by Mia Kris
Editing individual sprites is quite easy!
Right-click on any Block, BGO, or NPC in the Level Item Toolbox and select "Copy graphic to custom folder". The resulting graphic can be edited however you want (as long as the dimensions and filename stay the same), and since it's in your level folder the changes will immediately be applied just within your level.
As an example, there's a "Hurt Block" with a fairly generic graphic, which I changed to the Spike Block from Super Mario Maker (since the function is the same). Or, maybe you simply want to recolor some things to fit your level's theme. This is just one more way to allow for greater creativity!

 on: June 18, 2017, 08:52:26 PM 
Started by Mia Kris - Last post by Mia Kris
Here's a basic layer movement lua script like I've been using:

Code: [Select]
function onStart()
layer1 = Layer.get("layer1")
layer1.speedX = -1
t = 0

function onTick()
if (player:mem(0x124,FIELD_DFLOAT) == 0) then  --Checks if the player is in a forced animation state.
t = t+1

function layer1move()
if t % 240 == 0 then
layer1.speedX = layer1.speedX * -1

The end result of this code is that whatever is in "layer1" will move left and right at 1bps, alternating every four seconds (240 frames). This is very similar to what I showed in the events tutorial, but has two advantages. First, it's easier to adjust on the fly: if you decide you want the movement to reverse every two seconds, or to go at a speed of 2bps, it's just a matter of changing a couple numbers in your lua file. Second, it does allow for fancier types of animation. Consider:
Code: [Select]
layer1.speedY = math.sin(t/60)
Adding this will make the layer appear to "bob" up and down.

Also, note the line I've commented. I found that layer movement stops whenever the player is in a "forced animation" state (getting a power-up, going through a pipe, etc). This would cause something like picking up a Mushroom to throw off my layers' positions, since the frame counter would increment while movement wasn't happening. The if statement there checks for whether the player is in one of these forced animations, and only increments the frame counter if they're not.

 on: June 11, 2017, 11:19:25 PM 
Started by Soaprman - Last post by Gamma_Metroid
u sure about that? :mastermind: :emotes that are on discord but not the forum:

 on: June 11, 2017, 10:09:10 PM 
Started by Mia Kris - Last post by Mia Kris
Since you're on the fence, Soap, I'll leave an end-castle spot that is optional for you.

Super POS World 2
-Super POS World 2 will be structured similar to Super Mario Land 2. There are four main zones with three levels each: Earth Zone (Gamma), Air Zone (Malik), Water Zone (Vivian), and Fire Zone (Rick). These are linked by a nonlinear world map (I'll build that), and can be completed in any order.
-Completing all four main zones will unlock the Castle Zone (Soap), where the end boss resides.
-Additionally, each of the four main zones will have a secret exit hidden in one of its levels. This will unlock a level in the Special Zone (Mia).

Earth Zone (Gamma)
-Enemies: Rippers, Zoomers, Swoopers, Mega Moles
-Power-up: Fire Flower
-Mainly caves. Make a level where the ceiling or walls try to crush the player.

Air Zone (Malik)
-Enemies: Winged Goombas & Koopas, Lakitus, Hoopster
-Power-up: Super Leaf
-Lots of clouds and vines. Include a "long vertical climb" level.

Water Zone (Vivian)
-Enemies: Bloopers, Cheep Cheeps, Spark, sorry there aren't that many water-themed enemies
-Power-up: Ice Flower
-Levels don't have to be completely underwater. One level should have water that rises and lowers.

Fire Zone (Rick)
-Enemies: Podoboos, Blargg, Bob-ombs
-Power-up: Hammer Suit
-Fire bars are a little weird to set up, but I'll show you later. Lots of lava. Have a section with a long Skull Raft ride!

Castle Zone (Soap, maybe)
-Enemies: The dang Bowser
-Power-up: Poison Mushroom
-This could be one big castle level, or maybe split into two levels as a sort of extra checkpoint. Up to you!

Special Zone (Mia)

Ok, that's all for the assignments! If you have any questions about this, or aren't sure how to implement something in your level, feel free to ask me.
For a deadline, I think July 9 (four weeks from today) should be ok. Your levels are not required to be super long or complex!

 on: June 11, 2017, 07:25:05 PM 
Started by Soaprman - Last post by Soaprman
you must not have done anything

u sure about that? :mastermind: :emotes that are on discord but not the forum:

 on: June 11, 2017, 07:23:29 PM 
Started by Mia Kris - Last post by Soaprman
I'm on the fence about this... not sure I'm really in a Mario mood just yet. I might sign up in a week or so though, who knows.

As for streaming the levels when they're done, that's something I'll almost certainly be up for when the time comes. :jarsnake:

 on: June 11, 2017, 07:14:10 PM 
Started by Mia Kris - Last post by Mia Kris
Well, I won't necessarily do a lengthy tutorial on LunaLua... the community documentation is pretty thorough, and there are even some tutorials there that probably explain things better than I would.
Moreover, I think that we can already make a lot of very fun & interesting levels just using what I've shown so far. Going into this Lua stuff should be considered optional, for our purposes. The last thing I want is for this proposed Mario Maker alternative to feel overwhelmingly complicated!

If you do feel like writing some code, though, I'll give a few very basic details on what you need to know:

-In your level's custom folder, put a file called "lunadll.lua". This script will be loaded when your level starts, and functions in it will run in response to things that happen in the game.
-I recommend starting with a template that includes three common functions: onStart, onTick, and onEvent.
Code: [Select]
function onStart() --Stuff that happens after engine assets are loaded but before the player gets control.


function onTick() --This function will run once per frame, except when the game is paused.


function onEvent(eventname)  --This function will run every time the specified event happens.


-Pretty simple, right?
-Initialize variables (player state, layer movement, etc) in the onStart() function. Use while or if statements in onTick() to do things at regular intervals, or to check the game state. Use onEvent(eventname) to supplement the functionality of the in-editor Events.
-Keep these wiki pages handy: Global functions and Classes. Objects of most classes will require that a reference be built using the appropriate global function (though there are a few built-in references, like "player".)

-If you want to know more than that, really, take a look at the existing tutorials!

 on: June 11, 2017, 03:38:25 AM 
Started by Mia Kris - Last post by Mia Kris
Well, I can't promise that my first level will be first-place material... but from the experimenting I've done using your tutorials I'm pretty excited to make it!
That's ok! Something we learned from our time with Mario Maker is that even levels without a bunch of fancy mechanics can still be fun.

Oh, I might have skipped over such a detail in my reading, but, is it possible to make custom characters, or custom character costumes? :o
It seems complicated. Custom characters seem to take significant amounts of coding. You can find the nuts 'n' bolts in \SMBX2-Beta3\data\LuaScriptsLib\Characters... Rosalina's on the simple side with ~400 lines of code, while the most complex, Mega Man, has ~1,000 lines.
Costumes (found at \SMBX2-Beta3\data\graphics\costumes) seem a little simpler... there's .ini files with each one, but I assume they're just hitbox data, and probably wouldn't need to be tweaked much.
The real question I would have on both characters and costumes, though, is whether they can be put into a level or episode's custom folder. If I were to create, say, "Dark Rosalina" by just dropping some recolored sprites in the location previously specified, I'd need you to overwrite the sprites in the same location on your end if you wanted to see the changes... this is why the system of loading elements from a level's custom folder is good, since it doesn't require the player who the level was shared with to replace any of SMBX2's built-in assets.
I will no doubt do more research on this, but I'll probably be tackling custom NPCs first, since those I know can be done per-level.

 on: June 11, 2017, 03:00:14 AM 
Started by Soaprman - Last post by Wally

pesto toast :badteeth:

Pages: [1] 2 3 4 5 6 7 ... 10