java程序边界效应_java-当对象碰到边界时,如何更改对象的大小...

在初始状态下,ballsizeX为60,ballsizeY为.

既不满足条件ballsizeX> 60 || ballsizeY> 60,也不满足条件ballsizeX< 30 || ballsizeY< 30.

由于两个值都不会更改(条件覆盖的代码块中除外),因此条件将永远不会满足.

如果球碰到墙,则增加球的大小:

if (ballX < 0 || ballX > 500) {

speedX = speedX * (-1);

ballsizeY = initSize*2;

} else if (ballY < 0 || ballY > 400) {

speedY = speedY * (-1);

ballsizeX = initSize*2;

}

只要比初始尺寸要大,就可以减小每一帧中的球的尺寸:

if ( ballsizeX > 30 ) {

ballsizeX = ballsizeX - 1;

}

if ( ballsizeY > 30 ) {

ballsizeY = ballsizeY - 1;

}

请参见示例,其中我将建议应用于原始代码:

srzWs.gif

float initSize = 30;

float ballsizeX = initSize;

float ballsizeY = initSize;

float ballX = initSize/2;

float ballY = initSize/2;

float speedX = 2;

float speedY = 2;

void setup() {

size(500, 400);

}

void draw() {

background(255);

fill(random(255), 255, random(255));

ellipse(ballX, ballY, ballsizeX, ballsizeY);

speedX = speedX * 1;

speedY = speedY * 1;

ballX = ballX + speedX;

ballY = ballY + speedY;

if ( ballsizeX > initSize ) {

ballsizeX = ballsizeX - 1;

}

if ( ballsizeY > initSize ) {

ballsizeY = ballsizeY - 1;

}

if (ballX < initSize/2 || ballX > width-initSize/2) {

speedX = speedX * (-1);

ballsizeY = 60;

} else if (ballY < initSize/2 || ballY > height-initSize/2) {

speedY = speedY * (-1);

ballsizeX = 60;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值