Golden Axe Plataform, Jump & Movement

  • Hello everyone,

    I'm a noob Construct 2 and Game Design-Programming student. So, I have basically 0 experience with terms and all my knowledge is very basic.

    Me and my friend decided to develop a game with a 2.5D plataform, as seen on Golden Axe, Cadillacs & Dinosaurs, Streets of Rage, where the player have a 8-Direction movement, but can also jump (moving, on the same place, over edges and onto "higher" plataforms).

    This is where our whole problem started. We have absolute no idea on how to do it, which behaviors we should put with wich objects. We tried creating a player with both 8-Direc AND Plataform, but didn't work since the player never had a plataform under him so he could jump. We have tried even a few other events but none worked so far.

    Can anyone please help us?

    Examples:

    cdn.toucharcade.com/wp-content/uploads/2009/06/golden_axe_3.jpg

    casualtygamer.com/wp-content/uploads/2008/11/golden-axe51-400x305.jpg

  • I would realy love to see an answer to this as well....The only post i found addressing this issue to a certain point is scirra.com/forum/25d-jumping-proof-on-concept-need-help_topic62057.html. But still the player cannot retain his platform behaviour on top of the box...

  • basically moving up and down and jumping is the same thing - sprite moves on Y axis. If you are using 8Direction behavior for movement you can then simply disable it when jump key is pressed. move (or animate) sprite along -Y axis, and when jump is finished enable 8Dir again.

    Limitation of this is that you can't move while jumping.

    If you wan't to move and jump at the same time do it same way but instead of disabling behavior add an offset for Y position.

  • I don't have the exact answer, but I was watching a game with similar inspirations being made in XNA. I think I remember them saying that the trick was to map your controls to the shadow on the ground. The art and everything else is attached to the shadow to give the illusion that you are controlling the person.

    So you would then animate the character art moving up and down during a jump in relation to the location of the shadow.

    I could be way off on this, but that was my understanding.

    Its not as simple as just attaching the built in Behaviors, but I'm sure it can be done.

  • best to do like all other platformers, have a controlobject (square) to which the charactersprite is bound + also bound the shadow to controlobject, then some (pseudo)code

    is jumping > set shadow.x to object (so shadow moves in direction but not up)

    else > set shadow.x and shadow.y to object (always set position shadow to object)

  • Thx everyone that replied!

    So, after trying out about everything everyone posted, here is my feedback:

    I would realy love to see an answer to this as well....The only post i found addressing this issue to a certain point is scirra.com/forum/25d-jumping-proof-on-concept-need-help_topic62057.html. But still the player cannot retain his platform behaviour on top of the box...

    I tried it, thats surely the closest thing I've seen to what I really want, though the way it is atm isn't really satisfactory. I didn't paste and copy the capx given, I actually tried to adapt to what I had and for some reason/mistake it didn't quite work in the end.

    basically moving up and down and jumping is the same thing - sprite moves on Y axis. If you are using 8Direction behavior for movement you can then simply disable it when jump key is pressed. move (or animate) sprite along -Y axis, and when jump is finished enable 8Dir again.

    Limitation of this is that you can't move while jumping.

    If you wan't to move and jump at the same time do it same way but instead of disabling behavior add an offset for Y position.

    I don't have the exact answer, but I was watching a game with similar inspirations being made in XNA. I think I remember them saying that the trick was to map your controls to the shadow on the ground. The art and everything else is attached to the shadow to give the illusion that you are controlling the person.

    So you would then animate the character art moving up and down during a jump in relation to the location of the shadow.

    I could be way off on this, but that was my understanding.

    Its not as simple as just attaching the built in Behaviors, but I'm sure it can be done.

    Both are very similar solutions, what I tried to do was creating a shadow with 8 Direct behavior behavior, an Art with Platform and Pin behaviors and a edge(plataform) with Solid and Jump-Through behaviors. So what I got on my events is:

    Sys - start layout > art pin to shadow

                       > shadow opacity 50

    keyboard - jump pressed > art platform enable

                            > art unpin

                            > art platform vector Y -750

                            > edge solid disabled

                            > shadow opacity 0

    art - on landed > art platform disable

                   > shadow X to art X

                   > shadow Y to art Y

                   > art pin to shadow

                   > shadow opacity 50

    This way the jump thing worked perfectly, with no movement restrictions. However when I land I can go back down by simple walking past the plataform and if I disable the 8 Direct I simple get stuck. I tried creating another plataform under the first that would get solid once the art landed. That solved the free movement problem but then I couldn't jump back down.

    best to do like all other platformers, have a controlobject (square) to which the charactersprite is bound + also bound the shadow to controlobject, then some (pseudo)code

    is jumping > set shadow.x to object (so shadow moves in direction but not up)

    else > set shadow.x and shadow.y to object (always set position shadow to object)

    I'm not sure if I got it, but it didn't work for me :(

  • Last but not least thx everyone for your time, I really appreciate your attention. I'm gonna keep thinking of possible solutions and if I ever get to it I'm gonna post here!

    :)

  • it only worked in my head..., i can see the problem now its pretty complex, i think the only option is making a custom controller and even then, there's alot of trickery

    edit: what if the platformcontroller always stays on the ground platform,

    and up and down moves only the sprite visually (2nd controller)

    (in line as sman118 suggested)

    you would set the x of sprite to the controller, y of sprite is controlled by up and down, until jumping, disable up and down control, back on floor enable up and down, have an upper en lower bound of the y movement

    then you would need some trickery to jump to other platforms

    the shadow im sure can be arranged once movement is ok

  • After giving it a thougth i came up with this solution by combining platform width custom behaviours.

    dropbox.com/s/l54dt3x85wcfrha/25D_Platform_Movement.capx

    its just a basic approach but it can be extended according to your needs.

  • Oh i forgot, use WASD to move,space to jump...

  • That is an extremely interesting way of doing that. I never would have come up with that solution. Nice work. Also, you could probably put all of your movement platforms in a family to make it easier on yourself. That way you don't have put code in for each individual platform.

  • That's not going to work. You're essentially moving the entire floor which will move enemies and collectibles on the same Y axis as your player. It's also nearly impossible to set any bounds that way.

    Here ya go :)

    Let me know if you need an explanation or whatever.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • The bounds are easy enough to appy by limiting the platforms' Vertical movement within certain bounds. As for the enemies, they might have the 8 dir behaviour and their collisions disabled and put on another layer, but then they wont be able to follow the player in different platforms...

    The thing is that in a 2.5D platform game the player should fall off the edge of the platform if no collision is detected and be able to jump on another higher platform as well if needed. How can this be applied to your example Tokinsom? That's realy an interesting topic:)

  • I updated the capx by applying bounds, enemies and collectibles.

    dropbox.com/s/l54dt3x85wcfrha/25D_Platform_Movement.capx

    I'm currently using the free C2 version so i could not group the objects in families etc. but you get the general idea.

    The enemy movement is a brain teaser though.

    Haven't worked on that yet. Maybe someone could share some ideas.

  • Hello again fellows!

    Great to see so much support from you guys! Thanks everyone so much!

    My thoughts on what has been said since my last post:

    What Landril82 created is really the closest if not exactly what I was looking for. I'm just not sure if it'd be the most simple way to do it by creating "floors" for every single plataform, but anyway that's a very nice solution and it looks to work pretty fine! I'm gonna test it adding movement and behaviors to the enemies to check if everything is gonna fit in. One thing that bothers me is the fact that if the player press the direction arrows both player and enemies move, but that was easily fixed by disabling the default controls from the 8 Direc behavior. I'm just not sure if that will affect something else later.

    I didn't quite get what Tokinsom did. I mean, why not use any behavior for the movement? And how would I be able to jump to a higher plataform or fall from edges? Waiting for a enlightment :D

    Well, what I tried to add to Landril's capx was the enemy movement I used on my capx. Basically it has 2 sine movements for a random movement while the player is out of sight, and then when the player reaches the line of sight it enables the custom movement towards the player, following him. Now, what happened when I did it was that the enemy just ignored the plataforms and walked freely around the layout. And since my enemy has a melee attack I added a solid behavior to it, so it wouldn't walk past the player, but that created another problem which is the player now can jump on the enemy. I'm trying to figure out solutions and gonna feedback soon.

    Again, thanks you all for your time and attention!

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)