[AndEngine学习教程] CollisionDetection 实体碰撞检测(二)

2014-11-24 10:12:00 · 作者: · 浏览: 2
ene();
mScene.setBackground(mBackground);

final float centerX = (CAMERA_WIDTH - mFaceRegion.getWidth()) / 2;
final float centerY = (CAMERA_HEIGHT - mFaceRegion.getHeight()) / 2;

2.构建相应的精灵任务:
2.1 布置人脸:
[java]
final MySprite mFace = new MySprite(centerX - 50, centerY, 80, 80, mFaceRegion, getVertexBufferObjectManager());

2.2 不知受碰撞检测的矩形
[java]
final Rectangle mRectangle = new Rectangle(centerX + 10, centerY, 80,80,getVertexBufferObjectManager());
mRectangle.registerEntityModifier(new LoopEntityModifier(new ParallelEntityModifier(
new ScaleModifier(2, 0.5f, 2.0f),new ScaleModifier(2, 2.0f,1.0f),new RotationModifier(4,0.0f,360.0f) )));

添加相应的modifier后,矩形就会动态的变幻了.

2.3 布置移动控制器和方向控制器

[java]
final AnalogOnScreenControl mSpeedController = new AnalogOnScreenControl(30,CAMERA_HEIGHT - mControlBaseRegion.getHeight() - 20,
mCamera, mControlBaseRegion, mControlKnobRegion, 0.1f, 100,getVertexBufferObjectManager(),
new IAnalogOnScreenControlListener(){

@Override
public void onControlChange(
BaseOnScreenControl pBaseOnScreenControl,
float pValueX, float pValueY) {
// TODO Auto-generated method stub
if(pValueX == 0 && pValueY == 0){
mFace.setVelocity(0, 0);
}

else
{
mFace.setVelocity(pValueX*100, pValueY*100);
}
}


@Override
public void onControlClick(
AnalogOnScreenControl pAnalogOnScreenControl) {
// TODO Auto-generated method stub

}


});


final AnalogOnScreenControl mRotationController = new AnalogOnScreenControl(CAMERA_WIDTH - mControlBaseRegion.getWidth() - 30,
CAMERA_HEIGHT - mControlBaseRegion.getHeight() - 20,
mCamera, mControlBaseRegion, mControlKnobRegion, 0.1f, 100,getVertexBufferObjectManager(),
new IAnalogOnScreenControlListener(){

@Override
public void onControlChange(
BaseOnScreenControl pBaseOnScreenControl,
float pValueX, float pValueY) {
// TODO Auto-generated method stub
if(pValueX == 0 && pValueY == 0){
mFace.setRotation(0.0f);
}

else
{
mFace.setRotation(MathUtils.radToDeg(MathUtils.atan2(pValueY, pValueX)));
}
}

@Override
public void onControlClick(
AnalogOnScreenControl pAnalogOnScreenControl) {
// TODO Auto-gen