School Project Help

S

Sora

Guest
Hey,

For my final project, I've decided to make a 2D sidescroller.
Simple concept, Gordon Ramsay chases you whilst you run and jump above gaps.
I have less than a month to hand it in.
I have barely started the code, and am stuck on how to get my main character to jump.

My code atm for movement:
/// Move during step event
var right_key = keyboard_check(vk_right);
var left_key = keyboard_check(vk_left);
var up_key = keyboard_check(vk_up);

if (right_key) { // When right arrow key is pressed
phy_position_x += spd; /// Player moves
sprite_index = spr_player_right;
image_speed = .2;
}

if (left_key) { // When left arrow key is pressed
phy_position_x -= spd; /// Player moves
sprite_index = spr_player_left;
image_speed = .2;
}

if (!right_key and !left_key) { // Stop animation
image_speed = 0;
}


If anyone could assist me with this, I'd greatly appreciate it!
I'll definitely come back to this if the help is good, as I'm sure I'll encounter many more problems along my journey xD
Also, if anyone has Skype and could help or something, that would be great!
Thanks!
 

Paskaler

Member
I'd recommend not using physics, first of all. I don't think you need them unless you need really accurate physics simulation. If the only thing you're doing is a platformer you'll spend more time reining the simulation in to act the way you want it(might mess you up, and you're on a tight schedule). There are a lot of good tutorials on YouTube on this.

Anyways, given the current code, I recommend using the physics impulse function in the upwards djrection(90 degrees). You'll have to play with the mass of the object and impulse force to get the desired jump height.

Code:
if up_key {
    physics_apply_local_impulse(0, 0, 0, -<force>);
}
 

CedSharp

Member
Platformer with gaps where you can jump, right?
You can ditch the whole physics thing and instead play with 4 variables:
- horizontal movement speed
- current fall speed (or gravity if you prefer)
- max fall speed (or max gravity speed)
- jump speed

Using only those will limit the pain of thinking involved and allow you nice controls over your platforming with the time you have.
 
S

Sora

Guest
Ah thanks!
This is the first thing I searched up initially, but as this is for a real exam, the board will check my work for blatant plagiarism so if I copy their code I will automatically fail >.<
Thanks though!

I'd recommend not using physics, first of all. I don't think you need them unless you need really accurate physics simulation. If the only thing you're doing is a platformer you'll spend more time reining the simulation in to act the way you want it(might mess you up, and you're on a tight schedule). There are a lot of good tutorials on YouTube on this.

Anyways, given the current code, I recommend using the physics impulse function in the upwards djrection(90 degrees). You'll have to play with the mass of the object and impulse force to get the desired jump height.

Code:
if up_key {
    physics_apply_local_impulse(0, 0, 0, -<force>);
}
True!
A few more details about my game that I'd like to add in; Stars to get more points, perhaps even enemies that would make the difficulty harder!
ahhh good point! Thanks for your consideration of my schedule :)
Yeahhh it'll be hard to use tutorials due to plagiarism decided by the exam board :(

Ooh okay thanks! This is my first time coding with gamemaker(yeah they never taught us how to use it just told us to code with it xD), so that doesn't make too much sense but if I'm removing physics anyway I guess it doesn't matter!

Greatly appreciate the prompt response and help :)

Platformer with gaps where you can jump, right?
You can ditch the whole physics thing and instead play with 4 variables:
- horizontal movement speed
- current fall speed (or gravity if you prefer)
- max fall speed (or max gravity speed)
- jump speed

Using only those will limit the pain of thinking involved and allow you nice controls over your platforming with the time you have.
Yup!
Ooh that sounds good!
My current variable list thingy is so messy xD it looks like this -
/// Set fixed rotation
phy_fixed_rotation = true;
spd = 2; /// Variable to set speed of player
image_speed = 0; /// Player will not animate
gravity = 0.2;
jump = 1;

Pretty horrible I know, it was a skew of many tutorials to try and get past the examiners xD

You can find a lot of tutorials in youtube.

Thanks man!
I wish I could just follow them, but I'll get no marks for plagiarism :(

Mod edit: Please refrain from replying to topics multiple times in a row - you can quote multiple posts in a single post! ~Tsuk
 
Last edited by a moderator:

CedSharp

