#include "Level.h" #include #include "Monster.h" #include "Pickup.h" #include "Hazard.h" #include "Platform.h" Level::Level() { std::cout << "Level::Level(): Level created.\n"; } void Level::changeLevel(int levelNo) { std::cout << "Level::changeLevel(): Loading level " << levelNo << ".\n"; // Creating some objects for fun/demonstration purposes Monster monster1; Pickup pickup1; Hazard hazard1; Platform platform1; // Placing the player for fun/demonstration purposes player.setX(0); player.setY(0); // Checking where the player is for fun/demonstration purposes std::cout << "Level::changeLevel(): player is at " << player.getX() << ", " << player.getY() << ".\n"; // Load background image if (!(background = loadImage("space.png"))) std::cout << "Level::changeLevel: Error loading background image.\n"; // Make player into a Marcus player.setImage("marcussheet.png"); player.setClip(ORIENT_FRONT, MARCUS_WIDTH * 0, 0, MARCUS_WIDTH, MARCUS_HEIGHT); player.setClip(ORIENT_BACK, MARCUS_WIDTH * 1, 0, MARCUS_WIDTH, MARCUS_HEIGHT); player.setClip(ORIENT_RIGHT, MARCUS_WIDTH * 2, 0, MARCUS_WIDTH, MARCUS_HEIGHT); player.setClip(ORIENT_LEFT, MARCUS_WIDTH * 3, 0, MARCUS_WIDTH, MARCUS_HEIGHT); } void Level::move() { int newX, newY; // Apply gravity player.incYVel(GRAVITY); // Player x-axis movement newX = player.getX() + player.getXVel(); // Don't let player go off either end of the screen if (newX >= 0 && newX <= SCREEN_WIDTH - MARCUS_WIDTH) { player.setX(newX); } // Player y-axis movement newY = player.getY() + player.getYVel(); // Don't let player fall below bottom of screen if (newY <= SCREEN_HEIGHT - MARCUS_HEIGHT) { player.setY(newY); } else { // If player was going to fall off, fit snugly to edge while (newY > SCREEN_HEIGHT - MARCUS_HEIGHT) { newY--; } player.setY(newY); // Reset velocity player.setYVel(0); } player.orient(); } void Level::draw(Screen *screen) { // Blit background screen->blit(0, 0, background); screen->blit(player.getX(), player.getY(), player.image, player.getClip()); }