ik ben een beginnende programeur
ik ben nu bezig om een simpel programma te bouwen om een paar balletjes door een veld te laten stuiteren.
ik heb drie klasse
canvas(hier gaat alles goed)
boxball
balldemo
mijn code boxball:
balldemo:
als ik nu een het programma run, dan gaan de ballen mooi lineair naar rechtsonder, maar dan verdwijnen ze uit het beeld.
heeft iemand tips:
BVD max
ik ben nu bezig om een simpel programma te bouwen om een paar balletjes door een veld te laten stuiteren.
ik heb drie klasse
canvas(hier gaat alles goed)
boxball
balldemo
mijn code boxball:
PHP:
import java.awt.*;
import java.awt.geom.*;
public class BoxBall
{
private int ballDegradation = 2;
private Ellipse2D.Double circle;
private Color color;
private int diameter;
private int xPosition;
private int yPosition;
private Canvas canvas;
private int ySpeed = 20; // Initiële snelheid omlaag
private int xSpeed = 20; // Initiële snelheid horizontaal
/**
* Constructor voor objecten van de klasse BouncingBall
*/
public BoxBall(int xPos, int yPos, int ballDiameter, Color ballColor,
int groundPos, Canvas drawingCanvas)
{
xPosition = xPos;
yPosition = yPos;
color = ballColor;
diameter = ballDiameter;
canvas = drawingCanvas;
}
/**
* Teken deze bal op de huidige positie ervan in het venster.
**/
public void draw()
{
canvas.setForegroundColor(color);
canvas.fillCircle(xPosition, yPosition, diameter);
}
/**
* Wis deze bal op de huidige positie ervan in het venster.
**/
public void erase()
{
canvas.eraseCircle(xPosition, yPosition, diameter);
}
/**
* Verplaats deze bal afhankelijk van de positie en snelheid ervan
* en teken de bal opnieuw.
**/
public void move()
{
// Wis de bal op de huidige positie in het venster
erase();
// controleer of de bal de rand geraakt heeft
if (yPosition >= 500)
{
yPosition -= ySpeed;
}
if (yPosition <= 0)
{
yPosition += ySpeed;
}
else
{
yPosition += ySpeed;
}
if (xPosition >= 600)
{
xPosition -= xSpeed;
}
if (xPosition <= 0)
{
xPosition += xSpeed;
}
else
{
xPosition += xSpeed;
}
// Teken de bal opnieuw op de nieuwe positie
draw();
}
/**
* retourneer de horizontale positie van deze bal
*/
public int getXPosition()
{
return xPosition;
}
/**
* retourneer de verticale positie van deze bal
*/
public int getYPosition()
{
return yPosition;
}
}
balldemo:
PHP:
import java.awt.*;
import java.awt.geom.*;
import java.util.*;
public class BallDemo
{
private Canvas myCanvas;
private int breed;
private int hoog;
/**
* Maak een BallDemo-object. Maak een nieuw venster en maakt dat zichtbaar.
*/
public BallDemo()
{
myCanvas = new Canvas("Baldemonstratie", 600, 500);
myCanvas.setVisible(true);
}
public void boxingBall()
{
int ground = 500;
myCanvas.setVisible(true);
BoxBall ball = new BoxBall(80, 50, 20, Color.blue, ground, myCanvas);
ball.draw();
BoxBall ball2 = new BoxBall(50, 40, 15, Color.red, ground, myCanvas);
ball2.draw();
boolean finished = false;
while(!finished)
{
myCanvas.wait(100);
// vertraging
ball.move();
ball2.move();
if(ball.getXPosition() >= 1000 && ball2.getXPosition() >= 1000)
finished = true;
}
ball.erase();
ball2.erase();
}
}
als ik nu een het programma run, dan gaan de ballen mooi lineair naar rechtsonder, maar dan verdwijnen ze uit het beeld.
heeft iemand tips:
BVD max