-
Notifications
You must be signed in to change notification settings - Fork 1
Animation for MainMenu title
The animation title was added to the game to increase the juiciness. This will make the game more unique and fun to play, having multiple surprises for you to find out on your own. When the title is clicked, an image of the virus's head appears in the centre of the screen. The image then enlarges to the size of the screen before being removed.
The animation required the creation of a new class called TitleAnimation
which extends the Image
class. Prior to any translations, the class must set its origin to be centre of the image. This is because TitleAnimation
eventually extends Actor
, and the default origin is set to the bottom left corner (0,0). As such, enlarging and rotating the image will occur around this origin. Setting the origin to be the centre of the Actor
can be achieved by using the setOrigin()
function provided in the Actor
class.
int width = 100;
int height = 100;
this.setOrigin(width/2, height/2);
To get the image to enlarge, a new 'ScaleByAction' class can be initialised and the scale and duration can be set using setAmount()
and setDuration()
.
/* Scales the image to twice its original dimensions */
float scale = 2f;
/* Duration of the animation takes 3.5 seconds */
float duration = 3.5f;
ScaleByAction scaleImage = new ScaleByAction();
scaleImage.setAmount(scale);
scaleImage.setDuration(duration);
A similar approach can be done with RotateToAction
class to enable the image to rotate, and its corresponding setRotation()
function to set the amount of rotation in degrees.
float duration = 3.5f
RotateToAction rotateImage = new RotateToAction();
/* Rotates the images 360 degrees 4 times, in other words, 4 revolutions */
rotateImage.setRotation(360f * 4f);
/* Sets the duration of the animation to be 3.5 seconds */
rotateImage.setDuration(duration);
Lastly, to allow these isolated translations to occur synchronously, a ParallelAction
class can be initialised and the actions added to the TitleAnimation
class using addAction()
function.
ParallelAction imageActions = new ParallelAction(scaleImage, rotateImage);
TitleAnimation.this.addAction(imageActions);
To allow the animation to occur, an addListener
is added to the title logo of the game. The addListener
calls the function titlesAnimation()
, which initialises the TitleAnimation
object. Further, the listener will increase the number of revolutions by 2 up to a maximum of 20 rotations when the title logo is interacted with consecutively.
private void titlesAnimation() {
/* Remove the title logo */
runtimeTitle.remove();
int imageWidth = 100;
int imageHeight = 100;
/** This adds the tiny runtime logo */
moveAnimationImage(imageWidth, imageHeight);
}
runtimeTitle.addListener(
new ChangeListener() {
@Override
public void changed(ChangeEvent changeEvent, Actor actor) {
Logger.info("Launching title Animation");
titlesAnimation();
if (rotationAmountItr < 20) {
rotationAmountItr += 2;
}
}
});
Testing Plans
Team 1
Team 2
Team 3
Team 4
Team 5
Team 1
Team 2
Team 3
Team 4
Team 5
User Testing
Sprint 1 - Game Audio
Sprint 1 - Character Design
Sprint 1 - Menu Assets
Sprint 1 - Map Design
Sprint 1 - Void
Sprint 2 - Game Audio
Sprint 2 - Character Design
Sprint 2 - Menu Assets
Sprint 2 - Interactable Design Animation
Sprint 2 - Levels 1 & 4, and Level Editor
Sprint 2 - Proposed Level 2 & 3 Designs
Sprint 2 - Current Game State
Sprint 3 - Menu Assets
Sprint 3 - Map Design
Sprint 3 - Score Display
Sprint 3 - Player Death and Spawn Animations
Sprint 3 - Pick Ups and Pause Screen
Sprint 4 - Gameplay
Sprint 4 - Game UI and Animation
Sprint 4 - Level Background and Music
Sprint 4 - Game User Testing
Sprint 4 - Final Game State Testing
Entities and Components
Status Components
Event System
Player Animations Implementation
Development Resources
Entities and Components
Level Editor (Saving and Loading
Multiple Levels)