|
|||||||||||||||||||||||||||||||||||||||||||||||||||
2012 2010 2009 2008 2007 |
July 26, 2007. 雨を降らせる さて、この所ずっとMexaを使ってアニメーションを作るのにハマっています。昨日は画像無しで雨を降らせてみました。まずは空を描画します。白黒でやっていますので、取り合えず夜っぽい感じで以下のようにグラデーション描画を実装しました。(以下、単純化のため、定数化すべきところなんかも即値で書いてます)
for (int i = 0; i < 180; i++) { g.setColor(i, i, i); g.fillRect(0, i, 240, 1); }
で、その上に背景画像やキャラクタを描画した後に、雨を描画します。雨の描画にはランダム関数を使いますが、MIDPのRandomクラスにはnextInt(int Max)のように範囲指定つきで値を取得するメソッドが有りません。なのでまず、以下のようにnextIntを実装しました。
private static Random random = new Random(System.currentTimeMillis()); public static int nextInt(int max) { return Math.abs(random.nextInt()) % max; }
で、実際の雨の描画はこんな感じです。
public void paint(Graphics g) { g.setColor(255, 255, 255); for (int i = 0; i == 100; i++) { int x = MyRandom.nextInt(240); int y = MyRandom.nextInt(360); g.drawLine(x, y, x - 2, y + 6); } }
あとはthreadがフレームを進めるごとにrepaint()が呼ばれると、雨の描画がさし換わるわけです。意外と自然な感じで描画されて楽しいので、一度トライしてみてください。わざわざMexaでやら無くてもJavaのCanvasやFrame上への描画で十分楽しめます。baristaは携帯電話の実機で眺めてニヤニヤしていますけど(気持ち悪!)。 ※パスにはこの日記のタイトルをコピペして下さい。 Copyright 2007 barista. All rights reserved. |
|