----------------- Part 5 - Section 1 ----------------- Code Sample 5.1.1 " moveMap.bindCmd(keyboard, "space", "$pShip.createMissile();", ""); " Code Sample 5.1.2 " function playerShip::createMissile(%this) { %this.playerMissile = new t2dStaticSprite() { scenegraph = %this.scenegraph; class = playerMissile; missileSpeed=%this.missileSpeed; player = %this; }; %this.playerMissile.fire(); } " Code Sample 5.1.3 " function playerMissile::fire(%this) { %this.setWorldLimit( kill, "-55.000 -420.000 600.000 40" ); %this.setLinearVelocityX(%this.missileSpeed); %this.setPosition(%this.player.getPosition()); %this.setImageMap(playerMissileImageMap); %this.setSize(22, 10); %this.setCollisionActive( true, true ); %this.setCollisionPhysics(false, false); %this.setCollisionCallback(true); } " Code Sample 5.1.4 " function playerMissile::onCollision( %srcObj, %dstObj, %srcRef, %dstRef, %time, %normal, %contactCount, %contacts ) { if(%dstObj.class $= "enemyShip") { %srcObj.explode(); %dstObj.explode(); } } " Code Sample 5.1.5 " function playerMissile::explode(%this) { %this.safeDelete(); } " Code Sample 5.1.6 " function enemyShip::explode(%this) { %this.spawn(); } " Code Sample 5.1.7 " // Exec game scripts. exec("./game.cs"); exec("./player.cs"); exec("./enemy.cs"); exec("./playerMissile.cs"); // Add this line to the end of the exec statements. "