This animation tests all the animation method calls available. It creates circles, lines, triangles, rectangles, and text of different colors. It moves these around the animation frame both smoothly and in jumps, individually and concurrently.

xa.begin();
xa.delay(10);
xa.pointLine("Lthin", 0.3f, 0.2f, 0.8f, 0.7f, Color.black, XtangoApplet.THIN);
xa.delay(10);
xa.pointLine("Lmedium", 0.4f, 0.2f, 0.9f, 0.7f, Color.black, XtangoApplet.MEDTHICK);
xa.delay(10);
xa.pointLine("Lthick", 0.5f, 0.2f, (float)1, 0.7f, Color.black, XtangoApplet.THICK);
xa.delay(10);
xa.triangle("Tri1", 0.1f, 0.1f, 0.5f, 0.9f, 0.9f, 0.2f, Color.magenta, XtangoApplet.OUTLINE);
xa.delay(10);
xa.triangle("Tri2", 0.1f, 0.3f, 0.7f, 0.9f, 0.8f, 0.3f, Color.green, XtangoApplet.SOLID);
xa.delay(10);
xa.bg(Color.yellow);
xa.delay(10);
xa.text("t00", 0.0f, 0.0f, false, Color.gray, "text 0");
xa.delay(10);
xa.text("t01", 0.1f, 0.1f, false, Color.blue, "text 1");
xa.delay(10);
xa.circle("c0", 0.8f, 0.2f, 0.1f, Color.red, XtangoApplet.SOLID);
xa.delay(10);
xa.bg(Color.cyan);
xa.delay(10);
xa.text("t02", 0.2f, 0.2f, false, Color.gray, "text 2");
xa.delay(10);
xa.text("t03", 0.3f, 0.3f, false, Color.gray, "text 3");
xa.delay(10);
xa.text("t04", 0.4f, 0.4f, false, Color.gray, "text 4");
xa.delay(10);
xa.text("t05", 0.5f, 0.5f, false, Color.gray, "text 5");
xa.delay(10);
xa.text("t06", 0.6f, 0.6f, false, Color.gray, "text 6");
xa.delay(10);
xa.text("t06", 0.6f, 0.6f, false, Color.gray, "TEXT 6");
xa.delay(10);
xa.text("t07", 0.7f, 0.7f, false, Color.gray, "text 7");
xa.delay(10);
xa.text("t08", 0.8f, 0.8f, false, Color.gray, "text 8");
xa.delay(10);
xa.text("t09", 0.9f, 0.9f, false, Color.gray, "text 9");
xa.delay(10);
xa.text("t10", (float)1, (float)1, false, Color.gray, "text10");
xa.delay(10);
xa.circle("c1", 0.7f, 0.7f, 0.05f, Color.black, XtangoApplet.OUTLINE);
xa.delay(10);
xa.fill("c1", XtangoApplet.SOLID);
xa.delay(10);
xa.fill("c1", XtangoApplet.HALF);
xa.delay(10);
xa.color("t07", Color.white);
xa.delay(10);
xa.raise("t07");
xa.delay(10);
xa.swapIds("t04", "t05");
xa.jump("t04", 0.9f, 0.1f);
xa.delay(10);
xa.delete("t04"); xa.delete("t05"); xa.delete("t06");
xa.delete("t04");
xa.delay(10);
xa.jumpTo("c0", "t03");
xa.delay(10);
xa.vis("t03");    // should lower
xa.delay(10);
xa.vis("t03");    // should raise
xa.delay(10);
xa.rectangle("R", 0.5f, 0.5f, 0.1f, 0.2f, Color.black, XtangoApplet.SOLID);
xa.delay(10);
xa.rectangle("Rhalf", 0.6f, 0.6f, 0.2f, 0.1f, Color.black, XtangoApplet.HALF);
xa.delay(10);
xa.line("L", 0.1f, 0.1f, 0.8f, 0.8f, Color.black, XtangoApplet.THIN);
xa.delay(10);
xa.circle("moveTest1", 0.1f, 0.9f, 0.05f, Color.magenta, XtangoApplet.SOLID);
xa.move("moveTest1", 0.9f, 0.1f);
xa.circle("moveTest2", 0.9f, 0.9f, 0.05f, Color.blue, XtangoApplet.OUTLINE);
xa.move("moveTest2", 0.1f, 0.1f);
for (int i = 0; i < 5; i++) {
   xa.rectangle("R"+i, (float)Math.random(), (float)Math.random(),
      (float)Math.random()/4,
      (float)Math.random()/4, Color.magenta, XtangoApplet.SOLID);
   xa.delay(2);
   xa.color("R"+i, Color.orange);
   xa.delay(2);
   xa.delete("R"+i);
}
for (int i = 0; i < 5; i++) {
   xa.delay(2);
   float x = (float)Math.random();
   float y = (float)Math.random();
   System.out.println("jump x=" + x + ", y=" + y);
   xa.jump("c1", x, y);
}
xa.exchangePosAsync("moveTest1", "moveTest2");
xa.delay(1);
xa.bigText("ha!", 0.5f, 0.1f, true, Color.black, "ha!");
xa.exchangePos("moveTest1", "moveTest2");
xa.delay(1);
xa.bigText("Ha!", 0.6f, 0.1f, true, Color.black, "Ha!");
xa.exchangePosAsync("moveTest1", "moveTest2");
xa.delay(5);
xa.bigText("HA!", 0.7f, 0.1f, true, Color.black, "HA!");
xa.delay(10);
xa.jumpRelative("t00", 0.05f, 0.05f);
xa.delay(10);
xa.jumpRelative("t01", -0.05f, 0.07f);
xa.delay(10);
xa.jumpRelative("t02", 0.02f, -0.15f);
xa.delay(10);
xa.jumpRelative("t03", -0.3f, -0.3f);
xa.delay(10);
xa.moveRelative("moveTest1", 0.3f, 0.3f);
xa.moveTo("moveTest2", "t00");
xa.delay(10);
xa.smallText("Tsmall", 0.2f, 0.9f, true, Color.magenta, "Going...");
xa.line("L1", 0.2f, 0.85f, 0.0f, 0.1f, Color.black, XtangoApplet.THIN);
xa.line("L2", 0.15f, 0.9f, 0.1f, 0.0f, Color.black, XtangoApplet.THIN);
xa.delay(10);
xa.text("Tnormal", 0.15f, 0.8f, true, Color.blue, "Yup, Going...");
xa.line("L3", 0.15f, 0.75f, 0.0f, 0.1f, Color.black, XtangoApplet.THIN);
xa.line("L4", 0.1f, 0.8f, 0.1f, 0.0f, Color.black, XtangoApplet.THIN);
xa.delay(10);
xa.bigText("Tbig", 0.1f, 0.7f, true, Color.darkGray, "Surely, GONE!");
xa.line("L5", 0.1f, 0.65f, 0.0f, 0.1f, Color.black, XtangoApplet.THIN);
xa.line("L6", 0.05f, 0.7f, 0.1f, 0.0f, Color.black, XtangoApplet.THIN);
xa.delay(10);
xa.coords(0.0f, 0.0f, 0.5f, 0.5f);
xa.delay(10);
xa.coords(0.0f, 0.5f, 0.5f, (float)1);
xa.delay(10);
xa.coords(0.0f, 0.0f, (float)1, (float)1);
xa.delay(10);
xa.coords(0.0f, 0.0f, (float)1, 0.5f);
xa.delay(10);
xa.coords(0.0f, 0.0f, 0.5f, (float)1);
xa.delay(10);
xa.switchPos("Tbig", "Tsmall");
xa.delay(10);
xa.moveToAsync("Tnormal", "Tsmall");
xa.delay(1);
xa.moveRelativeAsync("Tbig", 0.3f, 0.0f);
xa.moveAsync("Tsmall", 0.2f, 0.9f);
System.out.println("DONE!");
xa.end();
At the bottom of the animation window is a button and text field. First click this button. To start the animation, then push the ``Start'' button. An applet appears here if you have a Java-enabled browser.


© 1998 Stephen J. Hartley