package org.teachingextensions.logo; import org.teachingextensions.WindowUtils.ProgramWindow; import org.teachingextensions.approvals.lite.util.ObjectUtils; import org.teachingextensions.logo.Turtle.Animals; import org.teachingextensions.logo.utils.LineAndShapeUtils.Paintable; import org.teachingextensions.logo.utils.PuzzleUtils.Tile; import javax.swing.*; import java.awt.*; /** * <img src="http://vignette2.wikia.nocookie.net/farmville/images/0/06/Sweet_Dreams_Unicorn-icon.png/revision/latest/scale-to-width/100?cb=20130802132644" style="text-align: left" alt="Unicorns are magical - like programming!"height=35 width=35 > * The Unicorn lets you add Unicorns (rather than Turtles!) to your window */ public class Unicorn implements Paintable { private int x; private int y; private Image image; private int scale; private Dimension dimension = new Dimension(10, 10); public Unicorn(int x, int y, int scale) { this.x = x; this.y = y; this.scale = scale / 10; this.image = getImage(); } private static Image getImage() { return ObjectUtils.loadImage(Tile.class, Animals.Unicorn + ".png"); } /** * Adds a Unicorn to the Program Window. <br> * <div><b>Example:</b> {@code Unicorn.addTo(programWindow)}</div> * * @param programWindow * the current Program Window */ public void addTo(ProgramWindow programWindow) { programWindow.add(this); } @Override public void paint(Graphics2D g, JPanel caller) { g.drawImage(this.image, this.x, this.y, this.dimension.width * scale, this.dimension.height * scale, null); } }