How can I make a smooth d-pad
-
@Stephenn If you were to output the joystick controlled angle to a text label, you can see that the angles go from 0 to 180 on the right side and 0 to -180 on the left side. The angle is never 270 degrees. So "If Greater Than 210" is invalid.
-
@Stephenn how you have that set up isn't going g to work I don't think.... because if the angle is 271, all of those IF's will run, because 271 is greater than 0 and 90 and 180 and 270. (Although only the first two IF's are valid angles)
Instead you should use the joystick up, down, left, and right behaviors.
So to move right, you would do a joystick right, and an IF to check if the angle is greater than 45, then another IF to check if the angle is less than 135, and then your "move by" behavior.
And it would be the same for all the other directions, except(obviously) different numbers in the IF's.
also, you might want to have either the UP and DOWN or LEFT and RIGHT IF's be "greater than or equal to" and "less than or equal to" because otherwise the 45, 135, -45, and -135 angles wouldn't trigger ANY movement. But it would HAVE to be either up and down OR left and right.I hope that makes some sense!
Also, @TutorialDoctor is right about the angle output. But it is 0 to -180 on the left side.
-
This looks like something similar to my 3D rotation example:
https://forum.hyperpad.com/topic/273/logic-behavior-examples/16
The greater thans should work the way he has it but The angle is never greater than 180. I would probably use Greater than 178 or 179 on the right side and less than -178/-179 on the left side. Also, the order of the behaviors seems to matter.
-
@TutorialDoctor I just checked, and both IF's trigger.
-
I just used joystick up down left and right in one of my projects, worked fine for me, all I have it doing here is lightning up an arrow in the direction the player would go:
-
This works
-
@Aidan-Oxley I think the problem was that if you Move the joystick diagonally, it would trigger two directions....like up and right. I actually didn't try it but that's what @Jack8680 said. If you were to get your joystick perfectly at like 45° I'm guessing it would trigger two directions for you.
Also, if you look at @Stephenn's screen shot, his IF's were greater than's not equal's, which is why I said they wouldn't work right. Because some thing like 271 is greater than 270,180,90, and 0, so I think all his IFs would get triggered.
-
@Aidan-Oxley moving diagonally activates two of the directions. With the way you have it, one of them gets priority based on which one activates last in the tick. This means that it might for example move up when you actually have it more to the right than up, I think there's about a 15° angle where both behaviours would activate.
-
@Stephenn This should work:
-
@Jack8680 that is what I was trying to say to do, and probably failed lol 😂. I didn't think of what you did for the joystick down, but that's a good way to do it!
-
Ok thanks for the help everyone.
-
Ok so I have my joystick if I walk into an object I kind of squish into it can someone tell me how to fix this?
-
@Stephenn you could do this. Put the move behaviors in the "behavior off"'s and have each of the collided behaviors have one direction (up down left or right) selected. Now since the "stopped colliding" behavior doesn't have directions, you can just turn the move behaviors back on when the joystick moves in the opposite direction, since that would move it away from the object you hit.
@Murtaza why doesn't the stopped colliding have directions?
-
I checked the screenshot I sent you, played the project and it works, there is no diagonal movement. Try it. @Jack8680 yeah but no one will notice it lol. Well I sort of do, but I don't really care, doesn't affect it in any major way.
-
Ok thanks
-
@Aidan-Oxley, or anyone, how did you change the value of the box container?
-
@Stephenn, any behavior output you put in the box container will set the value of the box container when the behavior runs . And you can drag as many outputs in a box container that you need.
-
Press on the box container, then press on the symbol to the left of the default value. -
@Aidan-Oxley I think this will work better, because with what you did you have to use the extra "set input field" behavior. For mine, When one of the add value's is triggered it will set the box container to its output automatically.
-
@iTap-Development Yeah I'm still not used to that, I'm still stuck in the old way of using box containers lol before they let you have multiple storages.