所以我介紹到java和我的技能是有限的,我們的老師希望我們做一個屏幕保護程序。我的目標是讓多個熱氣球同時在屏幕上彈跳,當他們撞到牆上時,他們隨機改變方向。我有一個氣球隨機彈跳,除了它有時假髮,仍然熄滅屏幕,我認爲這個問題是在我的數學,但是。
我需要幫助的問題是,當我向小程序添加第二個圖像時,兩個圖像看上去都是相連的,它們移動的方向完全相同,當一個方向改變方向時,另一個不同的是開始座標,我如何讓他們彼此分開? 繼承人我的代碼。如何讓兩個相同的圖像彼此分開移動?
***
import acm.program.*;
import acm.graphics.*;
import java.awt.Color;
public class HotAirBalloons extends GraphicsProgram
{
private static final int APPLET_WIDTH = 800;
private static final int APPLET_HEIGHT = 600;
private int speedX = 1;
private int speedY = 1;
public void init()
{
setSize(APPLET_WIDTH,APPLET_HEIGHT);
setBackground(new Color(100,210,255));
}
public void moveRandomDirection()
{
double direction = Math.random() * 2.0 * Math.PI;
double speed = 3.0;
speedX = (int) (speed * Math.cos(direction));
speedY = (int) (speed * Math.sin(direction));
}
public void run()
{
GImage img1 = new GImage("balloon.jpg");
add(img1, 0, 0);
GImage img2 = new GImage("balloon.jpg");
add(img2, 200, 200);
while(true)
{
pause(15);
img1.move(speedX, speedY);
img2.move(speedX, speedY);
if (img1.getX() > APPLET_WIDTH - 50)
{
moveRandomDirection();
}
if (img1.getX() < 1)
{
moveRandomDirection();
}
if (img1.getY() +85 > APPLET_HEIGHT)
{
moveRandomDirection();
}
if (img1.getY() < 1)
{
moveRandomDirection();
}
if (img2.getX() > APPLET_WIDTH - 50)
{
moveRandomDirection();
}
if (img2.getX() < 1)
{
moveRandomDirection();
}
if (img2.getY() +85 > APPLET_HEIGHT)
{
moveRandomDirection();
}
if (img2.getY() < 1)
{
moveRandomDirection();
}
}
}
}
非常感謝您對我的其他問題的幫助!我可能會學習這個東西畢竟=) – James