/*********************************************************** * 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; }
/********************************************* * 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(); }
void Lander::draw(bool isLeft, bool isRight, bool isDown) { Point pt = velocity.getPoint(); drawLander( pt ); if (fuel) { drawLanderFlames( pt, isDown, isLeft, isRight ); } }
/********************************************* * 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); } }