anchor.diff:          return true;
         case 90: //z
           // CCW
  -        if (_activeShip == TRIANGLE_SHIP)
  -          gm.triShip.rotateCCWOn();
  -        else if (_activeShip == DUALCELL_SHIP)
  -          _dualCellShip.rotateCCWOn();
  +        switch (_activeShip) {
  +          case TRIANGLE_SHIP:
  +            gm.triShip.rotateCCWOn();
  +            break;
  +          case DUALCELL_SHIP:
  +            _dualCellShip.rotateCCWOn();
  +            break;
  +          case SPIKE_SHIP:
  +            gm.spikeShip.rotateCCWOn();
  +            break;
  +        }
           return true;
         case 65: //a
           // CW
  -        if (_activeShip == TRIANGLE_SHIP)
  -          gm.triShip.rotateCWOn();
  -        else if (_activeShip == DUALCELL_SHIP)
  -          _dualCellShip.rotateCWOn();
  +        switch (_activeShip) {
  +          case TRIANGLE_SHIP:
  +            gm.triShip.rotateCWOn();
  +            break;
  +          case DUALCELL_SHIP:
  +            _dualCellShip.rotateCWOn();
  +            break;
  +          case SPIKE_SHIP:
  +            gm.spikeShip.rotateCWOn();
  +            break;
  +        }
           return true;
         case 191: // "/" thrust
  -        if (_activeShip == TRIANGLE_SHIP)
  -          gm.triShip.thrust(true);
  -        else if (_activeShip == DUALCELL_SHIP)
  -          _dualCellShip.thrust(true);
  +        switch (_activeShip) {
  +          case TRIANGLE_SHIP:
  +            gm.triShip.thrust(true);
  +            break;
  +          case DUALCELL_SHIP:
  +            _dualCellShip.thrust(true);
  +            break;
  +          case SPIKE_SHIP:
  +            gm.spikeShip.thrust(true);
  +            break;
  +        }
           return true;
         case 222: // "'" fire
  -        if (_activeShip == TRIANGLE_SHIP)
  -          gm.triShip.fire(true);
  -        else if (_activeShip == DUALCELL_SHIP)
  -          _dualCellShip.fire(true);
  +        switch (_activeShip) {
  +          case TRIANGLE_SHIP:
  +            gm.triShip.fire(true);
  +            break;
  +          case DUALCELL_SHIP:
  +            _dualCellShip.fire(true);
  +            break;
  +          case SPIKE_SHIP:
  +            gm.spikeShip.fire(true);
  +            break;
  +        }
           return true;
       }
       
  
positive.code:     _squarePolyNode.setPosition(-700.0, 0.0);
      _squarePolyNode.outlined = true;
      _squarePolyNode.enableAABoxVisual = false;
      _squarePolyNode.fillColor = Ranger.Color4ISkin.toString();
      _squarePolyNode.drawColor = Ranger.Color4IBlack.toString();
      _squarePolyNode.uniformScale = 30.0;
  
      _pointColorNode = new PointColor.initWith(Ranger.Color4ILightBlue, Ranger.Color4IWhite);
  
negative.code:     // Create nodes.
      //---------------------------------------------------------------
      _zoomControl.addChild(gm.triShip, 10);
      gm.triShip.setPosition(-100.0, 0.0);
      gm.triShip.configure(_zoomControl);
      gm.triShip.directionByDegrees = 270.0;
      gm.triShip.uniformScale = 15.0;
  
      _dualCellShip = new DualCellShip.basic();
      _zoomControl.addChild(_dualCellShip, 10);
      _dualCellShip.configure(_zoomControl);
  