画面の大きさに合わせてボールを動かせたい
今日は。
javaの初心者です、宜しくお願いします。
下のようなボールが動くアプレットを組んでみましたが、画面の大きさを変えても
ボールの動く範囲はかわりません。
画面の大きさに合わせて、動く範囲を自動的に変えてやるには、このプログラムの
何処をどのように書き換えてやるといいのでしょうか。
宜しくお願いします。
==========================================================================
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
public class BallMove_1p extends Applet implements Runnable
{
private int width , height ;
private Thread thread ;
private boolean LoopEnd = false ;
private int x1 = 30 , y1 = 100 ;
private Image offScreen ;
private Graphics screen ;
private int vx = 2 , vy = 2 ;
// アプレット初期化処理
public void init()
{
// アプレット画面サイズ取得
width = getSize().width ;
height = getSize().height ;
// スレッド起動
thread = new Thread( this);
thread.start();
// オフスクリーンの初期化
offScreen = createImage( width, height); // オフスクリーンを作成
screen = offScreen.getGraphics(); // オブジェクトを取得
}
// スレッドループ処理
public void run()
{
while(LoopEnd == false)
{
move() ;
repaint() ;
try { Thread.sleep( 10 ) ; }
catch ( InterruptedException e ) {}
}
}
// ボール移動
private void move()
{
if( x1 >= width - 50 ) { vx =- vx ; }
if( y1 >= height - 50 ) { vy =-vy ; }
if( x1 < 0 ) { vx =- vx ; }
if( y1 < 0 ) { vy =-vy ; }
x1 += vx;
y1 += vy;
}
// 再描画時処理
public void update( Graphics g) { paint(g) ; }
// 描画処理
public void paint( Graphics g)
{
screen.clearRect( 0 , 0 , width , height ) ; // 画面消去
screen.setColor( Color.blue ) ;
screen.fillOval( x1 , y1 , 50 , 50 ) ;
g.drawImage( offScreen , 0 , 0 , this ) ; // イメージを描画
}
// アプレット終了時処理
public void destroy()
{ LoopEnd = true ; }
}