Member
Yup!
Ooh that sounds good!
My current variable list thingy is so messy xD it looks like this -
/// Set fixed rotation
phy_fixed_rotation = true;
spd = 2; /// Variable to set speed of player
image_speed = 0; /// Player will not animate
gravity = 0.2;
jump = 1;

Pretty horrible I know, it was a skew of many tutorials to try and get past the examiners xD
spd would be the horizontal speed,
gravity is the fall speed (you can ommit the max fall speed if you don't need it)
jump is the jump speed.

you basically already have all the required variable. You just need to manage collisions now and you should have a good basic platforming engine.
 
S

Sora

Guest
spd would be the horizontal speed,
gravity is the fall speed (you can ommit the max fall speed if you don't need it)
jump is the jump speed.

you basically already have all the required variable. You just need to manage collisions now and you should have a good basic platforming engine.
Ahh I see!
Hmm with gravity, that's another problem I have, my spr_player just floats xD like there is no implemented gravity!
My collisions work in the sense that when you hit a wall with the player, the player will stop, but is there more to it?

Thanks again!
 

Sergio

Member
Thanks man!
I wish I could just follow them, but I'll get no marks for plagiarism :(
Well, a jump is a jump. If you find a tutorial that teaches you how to implement it, I can't see any problem there. After that, you can adapt it to your specific needs, but I see no difference between ask here for code or see it in a tutorial that explains you all you need to know. I'm pretty sure that everyone who is answering you started with that kind of tutorials.
 
S

Sora

Guest
Well, a jump is a jump. If you find a tutorial that teaches you how to implement it, I can't see any problem there. After that, you can adapt it to your specific needs, but I see no difference between ask here for code or see it in a tutorial that explains you all you need to know. I'm pretty sure that everyone who is answering you started with that kind of tutorials.
True! I'm currently searching for a tutorial that fits well, a problem I have is that I will find the code, attempt to implement it but it doesn't work out because of what else I have put in :(
Yeah!
 
K

kevins_office

Guest
the board will check my work for blatant plagiarism so if I copy their code I will automatically fail >.<
Going through the tutorial and following the examples is the best way to learn the concepts.
After you have an understanding of how it all works and what functions you need, then start a new project and do it yourself.
I know you want to avoid plagiarism however there are limited ways to accomplish things so naturally two different people doing the same thing will have very similar code.
If you want a sprite at x:100 and y:200 then you have no choice but to draw_sprite(spr_name, 0, 100, 200); which is exactly what everyone else would use.

Watch the tutorials, use the concepts, add your own flavor to it.
Their point of plagiarism is to make sure you actually understand the code you are using and not just
doing a copy and paste of something without even knowing what instance_place() does.
 
S

Sora

Guest
Going through the tutorial and following the examples is the best way to learn the concepts.
After you have an understanding of how it all works and what functions you need, then start a new project and do it yourself.
I know you want to avoid plagiarism however there are limited ways to accomplish things so naturally two different people doing the same thing will have very similar code.
If you want a sprite at x:100 and y:200 then you have no choice but to draw_sprite(spr_name, 0, 100, 200); which is exactly what everyone else would use.

Watch the tutorials, use the concepts, add your own flavor to it.
Their point of plagiarism is to make sure you actually understand the code you are using and not just
doing a copy and paste of something without even knowing what instance_place() does.
I wish I had time to learn it all in one go, but I have literally like 3 weeks max to make this game work ;-;
Yeah I think I'll just have to follow along as best as I can whilst changing what I can, as you said!
Yeah exactly!
Thanks!
 
S

Sora

Guest
Going through the tutorial and following the examples is the best way to learn the concepts.
After you have an understanding of how it all works and what functions you need, then start a new project and do it yourself.
I know you want to avoid plagiarism however there are limited ways to accomplish things so naturally two different people doing the same thing will have very similar code.
If you want a sprite at x:100 and y:200 then you have no choice but to draw_sprite(spr_name, 0, 100, 200); which is exactly what everyone else would use.

Watch the tutorials, use the concepts, add your own flavor to it.
Their point of plagiarism is to make sure you actually understand the code you are using and not just
doing a copy and paste of something without even knowing what instance_place() does.
Hey, I've been following a tutorial to help me code my game, and I've gotten an annoying bug after coding movement!

My sprite can move horizontally towards the left and right, and can jump.
However, my sprite gets stuck on the floor, so I cannot move unless I jump and move in midair; and even then sometimes I am stuck if there is a wall to the side of me.

I'm not sure what part would help in resolving this, so here is my whole code.

/// Player Input

key_left = keyboard_check(vk_left); // Checks to see if left key is being pressed
key_right = keyboard_check(vk_right); // Checks to see if right key is being pressed
key_jump = keyboard_check_pressed(vk_up); // Checks to see if up key is being pressed once

/// Movement

var move = key_right - key_left; // Handles left and right movement
hsp = move * walkspd; // Determines speed
vsp = vsp + grv; // Gravity is incorparated

if (place_meeting(x,y+1,oWall)) && (key_jump) // If on the floor and trying to jump
{
vsp = -7; // Moves upwards if on floor and trying to jump
}

/// Horizontal Collision

if(place_meeting(x+hsp,y,oWall)) // Checks to see if there is a collision between player and wall
{
while(!place_meeting(x+sign(hsp),y,oWall)) // When no collision
{
x = x + sign(hsp); // Increases x coordinate by 1
}
hsp = 0;
}

x = x + hsp; // How many pixels to the left or right

/// Vertical Collision

if(place_meeting(x,y+vsp,oWall)) // Checks to see if there is a collision between player and wall
{
while(!place_meeting(x,y+sign(vsp),oWall)) // When no collision
{
y = y + sign(vsp); // Increases x coordinate by 1
}
vsp = 0;
}

y = y + vsp; // How many pixels to the left or right

/// Animation

image_speed = 0.2;
if (hsp == 0) // No movement to the right or left
{
sprite_index = spr_player; // Set to neutral position of sprite
}
else
{
sprite_index = sPlayerR; // Sprite will display towards the right if not neutral
}

if (hsp != 0) image_xscale = sign(hsp)*2; // When the player is moving towards the left it will flip the right animation

And yes, I am aware that this code is pretty much just a copy of a tutorial, I've decided to learn this way instead of failing and wasting time.

Thanks for any help!
 
K

kevins_office

Guest
My sprite can move horizontally towards the left and right, and can jump.
However, my sprite gets stuck on the floor, so I cannot move unless I jump and move in midair; and even then sometimes I am stuck if there is a wall to the side of me.

Im going to make an educated guess on this since i dont have your project to trouble shoot my theory.
I think you can't move when you are on the ground because you are stuck in the ground.
You are using the same object for ground and walls (oWall). When you try to move left or right you check if there is a collision with oWall and if there is don't move.
So if his feet are 1 pixel in collision with the ground (oWall) it wont move.

In your vertical collision you do not adjust for this, sure you wont allow vertical movement in the positive direction if he is in collision,
but what if he is already in collision? Do you push him back up until he isn't in collision anymore?

When you jump, you are no longer in collision with the ground (oWall) so now left and right movement is allowed.
 
S

Sora

Guest
Im going to make an educated guess on this since i dont have your project to trouble shoot my theory.
I think you can't move when you are on the ground because you are stuck in the ground.
You are using the same object for ground and walls (oWall). When you try to move left or right you check if there is a collision with oWall and if there is don't move.
So if his feet are 1 pixel in collision with the ground (oWall) it wont move.

In your vertical collision you do not adjust for this, sure you wont allow vertical movement in the positive direction if he is in collision,
but what if he is already in collision? Do you push him back up until he isn't in collision anymore?

When you jump, you are no longer in collision with the ground (oWall) so now left and right movement is allowed.
Yes, I agree! I'm pretty sure it is due to my sprite being stuck in the ground, as I will start the game up, move a little to the right for example, not hit any walls but be stuck in the floor unless I jump!
Ahh I think I get it! So, because both my walls and ground are bound by the same object(oWall), it registers the ground as a wall so when the 1 pixel collision thing happens, I'm technically touching a wall in the games terms, although it just looks like I'm touching the ground. Yeah, also, if I touch the actual wall, my sprite gets stuck completely and can't jump or move at all! I guess because he is bound vertically and horizontally, right?
I guess I could do that, but how will I go about fixing it?

Thanks for the speedy replies as usual!
 
K

kevins_office

Guest
I guess I could do that, but how will I go about fixing it?
To fix it you need to move out of collision. In your place meeting checks you check if there is no collision then allow movement.
Add an else section so if there is collision you are making sure they are not stuck inside of the collision. Move them out of the collision.
 
S

Sora

Guest
To fix it you need to move out of collision. In your place meeting checks you check if there is no collision then allow movement.
Add an else section so if there is collision you are making sure they are not stuck inside of the collision. Move them out of the collision.
Thanks! I tried to do what you said, but had some trouble...

So, in my head I thought I would try and modify both my horizontal and vertical collision sections.

Originally, vertical collision for example, looked like this:

if (place_meeting(x,y+vsp,oWall)) // Checks to see if there is a collision between player and wall
{
while (!place_meeting(x,y+sign(vsp),oWall)) // When no collision
{
y = y + sign(vsp); // Increases x coordinate by 1
}
vsp = 0;
}

Then I edited this under it:

else
{
while (place_meeting(x,y+sign(vsp),oWall))
{
y = y - sign(vsp);
}
}

So the final version of the collision looks like this -

/// Vertical Collision

if (place_meeting(x,y+vsp,oWall)) // Checks to see if there is a collision between player and wall
{
while (!place_meeting(x,y+sign(vsp),oWall)) // When no collision
{
y = y + sign(vsp); // Increases x coordinate by 1
}
vsp = 0;
}

else
{
while (place_meeting(x,y+sign(vsp),oWall))
{
y = y - sign(vsp);
}
}


y = y + vsp; // How many pixels

I tried to move them out of the collision by changing + to - but to no avail!
When I run the game, I am able to move for a second and then suddenly my sprite vanishes xD

I did the same for horizontal but changed the verticals to horizontals.
How would I properly implement my else statement?

Thanks in advance for any help!

EDIT: Can I somehow send you my project to make it easier for you?
 
K

kevins_office

Guest
Thanks! I tried to do what you said, but had some trouble...
To move out of collision, i would use some math and set it out of collision, not try to make it move under its own power.
Like figuring out that its 3 pixels inside collision and just setting x/y -3 so its outside of the collision. Not trying to tell it to move step by step until its out of collision.
An easy way is using move_outside_all() but you have to control which direction it moves or they could pop out the opposite side of the colliding object.

The harder but more robust way, its figuring out which side of the object they collide with, get the position of the player, sprite/bbox width and height and origin offset, do the math to figure out how many pixels away from the wall or floor the player xy needs to be so the edge of the player sprite/bbox is next to but not inside of the wall/floor object. Then just set that xy for the player so they are instantly outside of collision.
 
S

Sora

Guest
To move out of collision, i would use some math and set it out of collision, not try to make it move under its own power.
Like figuring out that its 3 pixels inside collision and just setting x/y -3 so its outside of the collision. Not trying to tell it to move step by step until its out of collision.
An easy way is using move_outside_all() but you have to control which direction it moves or they could pop out the opposite side of the colliding object.

The harder but more robust way, its figuring out which side of the object they collide with, get the position of the player, sprite/bbox width and height and origin offset, do the math to figure out how many pixels away from the wall or floor the player xy needs to be so the edge of the player sprite/bbox is next to but not inside of the wall/floor object. Then just set that xy for the player so they are instantly outside of collision.
Ah thanks for the help!
I managed to mostly fix it :)
I used the move_outside_all()!

Code:
if (place_meeting(x+hsp,y,oWall)) // Checks to see if there is a collision between player and wall
{
    while (place_meeting(x+sign(hsp),y,oWall)) // When collision
    {
        move_outside_all(90, 1); // Moves instance up one pixel
    }
}
Only one problem!
Although I can move across the floor fine, and there is no issue with movement or jumping, as soon as I touch a wall I get teleported to the top of the wall?!
I only implemented this code into my Horizontal Collision, and I tried to do so with Vertical Collision but there was no difference so I figured it wasn't necessary!

Any ideas? Thanks again!
 
K

kevins_office

Guest
Only one problem!
Although I can move across the floor fine, and there is no issue with movement or jumping, as soon as I touch a wall I get teleported to the top of the wall?!
I only implemented this code into my Horizontal Collision, and I tried to do so with Vertical Collision but there was no difference so I figured it wasn't necessary!
Yep. Stop thinking like a human and think like a computer :)
Even though you think you have a horizontal and a vertical collision check, you dont. You have two collision checks against the same oWall.
You dont have a floor oWall and a wall oWall. You just have oWall. The computer has no concept of one being a floor or a wall.

Two ways to fix this for your project.
Have two different object types, oWall and oFloor. If the collision is oFloor move outside all 90. If collision is oWall move 0 or 180.
Or, keep one object oWall but in your move outside all figure out which side of the object you are on and decide if you it needs to move 0 90 180 or 270.
 
S

Sora

Guest
Yep. Stop thinking like a human and think like a computer :)
Even though you think you have a horizontal and a vertical collision check, you dont. You have two collision checks against the same oWall.
You dont have a floor oWall and a wall oWall. You just have oWall. The computer has no concept of one being a floor or a wall.

Two ways to fix this for your project.
Have two different object types, oWall and oFloor. If the collision is oFloor move outside all 90. If collision is oWall move 0 or 180.
Or, keep one object oWall but in your move outside all figure out which side of the object you are on and decide if you it needs to move 0 90 180 or 270.
Very true! :)
Ahhh I see!
I chose the first option, and it sort of worked!
I can walk fine, and collisions with walls are fine, but now I'm unable to jump!

What could I do about this? Thanks!
 
M

MadPropz101

Guest
What do you mean by plagiarism lol, do you seriously think that everyone writes their code in a completely different way? The stuff that you need is mostly basic and very well established, they can’t blame you for writing it in a common way, as long as you add some features of your own.
 
S

Sora

Guest
Its impossible to guess without seeing the code.
Ah sorry about that! Here you go:

Code:
/// Horizontal Collision

if (place_meeting(x+hsp,y,oWall)) // Checks to see if there is a collision between player and wall
{
    while (!place_meeting(x+sign(hsp),y,oWall)) // When no collision
    {
        x = x + sign(hsp); // Increases x coordinate by 1
    }
    hsp = 0;
}

if (place_meeting(x+hsp,y,oWall)) // Checks to see if there is a collision between player and wall
{
    while (place_meeting(x+sign(hsp),y,oWall)) // When collision
    {
        move_outside_all(0, 1); // Moves instance up one pixel
    }
}
x = x + hsp; // How many pixels to the left or right

