// Moving Sprites by Hiroyuki Murata package mypkg; import java.awt.*; import java.awt.image.*; public class Sprites extends java.applet.Applet implements Runnable{ final String AppInfo = "Moving Sprites ver0.5 by Hiroyuki Murata"; final String imagefile = "8ken_bw.gif"; final int N=8, SpWidth=32; final Font fontFix = new Font("TimesRoman",Font.ITALIC,20); final Font fontApp = new Font("TimesRoman",Font.ITALIC,36); final int colors[] = { 0xff0000, 0x00ff00, 0x0000ff, 0xffff00, 0x00ffff, 0xff00ff, 0xff8000, 0x00ff80, 0x8000ff }; Thread thread; MediaTracker tracker; Image sprite[] = new Image[N]; Motion mv[] = new Motion[N]; int interval; int offsetB; // x-offset of Front,Background int size_w,size_h; Image iA; Graphics gA; Toolkit tk; boolean CalledByUpdate,// (set in update()) loadedB, // loaded on backbround loadedF, // loaded on front loaded_every, // loaded on every sprites & background loading_displayed, // "loading..." displayed sleep_enable // sleep(interval) enable ; public String getAppletInfo() { return AppInfo; } //--------------------------------------------------------------------- public void init(){ loadedB = loadedF = loaded_every = CalledByUpdate = loading_displayed = false; sleep_enable = false; tracker = new MediaTracker(this); String param = getParameter("interval"); interval = (param != null) ? Integer.parseInt(param) : 100; size_w = size().width; size_h = size().height; offsetB = size_w; tk = getToolkit(); iA = createImage(offsetB+size_w,size_h); gA = iA.getGraphics(); gA.setColor(Color.pink); gA.fillRect(offsetB,0,size_w,size_h); gA.setColor(Color.cyan); gA.fillRect(0,0,size_w,size_h); Image allsprite = getImage(getDocumentBase(), imagefile); ImageProducer imgSrc = allsprite.getSource(); for (int i=0; i