(このシステムは、以下のような変数、メソッドを利用しています) めだかクラス: <変数> ・めだかの位置 ・めだかの色 ・めだかの形 <メソッド> ・めだかクラスの生成(コンストラクタ) - めだかの位置の決定 - めだかの色の決定(任意の色生成クラスのメソッドで作る) ・めだかを描画(draw()メソッド) - インスタンス変数の「めだかの色」でめだかを描画 めだかアプレットクラス: <変数> ・めだか(Medakaクラス) <メソッド> ・初期化(めだかの生成 init()メソッド) - めだかクラスのインスタンスの生成 ・描画(めだかの描画 paint()メソッド) - めだかを描画する。(Medakaクラスのdraw()メソッドの呼び出し) 任意の色生成クラス: <変数> ・Randomクラス <メソッド> ・RGB値の決定 (このクラス内のみで利用されるメソッド ramdomRGBValue()メソッド) - インスタンス変数であるRandomクラスのインスタンスメソッドを 利用して0〜255までのあいだの任意の整数値を取得する。 ・任意の色の作成(randomColor()メソッド) - randomRGBValue()メソッドを利用して色の合成に必要なRGB値 を取得し、任意の色を作成する。
岩本さんのまとめより再出発しま〜す。メダカ飼育システムが何処まで進んでいたのかを思い起こせば、畑さんの たたき台に始まり、色々追加修正が行われ、結局以下のような段階まで進 んでたように思えます。 背景がcyanでメダカに見立てた文字列 >^)))>< をブラウザ上に表示し、 その色をアクセス毎にランダムに表示させる、がこれはいわゆるスレッド を使ったアニメーションではない。 で、そのソースなんですが大体以下のようにまとめられると思います。 これは最終的に畑さんが提示されたソースそのままです。 import java.awt.*; import java.applet.Applet; import java.util.Random; //メダカの基本となるクラス class Medaka { // メダカクラスの始まり private Point position; private Color color; private String figure = ">^)))><"; // これがメダカです Medaka(int x, int y) { // コンストラクタの始り position = new Point(x, y); Random random = new Random(); //ランダムに色変化 int red = random.nextInt() % 256; int green = random.nextInt() % 256; int blue = random.nextInt() % 256; if( red < 0 ) { red = -red; } if( green < 0 ) { green = -green; } if( blue < 0 ) { blue = -blue; } color = new Color(red, green, blue); } //コンストラクタの終わり public void draw(Graphics g) {//色を表示させるdrawメソッド Color current = g.getColor(); g.setColor(color); g.drawString(figure,position.x,position.y); g.setColor(current); } } //メダカクラスの終わり //実際にメダカをブラウザ上に表示させるメダカアプレットクラス public class MedakaApplet extends Applet { Medaka medaka; public void init() { medaka = new Medaka(100, 100); setBackground(Color.cyan); } public void paint (Graphics g) { medaka.draw(g); } } とここまでなんですが、このソースをJDK等でコンパイルし以下のように htmlファイルを作りclassファイルと同じディレクトリに配置する。
Medaka Applet
Here is a Medaka Applet:
するとしっかり水色の背景の中にメダカがいるのが見て取れると思います 、メダカの色もランダムに変化する。 で、上記のソースはこと細かくメダカのホームページに解説されてますの で分からない方はじっくり御覧下さい。