Animated graphics |
As an example, here is a small animation showing a mother hen and its two chicks. (The original animation was made by Jeong-eun Yu and Geum-hyeon Song as a lab project in my CS101 course.)
The complete source is chicken.kt. Compile and run in the usual way:
$ ktc chicken.kt $ kt ChickenKt(Click on the image to see the animation in your web browser.)
If you look in the code, you will see that we define a class Chicken, which represents both the hen and the two chicks. It has an attribute selecting hen or chick, and parameters for the position. The method draw then draws the chicken onto the given canvas.
The animation consists of a loop. In each iteration we draw the background, all the animals, and possibly some text. Then we update the animation by changing the position of the animals, wait a short time, and continue with the next frame of the animation.
Since each chicken is fully defined in its class, drawing each frame simply needs to call the draw method of each animal on screen:
fun drawImage(g: Canvas, herd: List<Chicken>) { g.clear(Color(173,216,230)) g.setColor(Color(144,238,144)) g.drawRectangle(0.0, 200.0, 1000.0, 150.0) g.setColor(Color.ORANGE) g.drawCircle(100.0, 50.0, 40.0) for (chicken in herd) chicken.draw(g) }Here we draw the light blue sky background, a light green rectangle for the ground, and an orange sun, before drawing the chicken.
Your task in this project is to come up with your own animation. Create a class for each type of object in your animation, with parameters that determine the object's position and look. Objects can change color, move their hands, etc., similar to the second chick flapping its wing.
Animated graphics |