关于弹球游戏的总结

关于弹球游戏的总结

1 两球的碰撞
在使用shap()方法判断两球碰撞后,用if方法编写球的改变写完后将if判断中的条件由ture改为flase负责同球会不断的相互碰撞,代码如下:
while (!Threadtext.isStop) {

for (int i = 0; i < list.size() - 1; i++) {

Threadtext b1 = list.get(i);
Threadtext b2 = list.get(i + 1);
boolean b = b1.intersects(b2.x, b2.y, b2.width, b2.height);
while(b){
int m=b1.x1;
int n=b1.y1;
b1.x1=b2.x1;
b1.y1=b2.y1;
b2.x1=m;
b2.y1=n;
b=false;
}

}
球对砖块的碰撞,与砖块的消失
在判断球与砖块碰撞的时候不能好高骛远,想要一步到位否则只会将自己绕糊涂,一步一步的根据球与砖块的坐标计算所有碰撞 的可能情况,砖块的消失则用到界面的重绘。同时应注意编码编写的顺序时能影响到画面效果代码对比
理清头绪前
// //判断球是否碰撞的砖块
// if(MapUtil.array[i][j]!=0&&y<=(i+1)*34&&y>=(i+1)*34-17&&x>=(j)*34-17&&x<=(j+1)*34-17){
// y1=-y1;
// bl.update(g);
// //将砖块位置设置为0(表示消除砖块)
// MapUtil.array[i][j]=0;
// }
理清头绪后
// 判断球是否碰撞的砖块
if (MapUtil.array[i][j] != 0) {
if ((Math.abs((xr + 17) - (x + 15)) <= (17 + 15)
&& (y > yr - 30) && y < yr + 34)) {
x1 = -x1;

// 将砖块位置设置为0(表示消除砖块)
MapUtil.array[i][j] = 0;
comp--;
bl.update(g);
}
else if (Math.abs((yr + 17) - (y + 15)) <= (17 + 15)
&& (x > xr - 30 && x < xr + 34)) {
y1 = -y1;
// 将砖块位置设置为0(表示消除砖块)
MapUtil.array[i][j] = 0;
comp--;
bl.update(g);
}
}
图片地址的引用和界面的闪烁
对于地图的地址的引用,最好将地图复制在程序对应名称的images包内,然后用相对位置引用给程序。界面的闪烁可以用双缓冲来解决,在重绘方法内在创建一个图片类将所有要刷新的图片板块全部绘制到新的图片对象中,再将对象一次性的画到界面上。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值