I like. I like! May I make a suggestion dealing with Ice? If I were you I would put a friction variable in a parent object for all ground objects. This would be the standard friction when you are on normal ground. When you are on top of a given ground object, you would call that ground objects friction variable and adjust your characters movement accordingly, then all you have to do is lower that variable in the Ice Ground Object (a child of the standard ground object), and wha la! You have ice, you could even make a more sticky platform by creating a child with increased friction. I have yet to try this myself. I actually wish I did this in my Smash Bros Game, but I didn't think of it until after the fact... Oh well.... Maybe you already have a system that works well for you though??? No matter I am sure it will turn out very nice!
edit: Welcome back by the way!
I have it check if the player is on ice, in the air, in water, etc, all at the very beginning of the movement code (before it moves the player). Depending on what the player is standing on or in, it will set the acceleration, deceleration, etc. Then the movement code uses these variables to figure out how to move the character. For example, in the air, deceleration is VERY small, while acceleration is pretty much the same as on ground (little less), but in water pretty much everything is slow, and your maximum speed is also less. All of these variables are figured out before the movement happens, and it is all called upon in the Player object.
It sounds like you were advising me to set variables in the solids themselves? I don't see any point in setting variables in solids if I can set them in the player (since there is only 1 player and multiple solids). This is the way I've been doing it. I feel it actually is a more efficient way to do it, but parents sound like a good idea if this works...
SO HERE'S MY PONDERING ABOUT PARENTS:
Honestly, I've never used parents. I have 5 solids with ice characteristics (one block and 4 various slope angles). So I'm wondering, if I have the slopes set their parent as the "Ice" object, then could I ask in the Player object if place_meeting(x,y+1,Ice), and it would return ALL 5 of the objects? Meaning I wouldn't have to ask the same question for all of them?
I guess I could just test this out (thought if you knew then you could easily give me a quick answer), but I'm not at the ice test part yet. I've almost got the stairs working.
I've got it so that, in order to climb stairs, you must jump up on them and land on them. What I mean is that Link will always go down stairs by default if he meets both up and downward stairways at the same time.
\
\
\_____ <--- If Link walks this way, he will decline stairs, not go up them
/
/
/
Also, if Link is walking along the ground and comes to the base of a stairway, he will walk passed the stairs, NOT go up them. It's super annoying to make him walk up them by default, and jumping on them feels natural to me (heck, it's a platformer).
Does that sound right to you guys? I will give out a physics and collisions demo as soon as I get everything in there. I hate how game maker detects collisions so I've been taking a while to work on collisions. I've had unforeseeable difficulties because my character has a huge head and a tiny body, but I've been making good progress just the same (even though it may not look it).
CURRENT TO-DO LIST:
- Fix up glitches in stairs and dropthrough platforms (pretty much complete, should get it done tonight if nothing unexpected happens).
- Add ice with speed increases going down slopes and speed reductions going up slopes.
- Add moving drop-through platforms that are able to move in any direction.
- Add liquid (water, lava).
- Add muck (sinking sand, swamp water).
- Add climbable.
PLANNED DEVELOPMENT PROCESS:
After that I move on to adding Link's sprites and basic animations. Then I add pushing/pulling blocks, which I realized my current sprites need to be revised because Link leans too much and his arms don't need to go that far out. Which is good because I had a hard time trying to make his arms not look stretched, so they will look more natural now, lol.
Anyway, after I get Link pushing and pulling, I will make the item/menu mechanics, then I'll add in each item one at a time until I've got all of Link's items functional. Somewhere in there I'll add in the HUD functionality and then Link's fairy's ai and her own magical powers. So that's mostly how I plan on going about this. I might decide to make the introduction sequence of the game somewhere in the middle of the item coding, possibly after. We shall see what we shall see.
COMMUNITY INVOLVEMENT:
Btw, I may have stated this a while back, but I do have plans to allow anyone to help out with the project if they want to, and I think it will be a nice organized system where I don't rely on anyone much and there isn't the pressure of responsibility to get things done if someone decides that they don't want to do whatever it is that they said they would do. But I'm getting ahead of myself, ha ha, back to programming!