Pdf page 11/Book page 25: Lower-mid page, first Tip:
initializedGL() should be
initialzeGL() (without the "d").
Chapter 3:
Pdf page 20/Book page 66: item-3, source code for SimpleShader activateShader():
function(vpMatrix) should be
function(pixelColor,
vpMatrix) (parameter pixelColor is missing)
Pdf page 20/Book page 66: middle of page heading:
Modifying RenderObject to ... should be
Modifying RenderableObject to ..
(Render should be Renderable)
Pdf page 20/Book page 66: bottom of page, source code for Renderable draw() function:
function(pixelColor, vpMatrix) should be
function(vpMatrix) (parameter pixelColor
should not be there)
Pdf Page 21/Book page 67: under "Designing the Scene"
blue square should be
white square
("blue" should be "white").
Pdf page 26/Book page 72: item-2a (after the source code):
The mWCPosition is ...
should be
The mWCCenter is ...
(replace "Position" with "Center")
Pdf page 27/Book page 73: paragraph follow item-3:
desire should be
desired
(missed a "d")
Typo in code/comments:
Pdf page 11/Book page 57: item-1, code comment
// create ... identify transform ... should be
// create ... identity ... (replace "f" with "t").
Pdf page 17/Book page 63: mat4.ortho() code comments:
distant from should be
distance from ... (replace "t" with "ce").
All 4 occurrences
Pdf page 27/Book page 73 : item-5 code comment:
// Step A3: ... to be clear to black
should be
// Step A3: ... to be clear
(remove "to black" ).
Pdf page 28/Book page 74: item-6, source code comments
comments for parameters of mat4.ortho()
// distant to ...
should be
// distance to ...
(replace "t" with "ce)
All 4 occurences
at the end:
// Step B3: concatnate should be
// Step B3: concatenate (missing an "e" in concatenate)
very last line:
this.mFarPlane
should be
this.mFarPlane);
(missing close ");" at the end)
Chapter 4:
Pdf page 13/Book page 89: the paragraph under list item-3, the last two sentence, "The mIsKeyClicked object captures key click events. The key code entries of this object are true only when the corresponding keyboard key goes from being pressed to be being released."
The words: pressed and released should
be flipped.
The last sentence should read: "The
key code entries of this object are true only when the corresponding keyboard key
goes from being released to be being pressed."
Pdf page 14/Book page 90: kLastKeyCode should be replaced with
kKeys.LastKeyCode
item-5 and item-6, source code for the initialize() and update() functions:
second line:
var I;
should be
var i;
(replace cap-"I" with small case "i")
third line, the condition of the for loop:
i<kLastKeyCode
should be
i<kKeys.LastKeyCode
(insert kKeys before LastKeyCode)
item-8, end of page
keys: kKeys;
should be
keys: kKeys
(remove the ";")
Pdf page 16/Book page 92: third line source code from top of page
// call Scene.update()
should be
// call MyGame.update()
(replace
"Scene" with "MyGame")
At this point, the Scene object has not been introduced yet, the comment may cause confusion.
Pdf page 24/Book page 100: item-3, last word:
variable and assessor should be
variable and accessor (replace
"assessor" with "accessor")
Pdf page 25/Book page 101: bottom of page, beginning of last paragraph:
instance of SimpleObject
should be
instance of SimpleShader
(replace "SimpleObject" with "SimpleShader")
Pdf page 27/Book page 103: item-2: should include:
Modify the initialize() function of MyGame class.
Pdf page 33/Book page 109: item-1, under "Integration with the Game Engine, last line
of source code of var startScene function:
"loading is done" should be
comments from previous line (source code comment from previous line wrapped around)
Pdf page 36/Book page 112: inheritPrototype()
This funciton should be exported via mPublic.
Pdf page 38/Book page 114: item-4a, second line:
the game engine wait
should be
the game engine waits
(add "s" to the end of "wait")
Pdf page 42/Book page 118: Define AudioClips Component: should include description of initialization of the audio
component by the Engine Core. Should include descriptions of:
gEngine.AudioClips.initAudioContext(); being called from
gEngine.Core.initializeEngineCore()
Bug: Project 4.4 SceneFile
src/MyGameg/Util/SceneFileParser.js line 57
for (j=0; j<4;j++)
// instead of "3" this should be 4!
Page 33: item-5
Typo in code/comments:
Pdf page 2/Book page 78: Third line from bottom of page
to emphasis and ...
should be
to emphasize and ...
(replace "s" with "ze")
Pdf page 14/Book page 90: item-7, source code
the last ending "};"
should be
attached to the previous line
Pdf page 8/Book page 84: source code comment (Step D:)
// ... centred, ...
should be
// ... centered ...
Pdf page 22/Book page 98: item-4, source code comment:
// Asyncrounsly
should be
// Asynchronously
(insert an "h")
Pdf page 24/Book page 100: item-3, source code last comment:
// assessor
should be
// accessor
(replace "assessor" with "accessor")
Pdf page 26/Book page 102: item-1, source code comment:
// Inits DefaultResoruces
should be
// Inits DefaultResources ...
(replace "ru" with "ur")
Pdf page 31/Book page 107: item-5, source code
third line of parseSquares() function:
var I, j
should be
var i, j
(replace cap-"I" with small case "i")
comment:
// In Radian
should be
// In Degree
(replace "Radian" with "Degree")
Pdf page 32/Book page 108: item-1, third line of MyGame constructor:
this.kSceneFile = " ..."
Missing a ";" at the end
Pdf page 35/Book page 111: item-2, Scene object constructor:
Scene() { // constructor }
should be
Scene() { } // constructor
(comment outside of the
{})
Pdf page 38/Book page 114: source code,
BlueLevel.prototype.update() function:
xform.IncXPosBy(...)
should be
xform.incXPosBy(...)
(replace the cap-"I" with small case "i")
BlueLevel.prototype.unloadScene() function, first line
// ... the scene flie
should be
// .... the scene file
(replace "lie" with "ile")
Pdf page 39/Book page 115: item-1, source code comment for the constructor:
Smilar:
should be
Similar
(missed
an "i")
Pdf page 42/Book page 118: Item-3, source code and
Pdf page 45/Book page 121: item-8, top of page source code:
InitAudioContext:
should be
initAudioContext
(replace cap-"I" with "i")
Chapter 5:
Pdf page 5/Book page 131:
Bullet point for Engine_DefaultResources.js:
This is a new file ...
should be
This is the file
(this file is not new)
Bottom of page, last line:
Engine.DefaultResoruces
should be
Engine.DefaultResources
(replace "ru" with "ur)
Pdf page 7/Book page 133: Figure 5-5
graphics hardware intepolation
should be
graphics hardware interpolation
(replace "intepolation" with "interpolation")
Pdf page 8/Book page 134: item-2a, top of the game, end of paragraph
(aTextureCooridnate, the uv ...)
should be
(aTextureCoordinate, the uv ...)
(replace "id" with "di")
Pdf page 11/Book page 137: bottom of page
Set up Up ...
should be
set up
(replace "Set Up" with "set")
Typo in code/comments:
Pdf page 8/Book page 134: item-2, code comment (third line from the bottom of the
source code):
// ... for signifing that the ...
should be
// ... for signifying that the...
(add the "y" for signifying)
Pdf page 9/Book page 135: item-1, code comment (towards the end of the segment):
// ... cooridnate ...
should be
// ... coordinate
(replace "id" with "di")
Pdf page 17/Book page 143: item-6, last line of _processLoadedImage() function:
ayncLoadCompleted(...)
should be
asyncLoadCompleted(...)
(missing an "s")
Pdf page 19/Book page 145: item-9, code very last line:
}
should be
};
(missing the ";")
Pdf page 29/Book page 155: comment about the very last line of code:
// ... from SimpleShader
should be
// ... from TextureShader
(replace SimpleShader with "TextureShader")
Pdf page 30/Book page 156: item-3, code comment first and second lines:
// ... cooridnate ...
should be
// ... coordinate
(replace "id" with "di")
Pdf page 31/Book page 157: item-6
The SpriteRenderable.draw() function, should not have pixelColor as its paramter:
SpriteRenderable.prototype.draw = function(pixelColor, vpMatrix)
The function should be:
SpriteRenderable.prototype.draw = function(vpMatrix)
Similarly. the call to TextureRenderable.draw() should be (without pixelColor):
TextureRenderable.prototype.draw.call(this, vpMatrix);
Pdf page 42/Book page 168: item-2 (middle of page)
512, 0, // first element position: top-right, 512 is top, 0 is right
should be
512, 0, // first element position: top-left, 512 is top, 0 is left
(replace "right" with "left", two occurrences)
Pdf page 43/Book page 169: item-2 continue (top of page)
348, 0, // first element: top-right, 164 from 512 is top, 0 is right
should be
348, 0, // first element: top-left, 164 from 512 is top, 0 is left
(replace "right" with "left", two occurrences)
Pdf page 46/Book page 172: item-2, code comment:
// ... the entier image...
should be
// ... the entire image
(replace "ier" with "ire")
Pdf page 47/Book page 173: top of page, code comment towards the end:
// ... width/height ration
should be
// ... width/height ratio
(remove the "n" in ration)
Pdf page 49/Book page 175: bottom of page, code wrap:
Pdf page 5/Book page 191: paragraph above last section, first sentence:
With theassessors to the ...
should be
With theaccessors to the ...
(replace "assessors" with "accessors")
Pdf page 6/Book page 192: the paragraph below the last section, second sentence:
... objects, following good source ...
should be
... objects, follow good source ...
(replace "following" with "follow")
Pdf page 6/Book page 192: the last paragraph above the code:
... can be drawn only without ...
should be
... can be drawn without ...
(remove "only")
Pdf page 11/Book page 197: Figure 6-4:
Vector (5, 0)
should be
Vector (0, 5)
(flip the x/y coordinate values)
Pdf page 16/Book page 202: bottom of page, item 2 above code:
Add assessor and setter
should be
Add accessor and setter
(replace "assessor" with "accessor")
Pdf page 21/Book page 207: paragraph under Collisions Between GameObjects, third sentence:
thus it can stop moving.
should be
thus it cannot stop moving.
(replace "can" with "cannot")
Bug: Project 6.4: Pdf page 33/Book page 219: item 3:
when computing x, and y values:
var x = i * this.mXform.getWidth() / (this.mTexWidth – 1);
var y = j * this.mXform.getHeight() / (this.mTexHeight – 1);
the denominator should not subtract texture dimension by 1, and should instead be:
var x = i * this.mXform.getWidth() / this.mTexWidth;
var y = j * this.mXform.getHeight() / this.mTexHeight;
Bug: Project 6.4: Pdf page 33/Book page 219: item 5:
when checking for lower bound of valid texel index i, and j values:
if ((otherIndex[0] > 0) && (otherIndex[0] < other.mTexWidth) && (otherIndex[1] > 0) && (otherIndex[1] < other.mTexHeight)) {
it is important to include index position [0, 0]:
if ((otherIndex[0] >= 0) && (otherIndex[0] < other.mTexWidth) && (otherIndex[1] >= 0) && (otherIndex[1] < other.mTexHeight)) {
Pdf page 34/Book page 220: bottom of page, should explain TextureObject
is defined to support user interaction with the mCollector and mPortal
objects.
Pdf page 39/Book page 225: comments to the function _wcPositionToIndex() showed under item-2
When referring to the position returned from xForm: the lower-left corner
// recall that xForm.getPosition() returns lower-left corner, yet
// Texture origin is at lower-left corner!
returnIndex[0] += this.mTexWidth / 2;
returnIndex[1] += this.mTexHeight / 2;
Should be replaced with center
// recall that xForm.getPosition() returns center, yet
// Texture origin is at lower-left corner!
returnIndex[0] += this.mTexWidth / 2;
returnIndex[1] += this.mTexHeight / 2;
Typo in code/comments:
Pdf page 20/Book page 206: bottom of page
this.mMode = 'J';=
should be
this.mMode = 'J';
(remove the "=" at the end)
Pdf page 26/Book page 212: code should include the defintion of hBbox and
bBbox before the switch statement:
var hBbox = this.mHero.getBBox();
var bBbox = this.mBrain.getBBox();
Pdf page 40/Book page 226: middle of page (bold fonts):
otherXDir, therYDir);
should be
otherXDir, otherYDir);
(add an "o" to "therYDir")
Pdf page 41/Book page 227: top of page, in the else case:
hypertenus as radius
should be
hypotenuse as radius
(replace "hypertenus" with "hypotenuse ")
In addition, this is a comment wrap around
Chapter 7:
Pdf page 5/Book page 237: last paragraph:
The panWidth() function ...
should be
The panWith() function ...
(replace "Width" with "with")
Pdf page 10/Book page 242: paragraph after the section, second sentence:
To maintained ...
should be
To maintain...
(remove the "ed")
Pdf page 31/Book page 263: item 5:
Define t.e button ...
should be
Define the button ...
(replace "t.e" with "the")
Pdf page 32/Book page 264: to disable the right-mouse-button context menu, in code section, before item-7:
After
mCanvas = document.getElementById(canvasID);
add the following line
mCanvas.oncontextmenu = function() { return false; };
Typo in code/comments:
Pdf page 30/Book page 262: middle of page, code comment
// Inits DefaultResoruces
should be
// Inits DefaultResources
(replace "ru" with "ur")
Chapter 8:
Pdf page 5/Book page 277: In SimpleShader activateShader(), you bind
the GLVertexRef into the buffer. Previously, this functionality occured in the
constructor and has been moved. I assume this was to accommodate a second vertex
buffer for drawing lines. While this makes sense, there is no mention of doing
this in chapter 7 or 8. The introduction of the line vertex buffer only occurs
in the source code download.
Pdf page 7/Book page 279: When calling loadTexture and
unloadTexture in the middle of the page.
the "L" and the "U"
should be
lower case
"l" and "u"
Pdf page 7/Book page 279: after creating the background as a new SpriteRenderable
2 lines from the bottom of the page.
setTexPixelPositions
should be
bgR.setElementPixelPositions()
Pdf page 9/Book page 281: missing closing parenthesis when checking if the
middle mouse button is pressed 6 lines down from the top of the page.
gEngine.Input.mouseButton.Middle)
should be
gEngine.Input.mouseButton.Middle))
(Missed the closing parenthesis)
Pdf page 9/Book page 281: when modifying the msg variable for the FontRenderable,
you attempt to get the global ambient light intensity value at the end of the update
function, but is being called against
Engine.DefaultResources
should be
gEngine.DefaultResources
(Missed the g)
Pdf page 14/Book page 286: We are asked to create a file in Item 2.
Lights.js
should be
Light.js
remove the s
Pdf page 19/Book page 291: At the end of the wcPosToPixel function
FakeZInPixelSpace
should be
fakeZInPixelSpace
(The f needs to be lowercase)
Pdf page 23/Book page 295: In the Light struct near the bottom of the page
vec4 Position
should be
vec3 Position
(vec4 should be declared as a vec3)
Pdf page 26/Book page 298: In the LightSet object on the top half of the page
NumLights() should be
numLights()
AddToSet() should be
addToSet()
Typo in code/comments:
Page xx, something to come
...
should be
...
(replace "..." with "...")
Chapter 9:
General: For project 9.2 to work, we need to define removeFromSet in GameObjectSet.
This is not mentioned in the text
Pdf page 19/Book page 383: We are asked to create a file called RigidShapeBehavior.js, but in
sample code the file name is RigidShape_Behavior(which is more in line with
the naming convention)
Pdf page 26/Book page 390: Fourth line down from the top of the page
mSystemtAcceleration...
should be
mSystemAcceleration
(delete the t at the end of mSystem)
Pdf page 31/Book page 395: Item 6: at the end of the mPublic function
processSetSet is not defined nor is there a public accessor.
Pdf page 32/Book page 396: In the Testing Impulse Resolution
section, second bullet point.
setMess()...
should be
setMass
(replace the e with an a)
Pdf page 35/Book page 399: Bottom of the page in the getParticleShader function
{ return mParticleShader };
should be
{return mParticleShader; };
(Missing a semi-colon at the end of mParticleShader)