Quantcast
Channel: 楽天 みんなで解決!Q&A 新着質問([技術者向] コンピューター/205)
Viewing all articles
Browse latest Browse all 29232

画面の大きさに合わせてボールを動かせたい

$
0
0
今日は。 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 ; } }

Viewing all articles
Browse latest Browse all 29232

Trending Articles