if (place_meeting(x+hsp,y,oFloor)) // Checks to see if there is a collision between player and floor
{
    while (place_meeting(x+sign(hsp),y,oFloor)) // When collision
    {
        move_outside_all(90, 1); // Moves instance up one pixel
    }
}
x = x + hsp; // How many pixels to the left or right

/// Vertical Collision

if (place_meeting(x,y+vsp,oWall)) // Checks to see if there is a collision between player and wall
{
    while (!place_meeting(x,y+sign(vsp),oWall)) // When no collision
    {
        y = y + sign(vsp); // Increases x coordinate by 1
    }
    vsp = 0;
}

if (place_meeting(x,y+vsp,oFloor)) // Checks to see if there is a collision between player and floor
{
    while (!place_meeting(x,y+sign(vsp),oFloor)) // When no collision
    {
        y = y + sign(vsp); // Increases x coordinate by 1
    }
    vsp = 0;
}

y = y + vsp; // How many pixels

What do you mean by plagiarism lol, do you seriously think that everyone writes their code in a completely different way? The stuff that you need is mostly basic and very well established, they can’t blame you for writing it in a common way, as long as you add some features of your own.
Well, I hope you are correct because if not I'll not get any marks! The exam board is very strict about this, sadly!
 
K

kevins_office

Guest
Ah sorry about that! Here you go:
Read your code.
You have two collision checks with oFloor. Isn't there only one floor?
And in the first collision check with oFloor it is adding to the x value which is left/right not down.

You also need to fix your comments because they look like you just copy and pasted someone else's code into your project.
Just one example is "move_outside_all(0, 1); // Moves instance up one pixel" really that moves up? There are many comments incorrect like this.

No where is any code checking for a jump key being pressed, or any code changing the Y value for jumping. I would say that's why he doesn't jump anymore.
 
S

Sora

Guest
Read your code.
You have two collision checks with oFloor. Isn't there only one floor?
And in the first collision check with oFloor it is adding to the x value which is left/right not down.

You also need to fix your comments because they look like you just copy and pasted someone else's code into your project.
Just one example is "move_outside_all(0, 1); // Moves instance up one pixel" really that moves up? There are many comments incorrect like this.

No where is any code checking for a jump key being pressed, or any code changing the Y value for jumping. I would say that's why he doesn't jump anymore.
I'm sorry, I try to but I'm new to Gamemaker and coding in general so this is hard for me, I appreciate the help!
Two collision checks; one for horizontal collision with oFloor because if I take that code out, I can go through the sides of my floor if I try use the floor as an obstacle in my map. And one for vertical collision because without that, I fall through the floor!
Ah yes thanks! I took that out, so no more "x = x + hsp; // How many pixels to the left or right" in my first collision check with oFloor.

