0

GraphicsProgram を拡張する跳ねるボール クラスがあります。ブログに埋め込みできるようにしたいです。この投稿によると、この目的のために Java Web start を使用できます。しかし、私はプログラミングが初めてで、私のプログラムはかなり小さいです。だから私はJavaアプレットに固執したい. しかし、Java アプレットを使用するには、クラスを JApplet として拡張する必要があります。前述したように、私の弾むボール クラスは GraphicsProgram を拡張します。したがって、これを Java アプレットとして使用することはできません。どのクラスも実装してブラウザで Java アプレットとして実行できるようにするためには、正確には何が必要なのでしょうか?

/**
 * This program graphically simulates a bouncing ball.
 */

package Lecture_Examples;

import acm.graphics.GOval;
import acm.program.GraphicsProgram;

public class BouncingBall extends GraphicsProgram{

    private static final long serialVersionUID = -1154542047805606083L;

    /**
     * Diameter of the ball
     */
    private static final int DIAM_BALL = 30;

    /**
     * Amount of velocity to be increased as a result of gravity
     */
    private static final int GRAVITY = 3;

    /**
     * Animation delay or pause between the ball moves
     */
    private static final int DELAY = 50;

    /**
     * Initial x and  y pos of the ball
     */
    private static final int X_START = DIAM_BALL /2;
    private static final int Y_START = DIAM_BALL /2;

    /**
     * X velocity
     */
    private static final double X_VEL = 5;

    /**
     * Amount of Y velocity reduction when the ball bounces
     */
    private static final double BOUNCE_REDUCE = 0.9;

    /**
     * starting x and y velocities
     */
    private double xVel = X_VEL;
    private double yVel = 0.0;  //starting from rest

    /*
     * ivar
     */
    private GOval ball;

    public void run(){
        setUp();    //set's up initial pos of the ball

        //simulation ends when the ball goes off right hand of the screen
        while(ball.getX() < getWidth()){
            moveBall();
            checkForCollision();
            pause(DELAY);
        }
    }
    /**
     * Checks if the ball touches the floor of the canvas and then update velocity and position of the ball
     */
    private void checkForCollision() {
        //determine if the ball has dropped below the floor
        if(ball.getY() > (getHeight() - DIAM_BALL)){
            //Change the ball's y velocity to bounce it up the floor with bounce_reduce effect
            yVel = -yVel *BOUNCE_REDUCE;

            //assuming that the ball will move an amount above the floor
            //equal to the amount  it would have dropped below the floor. This will
            //sure that the ball doesn't bulge to the floor while bouncing.
            double diff = ball.getY() - (getHeight() - DIAM_BALL);
            ball.move(0, -2*diff);
        }
    }

    /**
     * Moves the ball
     */

    private void moveBall() {
        yVel += GRAVITY;    //Add gravity to produce moment to or away from the floor
        ball.move(xVel, yVel);
    }

    /**
     *Creates and place the ball
     */
    private void setUp() {
        ball = new GOval(X_START, Y_START, DIAM_BALL, DIAM_BALL);   //Creates teh ball
        ball.setFilled(true);   //fill black
        add(ball);  //add to canvas
    }
}
4

0 に答える 0