Graphics Programs Reference
In-Depth Information
}
}
}
if(renderEnemy) {
float dx, dy;
Matrix.setIdentityM(enemiesMMatrix, 0);
Matrix.translateM(enemiesMMatrix, 0, enemyOX,
enemyOY, 0);
dx = enemyX - enemyOX;
dy = enemyY - enemyOY;
Matrix.translateM(enemiesMMatrix, 0, dx, dy, 0);
renderEnemies(enemiesMMatrix);
}
}
}
Inside the while block, initialize a ( boolean ) flag renderEnemy as true . If
any missile collides with the current Enemy object, this flag will be set to false ,
and the current Enemy object won't be rendered.
Note We are iterating over Enemy objects inside an ArrayList ,
so, the “current Enemy object” refers to the Enemy object being
processed
inside
the
while(enemiesIterator.hasNext()){...} block.
Next, you need to interpolate the source position of the current Enemy object. As
described in the previous section, while interpolating you also need to test if the cor-
responding Enemy object has entered the plane.
After interpolating the source position of the current Enemy object, start iterating
over the missiles. Create a local variable (of type Missile ) to reference the current
missile. Store the center of this missile by reading its interpolated source position.
Create another local variable difference , of type float[3] . Inside this vari-
able, store the difference between the centers of (current) missile and enemy objects.
Search WWH ::




Custom Search