Ahh really? Ahh yes I forgot to change that comment! It was originally (90,1) until you told me different, thanks, I shall try to amend this!

I managed to fix my jumping problem, the reason was because I had recently added a new floor, but renamed it to oGround but forgot to change it in my player input section of code! Silly me.
Another problem I am having is that for some reason, when I collide with the left/right side of my oGround, the game freezes/player gets stuck, and when I touch the left side of oWall it teleports me ontop of it but when I touch the right side of it, collision is perfect?
I'm aware that we had encountered this issue before but it seems to have evolved :(

Thanks again for the great help!
 

drowned

Member
You have less than a month to hand it in, and you're new to gamemaker AND to coding? Unless it's your fault for procrastinating all semester, tell your professor I said that this is an unfair and unrealistic assignment.
 
S

Sora

Guest
You have less than a month to hand it in, and you're new to gamemaker AND to coding? Unless it's your fault for procrastinating all semester, tell your professor I said that this is an unfair and unrealistic assignment.
We had around 6 months on top of 2 other subjects, but we were told that our chosen software(Gamemaker, Unity, etc), would be installed on the school computers, so we had to wait...It took them around 3 months!
By the time I had started coding, I had mock exams among other coursework that had deadlines which were closer so I had to put this off and hope for the best :(
Complete noob at Gamemaker, and a little experience with Python but thats it xD
Thanks, do you have any solutions to any of my more recent problems?
Deadline is this Friday! (I may be able to push it back a week longer but that is not 100%)
I have added Parallax Scrolling to my backgrounds, added in "Gordon" and made it so that he has physics applied to him, my to-do list right now though;
- Make collision perfect
- Add a menu
- Add a distance system
- Make Gordon run after player and jump over all necessary obstacles somehow/Make many gordons where it is mario-esque and you must jump over him to get the best score you can
- Add sound so you hear Gordon screaming occasionally
Probably some other stuff too that I am missing out, but for now that is my checklist!
 

drowned

Member
If I were you, I'd start to prioritize that list. I think gordon running after you and jumping over obstacles is the most important since that's the actual gameplay right? Adding his screaming at you is pretty simple, assuming you have the sound effect(s) already, so do that next. After that, hook up your menu. I don't really understand what "add a distance system" and "make collision perfect" mean but I'd probably put them at the bottom of the list in any case.

In terms of making him jump over obstacles, I think you could get it done fairly quickly by just checking his distance from obstacles in front of him and then putting him into his "jump" state when he's at the correct point to jump over them.
 
S

Sora

Guest
If I were you, I'd start to prioritize that list. I think gordon running after you and jumping over obstacles is the most important since that's the actual gameplay right? Adding his screaming at you is pretty simple, assuming you have the sound effect(s) already, so do that next. After that, hook up your menu. I don't really understand what "add a distance system" and "make collision perfect" mean but I'd probably put them at the bottom of the list in any case.

In terms of making him jump over obstacles, I think you could get it done fairly quickly by just checking his distance from obstacles in front of him and then putting him into his "jump" state when he's at the correct point to jump over them.
I have!
Today, I have managed to implement:
- A menu with working "Start" and "Exit" commands
- A pause screen
- Made Gordon move left and right(think Mario), with the player being able to jump on his head to kill him, otherwise the player will die(collision is a bit iffy for this, sometimes I can kill Gordon by being midair whilst touching his side!)
- A restart screen

Yeah, screaming should be pretty simple, and a distance system is going to be how far you can get through the game, jumping over and on top of Gordon.
I was thinking to make a neverending game, where the map would keep on continuing, but I think it would be hard to balance difficulty with that, so shall make around 5 levels instead!
Yeah collision is not looking too great atm for my player object, when I collide with the left/right side of my oGround, the game freezes/player gets stuck, and when I touch the left side of oWall it teleports me ontop of it but when I touch the right side of it, collision is perfect xD so somehow gotta fix that but other than that...
 
Top