/***********************************************************
 * LANDER :: THRUST
 * Determines the input of the user and then determines the
 * amount of fuel used and draws the flames on the screen.
 * It then returns the fuel. 
 ************************************************************/
int Lander :: thrust(int down, int left, int right)
{
   int fuel = 0;
   // if the user is pressing the down arrow
   if (down)
   {
      velocity.setDy(velocity.getDy() + .35);
      fuel += 3;
      drawLanderFlames(getPoint(), true, false, false);
   }

   // if the user is pressing the left arrow
   if (left)
   {
      velocity.setDx(velocity.getDx() + .4);
      fuel += 1;
      drawLanderFlames(getPoint(), false, true, false);
   }

   // if the user is pressing the right arrow
   if (right)
   {
      velocity.setDx(velocity.getDx() - .4);
      fuel += 1;
      drawLanderFlames(getPoint(), false, false, true);
   }
   
   return fuel;
}
Exemple #2
0
/*********************************************
 * GAME :: DRAW
 * Draw everything on the screen
 *********************************************/
void Game :: draw(const Interface & ui)
{
   lander.draw();

   if (lander.isLanded())
   {
      drawText(Point(), "You have successfully landed!");
   }

   if (!lander.isAlive())
   {
      drawText(Point(), "You have crashed!");
   }

   if (lander.canThrust())
   {
      drawLanderFlames(lander.getPoint(), ui.isDown(), ui.isLeft(), ui.isRight());
   }

   Point fuelLocation;
   fuelLocation.setX(topLeft.getX() + 5);
   fuelLocation.setY(topLeft.getY() - 5);

   drawNumber(fuelLocation, lander.getFuel());

   // draw ground
   ground.draw();
}
Exemple #3
0
void Lander::draw(bool isLeft, bool isRight, bool isDown)
{
    Point pt = velocity.getPoint();
    drawLander( pt );

    if (fuel)
    {
        drawLanderFlames( pt,
                          isDown,
                          isLeft,
                          isRight );
    }
}
Exemple #4
0
/*********************************************
 * GAME :: DRAW
 * Draw everything on the screen
 *********************************************/
void Game :: draw(const Interface & ui)
{
   lander.draw();

   Point text;
   text.setX(-60);
   text.setY(75);
   Point start(190, 190);
   Point zero(0, 0);
   Velocity vel;

   if (lander.isLanded())
   {
      drawText(text, "You have successfully landed! ( Space bar )");
   }
   
   if (!lander.isAlive())
   {
      drawText(text, "You have crashed! ( Space bar )");
      glColor3f(1.5, 0.0, 0.8);
      drawToughBird(lander.getPoint(), 30, 0);
      glColor3f(1.0, 1.0, 1.0);
      glEnd();
   }
   
   if (lander.canThrust())
   {
      drawLanderFlames(lander.getPoint(), ui.isDown(), ui.isLeft(), ui.isRight());
   }

   if (ui.isSpace() &&lander.isLanded())
   {
      lander.setAlive(true);
      lander.setLanded(false);
      lander.setFuel(500);
      lander.setPoint(start);
      lander.setVelocity(vel);
      level.addLevel();
      ground.generateGround();
   }

   if (ui.isSpace() && !lander.isAlive())
   {
      lander.setAlive(true);
      lander.setLanded(false);
      lander.setFuel(500);
      lander.setPoint(start);
      lander.setVelocity(vel);
      level.setLevel(1);
      ground.generateGround();
   }
   
   if (ui.isSpace() && level.getLevel() > 14)
   {
      lander.setAlive(true);
      lander.setLanded(false);
      lander.setFuel(500);
      lander.setPoint(start);
      lander.setVelocity(vel);
      level.setLevel(1);
      ground.generateGround();
   }

   Point end(-50, -100);
   Point fuelLocation;
   fuelLocation.setX(topLeft.getX() + 5);
   fuelLocation.setY(topLeft.getY() - 5);
   Point levelLocation;
   levelLocation.setX(-35);
   levelLocation.setY(150);
   
   if (lander.getFuel() > 0)
     drawNumber(fuelLocation, lander.getFuel());
   else
     drawNumber(fuelLocation, 0);
   // draw ground
   if (level.getLevel() == 1)
   {
      drawText(levelLocation, "Level 1: Moon");
      ground.drawMoon();
      lander.applyGravity(0.1);
   }
   else if (level.getLevel() == 2)
   {
      drawText(levelLocation, "Level 2: Pluto");
      ground.drawPluto();
      lander.applyGravity(0.12);
   }
   else if(level.getLevel() == 3)
   {
      drawText(levelLocation, "Level 3: Mercury");
      ground.drawMercury();
      lander.applyGravity(.14);
   }
   else if(level.getLevel() == 4)
   {
      drawText(levelLocation, "Level 4: Mars");
      ground.drawMars();
      lander.applyGravity(.16);
   }
   else if(level.getLevel() == 5)
   {
      drawText(levelLocation, "Level 5: Venus");
      ground.drawVenus();
      lander.applyGravity(.18);
   }
      else if(level.getLevel() == 6)
   {
      drawText(levelLocation, "Level 6: Uranus");
      ground.drawUranus();
      lander.applyGravity(.20);
   }
   else if(level.getLevel() == 7)
   {
      drawText(levelLocation, "Level 7: Earth (Everest)");
      ground.drawEverest();
      lander.applyGravity(.21);
   }
   else if(level.getLevel() == 8)
   {
      drawText(levelLocation, "Level 8: Neptune");
      ground.drawNeptune();
      lander.applyGravity(.22);
   }
   else if(level.getLevel() == 9)
   {
      drawText(levelLocation, "Level 9: Saturn");
      ground.drawSaturn();
      lander.applyGravity(.23);
   }
   else if(level.getLevel() == 10)
   {
      drawText(levelLocation, "Level 10: Jupter");
      ground.drawJupiter();
      lander.applyGravity(.24);
   }
   else if(level.getLevel() == 11)
   {
      drawText(levelLocation, "Level 11: Heleos");
      ground.drawSun();
      lander.applyGravity(.25);
   }
   else if(level.getLevel() == 12)
   {
      drawText(levelLocation, "Level 12: r136a1");
      ground.drawR136a1();
      lander.applyGravity(.26);
   }
   else if(level.getLevel() == 13)
   {
      drawText(levelLocation, "Level 13: Black Hole");
      ground.drawHole();
      lander.applyGravity(.27);
   }
   else
   {
      drawText(levelLocation, "Outer Darkness");
      drawText(end, "You win. Go tell someone");
      lander.applyGravity(0);
      lander.setPoint(zero);
   }
}