patternjavaMinor
Game sprite animation
Viewed 0 times
animationgamesprite
Problem
This code animates my main game sprite by increasing the animation frame. First I check if the character is moving, then I increase the animation counter until it reaches the desired speed, and then if so, I increase the animation frame.
How can I make it more elegant and optimised in terms of speed?
How can I make it more elegant and optimised in terms of speed?
if (moving){
anispeed++;
if (anispeed==animaxspeed){
anispeed=0;
animationframe++;
if (animationframe==3) animationframe=0;
}Solution
Two small comments:
Naming:
The convention for variable names in Java is
Braces:
It's also convention to place all if-blocks in braces, disregarding whether they have to, or not. This is to decrease the possibility of bugs when changing such blocks and forgetting braces.
Also the Java-Coding-Standard is 4 spaces indentation. It might be, that the markup for SE broke yours, but either way, your first if-statement is too far in.
Naming:
The convention for variable names in Java is
camelCase. Your animationframe should instead be animationFrame when going by that rule. Similar for your animaxspeed. You don't have to save characters in your code, write it out: animationMaxSpeed.anispeed can also be written out: animationSpeed. This should make your code even more clear than it is ;)Braces:
It's also convention to place all if-blocks in braces, disregarding whether they have to, or not. This is to decrease the possibility of bugs when changing such blocks and forgetting braces.
if (animationFrame == 3) {
animationFrame = 0;
}Also the Java-Coding-Standard is 4 spaces indentation. It might be, that the markup for SE broke yours, but either way, your first if-statement is too far in.
Code Snippets
if (animationFrame == 3) {
animationFrame = 0;
}Context
StackExchange Code Review Q#47124, answer score: 7
Revisions (0)
No revisions yet.