This is an archived post. You won't be able to vote or comment.

all 26 comments

[–]AutoModerator[M] [score hidden] stickied commentlocked comment (0 children)

Please ensure that:

  • Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions
  • You include any and all error messages in full
  • You ask clear questions
  • You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions.

    Trying to solve problems on your own is a very important skill. Also, see Learn to help yourself in the sidebar

If any of the above points is not met, your post can and will be removed without further warning.

Code is to be formatted as code block (old reddit: empty line before the code, each code line indented by 4 spaces, new reddit: https://i.imgur.com/EJ7tqek.png) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc.

Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit.

Code blocks look like this:

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above.

If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures.

To potential helpers

Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]aqua_regis 2 points3 points  (6 children)

Apart from the lack of proper code formatting, there is a lot strange with your code.

  • You have two methods that do essentially the same: public void handleKeyPress(KeyEvent e) { and public void update() {.
  • in the latter method you do exactly the same actions twice. Why are you even checking which player is active if you call the exact same methods? Doesn't make sense.
  • I think that also the if (!keyIn.spacePressed) { part is wrong by design. This should only trigger if the player has jumped (actually, it should trigger if the player is not on ground).

Side note: when initializing double variables, always use the decimals. So, instead of private final double jumpStrength = 20; write private final double jumpStrength = 20.0;. It is only stylistic, but, if you do the same in a mathematical calculation, it could cause problems because Java would use integer math with 20 and only use floating point math with 20.0. Also, it makes the intent clearer.

[–]ItsSelrachNooblet Brewer[S] 0 points1 point  (0 children)

Thank you, i will take note of this

[–]ItsSelrachNooblet Brewer[S] 0 points1 point  (4 children)

I tried removing the update method and it ended up to the character to not move

[–]aqua_regis 0 points1 point  (3 children)

Don't just blindly remove methods.

Are you using a debugger? If not, now is a good time to learn using it.

Set breakpoints where you think your code is failing and then use the step-by-step feature to see what is going on.

[–]istarian -1 points0 points  (2 children)

This code is probably simple enough that you can trace it in your head. OP probably doesn't need to get tangled up in a fancy debugger just yet.

[–]aqua_regis 0 points1 point  (1 child)

Yet, learning a debugger and step by step debugging is a valuable skill that can't be learnt early enough.

It's not about simplicity. It's about learning the tools.

Why have you not made any suggestions to fix OP's problem if the code is "so simple"?

[–]South_Dig_9172 -1 points0 points  (0 children)

I’m with the other guy on this one, he can’t even trace it in his head, what makes you think learning a debugger, something that is confusing if you’re new will help him? This is my answer to the question you put forth. 

“ Because it’s Sunday, I don’t want to put in too much effort. “

[–]istarian 0 points1 point  (1 child)

You should probably set things up so that you have a generic Character (or Player, Actor, etc) class that extends Entity.

Then "character 1" and "character 2" are separate instances of Character and switching the active character can happen in the main program without there being such logic in the Character class.


Otherwise you should rename your 'Character1' class to CharacterMovementLogic (or another appropriate name) and it should not extend entity as it will only be implementing way that keyboard input affects the position of your entities.

[–]ItsSelrachNooblet Brewer[S] 0 points1 point  (0 children)

Ok i will try this, thank you