重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

java实现小球碰撞代码 java两个小球碰撞的代码

java小球碰撞窗体边缘来回反弹的代码

import java.awt.Color;

创新互联公司专注于黎平网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供黎平营销型网站建设,黎平网站制作、黎平网页设计、黎平网站官网定制、重庆小程序开发服务,打造黎平网络公司原创品牌,更为您提供黎平网站排名全网营销落地服务。

import java.awt.Graphics;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.util.Random;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class RunningBallDemo extends JFrame {

public static void main(String args[]) {

new RunningBallDemo();

}

public RunningBallDemo() {

Ball ballPanel = new Ball(5, 5);

getContentPane().add(ballPanel);

setBackground(Color.BLACK);

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

setSize(350, 350);

setVisible(true);

Thread thread1 = new Thread(ballPanel);

thread1.start();

}

}

class Ball extends JPanel implements Runnable {

int rgb = 0;

Color color;

int x, y;

int dx = 5, dy = 5;

Ball(int x, int y) {

this.x = x;

this.y = y;

}

@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g);

setBackground(Color.BLACK);

g.setColor(color);

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

}

public void run() {

while (true) {

if (x = 0) {

dx = 5;

updateBallColor();

} else if ((x + 50) = getWidth()) {

dx = -5;

updateBallColor();

}

if (y = 0) {

dy = 5;

updateBallColor();

} else if ((y + 50) = getHeight()) {

dy = -5;

updateBallColor();

}

x = x + dx;

y = y + dy;

repaint();

try {

Thread.sleep(25);

} catch (InterruptedException e) {

;

}

}

}

public void updateBallColor() {

rgb = new Random().nextInt();

color = new Color(rgb);

}

}

java 小球碰撞 条件是球心距离 导致"黏住"

2个球相撞,2个球心在一定距离内就可以认为相撞。

两球相撞反弹运动 if((x1-x20)(y1-y20)){ if((x1-x2=r)(y1-y2=r)){ dr1=3; dr2=1;} } if((x1-x20)(y1-y20)){ if((x1-x2=r)(y2-y1=r)){ dr1=0; dr2=2;} } if((x2-x10)

JAVA如何实现小球的弹性碰撞

我没用java写过代码,所以我只说算法,代码你自己翻译下

按C的语法来:

void xiaoqiu

{

int UB=10,DB=200,LB=10,RB=200; //定义弹球范围的边界

int sh=1; //定义横向步长

int sz=1; //定义纵向步长(两步长之比决定了反弹的角度)

int x=LB,y=UB; //定义坐标

int i=10000; //循环次数(自己选择跳出手段)

while(i0)

{

i--;

x=x+sh;

if(x=RB||x=LB) sh=-sh; //碰壁后步长变反

y=y+sz;

if(y=DB||y=UB) sz=-sz; //碰壁后步长变反

(显示代码)

}

return;

}

总得来说,就是相当于横向和纵向分别处理移动、反弹的问题,碰壁后步长变为相反数

不懂请追问


网站栏目:java实现小球碰撞代码 java两个小球碰撞的代码
网站地址:http://cqcxhl.cn/article/ddojjeh.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP