Graphics Programs Reference
In-Depth Information
float[]{0,0,0,1};
Listing 6-15. TANK FENCE GAME 3/src/com/apress/android/tankfencegame3/
GLES20Renderer.java
private void updateModel(int upDown, float zAngle) {
Matrix.setIdentityM(_tankTMatrix, 0);
Matrix.setIdentityM(_tankRMatrix, 0);
Matrix.translateM(_tankTMatrix, 0, 0, upDown, 0);
Matrix.rotateM(_tankRMatrix, 0, zAngle, 0, 0, 1);
Matrix.multiplyMM(_tankMVPMatrix, 0, _tankRMatrix, 0,
_tankTMatrix, 0);
// Model matrix for missiles: _missilesMMatrix
System.arraycopy(_tankMVPMatrix, 0, _missilesMMatrix,
0, 16);
Matrix.multiplyMM(_tankMVPMatrix, 0, _ViewMatrix, 0,
_tankMVPMatrix, 0);
Matrix.multiplyMM(_tankMVPMatrix, 0,
_ProjectionMatrix, 0, _tankMVPMatrix, 0);
float[] missileCenter = new float[4];
// Matrix.multiplyMM(_missilesMMatrix, 0,
_tankRMatrix, 0, _tankTMatrix, 0);
Matrix.multiplyMV(missileCenter, 0, _missilesMMatrix,
0, _tankCenter, 0);
if(GLES20Renderer._buttonMissilePressed) {
GLES20Renderer._buttonMissilePressed = false;
Missile missile = new Missile(missileCenter[0],
missileCenter[1], missileCenter[2], zAngle);
GLES20Renderer._missiles.add(missile);
}
ListIterator<Missile> missilesIterator =
GLES20Renderer._missiles.listIterator();
while(missilesIterator.hasNext()) {
Missile missile = missilesIterator.next();
if(missile.getDestinationPositionX() < -30 ||
 
Search WWH ::




Custom Search