对不起,如果我似乎在向这个论坛发送垃圾邮件,但我非常接近完成这个小程序。我创建了一个简单的 Ball 类,其中包含球的 x、y、半径和速度。此时运行小程序会返回42 个错误,但它们都是一样的,“找不到符号”。对该主题的搜索已将其缩小为未声明变量的问题或构造函数的问题。我已经搜索了一个小时的解决方案,但我不知道去哪里找。有什么解决办法吗?(我使用 Java 编辑器)
import java.applet.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class BallApplet2 extends Applet implements Runnable
{
public static void main(String[] args) {
Ball rodebal = new Ball();
Ball blauwebal = new Ball();
rodebal.x_pos = 150;
rodebal.y_pos = 301;
rodebal.radius = 20;
rodebal.randomspeed = (int)(Math.random() * 7 + 2);
rodebal.ballspeedx = -randomspeed();
blauwebal.x_pos = 250;
blauwebal.y_pos = 301;
blauwebal.radius = 20;
blauwebal.randomspeed = (int)(Math.random() * 7 + 2);
blauwebal.ballspeedx = randomspeed();
}
public void init() {}
// de Thread wordt hier aangemaakt
public void start() {
Thread th = new Thread (this);
th.start (); }
public void stop() {}
public void destroy() {}
// de Thread wordt hier uitgevoerd door de methode run()
public void run () {
// de prioriteit van de Thread wordt verlaagd zodat hij niet nog een keer geactiveerd wordt tijdens het uitvoeren
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
while (true)
{
rodebal.x_pos += rodebal.ballspeedx;
blauwebal.x_pos += blauwebal.ballspeedx;
// repaint() update de positie van de ballen
repaint();
// als x_pos < 100 is draait de richting van de bal om
if (rodebal.x_pos < 100) {
rodebal.ballspeedx = -rodebal.ballspeedx;
x_pos1 = 100;
}
if (blauwebal.x_pos < 100) {
blauwebal.ballspeedx = -blauwebal.ballspeedx;
x_pos2 = 100;
}
// als x_pos > 300 is draait de richting van de bal om
if (rodebal.x_pos > 300) {
rodebal.ballspeedx1 = -rodebal.ballspeedx;
x_pos1 = 300;
}
if (blauwebal.x_pos > 300) {
blauwebal.ballspeedx = -blauwebal.ballspeedx;
x_pos2 = 300;
}
// als de positie van de blauwe bal (x_pos2) - de positie van de rode bal (x_pos1) kleiner is
// dan de som van de stralen van de rode en de blauwe bal draaien beide ballen om.
if (Math.abs(blauwebal.x_pos-rodebal.x_pos)<rodebal.radius+blauwebal.radius){
rodebal.ballspeedx = -rodebal.ballspeedx;
blauwebal.ballspeedx = -blauwebal.ballspeedx;
}
try { Thread.sleep (20); }
catch (InterruptedException ex) {}
Thread.currentThread().setPriority(Thread.MAX_PRIORITY); }}
public void paint (Graphics g) {
// de rode bal
g.setColor (Color.red);
g.fillOval (rodebal.x_pos - rodebal.radius, rodebal.y_pos - rodebal.radius, 2 * rodebal.radius, 2 * rodebal.radius);
// de blauwe bal
g.setColor (Color.blue);
g.fillOval (blauwe.x_pos - blauwe.radius2, blauwebal.y_pos - blauwe.radius, 2 * blauwe.radius, 2 * blauwe.radius);
g.setColor(Color.black);
g.drawLine(80,280,80,320); // lijn links
g.drawLine(320,280,320,320); // lijn rechts
g.drawLine(80,320,320,320); // lijn onder
}
// Einde eventmethoden
}
public class Ball {
int x_pos;
int y_pos;
int radius;
int randomspeed;
float ballspeedx;
}