“波”向上走的代码:
if ((keyStates & GameCanvas.UP_PRESSED) != 0)//当按向下键时
{
this.defineCollisionRectangle(6, 26, 20, 21); //重设检测区域
for (int i = pc.getBoxnum(); i >= 0; i--) {
isCollides(pc.box[i]); //与箱子做检测
if (iscollidesWB == true){ //如果与箱子发生碰撞
m=i; //记录箱子的序号
pc.box[i].moveD= 1; //设置箱子要移动的方向
push = true; //设置“波”是否可踢箱子的状态为“是”
break; //跳出循环,不与剩余的箱子做检测
}
else
push = false;
}
if (iscollidesWB == false)
isCollides(pc.tree); //与墙壁做检测
if (iscollidesWB == false && iscollidesWT == false) {//如果没跟箱子和墙
壁发生任何碰撞
if (this.getFrame() == 6)//改变“波”的图片,实现走路的效果
this.setFrame(7);
else if (this.getFrame() == 7)
this.setFrame(8);
else
this.setFrame(6);
panda_Y = Math.max(0, panda_Y - 20);
setPosition(panda_X, panda_Y); //是“波”的位置发生移动
for (int i = pc.getBoxnum(); i >= 0; i--) {
isCollides(pc.box[i]); //再“波”的新位置做检测
if (iscollidesWB == true){
m=i;
pc.box[i].moveD= 1;
push = true;
break;
}
else
push = false;
}
prestep = 1; //记录“波”此次走的方向
} else {
this.setFrame(8);
prestep = 1;
}
defineCollisionRectangle(6, 27, 20, 20); //恢复初始检测区域
}