彩色弹珠编程怎么做

时间:2025-01-25 22:44:45 网络游戏

彩色弹珠编程可以通过多种编程语言实现,例如Java、Python等。下面我将分别提供Java和Python的示例代码。

Java示例

```java

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class BallsJFrame2 extends JFrame implements ChangeListener, ActionListener {

private JSpinner spinner;

private RollBalls ball;

private JButton btn1, btn2;

public BallsJFrame2() {

setTitle("彩色弹珠");

setSize(400, 400);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLayout(new BorderLayout());

// 添加弹珠

ball = new RollBalls();

add(ball, BorderLayout.CENTER);

// 添加按钮

btn1 = new JButton("开始");

btn2 = new JButton("停止");

JPanel btnPanel = new JPanel();

btnPanel.add(btn1);

btnPanel.add(btn2);

add(btnPanel, BorderLayout.SOUTH);

// 添加监听器

btn1.addActionListener(this);

btn2.addActionListener(this);

ball.addChangeListener(this);

}

@Override

public void stateChanged(ChangeEvent e) {

repaint();

}

@Override

public void actionPerformed(ActionEvent e) {

if (e.getSource() == btn1) {

ball.start();

} else if (e.getSource() == btn2) {

ball.stop();

}

}

public static void main(String[] args) {

SwingUtilities.invokeLater(() -> {

BallsJFrame2 frame = new BallsJFrame2();

frame.setVisible(true);

});

}

}

class RollBalls extends JPanel implements ChangeListener {

private int x = 0, y = 0;

private int dx = 5, dy = 5;

private Timer timer;

private boolean running = false;

public RollBalls() {

timer = new Timer(10, e -> {

if (y + dy > getHeight() || y + dy < 0) {

dy = -dy;

}

if (x + dx > getWidth() || x + dx < 0) {

dx = -dx;

}

x += dx;

y += dy;

repaint();

});

}

public void start() {

running = true;

timer.start();

}

public void stop() {

running = false;

timer.stop();

}

@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g);

g.setColor(Color.BLUE);

g.fillOval(x, y, 50, 50);

}

}

```

Python示例