Esempio n. 1
0
int main (int argc, const char *argv[])
{
    char maze[L][C]= {{'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'},
        {'0',' ',' ',' ',' ',' ','7',' ',' ',' ',' ',' ',' ',' ','0',' ',' ',' ',' ',' ',' ',' ','7',' ',' ',' ',' ',' ',' ','0'},
        {'0',' ','0','0','0','0',' ','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0','0',' ','0','0','0','0','0',' ','0'},
        {'0',' ','0','0','0','0',' ','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0','0',' ','0','0','0','0','0',' ','0'},
        {'0','7',' ',' ',' ',' ','7',' ',' ',' ',' ',' ',' ','7',' ','7',' ',' ',' ',' ',' ',' ','7',' ',' ',' ',' ',' ','7','0'},
        {'0',' ','0','0','0','0',' ','0',' ','0','0','0','0','0','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0',' ','0'},
        {'0',' ',' ',' ',' ',' ','7','0',' ',' ',' ',' ',' ',' ','0',' ',' ',' ',' ',' ',' ','0','7',' ',' ',' ',' ',' ',' ','0'},
        {'0',' ','0','0','0','0',' ','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0','0',' ','0','0','0','0','0',' ','0'},
        {'0',' ','0','0','0','0',' ','0',' ',' ',' ',' ',' ','6',' ','6',' ',' ',' ',' ',' ','0',' ','0','0','0','0','0',' ','0'},
        {'0',' ','0','0','0','0',' ','0',' ','0','0','0','0','0','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0',' ','0'},
        {'0',' ','0','0','0','0',' ',' ','7','0','0','0','0','0','0','0','0','0','0','0','7',' ',' ','0','0','0','0','0',' ','0'},
        {'0',' ','0','0','0','0',' ','0',' ','0','0','0','0','0','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0',' ','0'},
        {'0',' ','0','0','0','0',' ','0',' ','0','0','0','0','0','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0',' ','0'},
        {'0',' ','0','0','0','0',' ','0','7',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','7','0',' ','0','0','0','0','0',' ','0'},
        {'0',' ','0','0','0','0',' ','0',' ','0','0','0','0','0','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0',' ','0'},
        {'0',' ',' ',' ',' ',' ','7',' ','7',' ',' ',' ',' ',' ','0',' ',' ',' ',' ',' ','7',' ','7',' ',' ',' ',' ',' ',' ','0'},
        {'0',' ','0','0','0','0',' ','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0','0',' ','0','0','0','0','0',' ','0'},
        {'0','7',' ',' ',' ',' ','7',' ','7',' ',' ',' ',' ','6',' ','6',' ',' ',' ',' ','7',' ','7','0',' ',' ',' ',' ','7','0'},
        {'0',' ','0','0','0','0',' ','0',' ','0','0','0','0','0','0','0','0','0','0','0',' ','0',' ','0',' ','0','0','0',' ','0'},
        {'0','7',' ',' ',' ',' ',' ','0',' ',' ',' ',' ',' ',' ','0',' ',' ',' ',' ',' ',' ','0',' ',' ','7',' ',' ',' ','7','0'},
        {'0',' ','0','0','0','0','0','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0','0','0','0','0','0','0','0',' ','0'},
        {'0',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','7',' ','7',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','0'},
        {'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'}
    };
    int red[3], pacman[3], ghost[3];
    //dis=malloc(sizeof(int) * 2);
    red[0]=2;
    red[1]=6;
    red[2]=RIGHT;
    pacman[0]=4;
    pacman[1]=7;
    pacman[2]=RIGHT;
    ghost[0]=1;
    ghost[1]=1;
    ghost[2]=RIGHT;
    marca_pacman(maze, pacman);
    dist(pacman);
    inky(pacman, red, maze, ghost);
    //clean_matrix(maze, 23);
    return 0;
}
Esempio n. 2
0
File: Inky.c Progetto: jucimarjr/pca
int main (int argc, const char *argv[])
{
        char maze[L][C]={{'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'},
                    {'0',' ',' ',' ',' ',' ','7',' ',' ',' ',' ',' ',' ',' ','0',' ',' ',' ',' ',' ',' ',' ','7',' ',' ',' ',' ',' ',' ','0'},
                    {'0',' ','0','0','0','0',' ','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0','0',' ','0','0','0','0','0',' ','0'},
                    {'0',' ','0','0','0','0',' ','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0','0',' ','0','0','0','0','0',' ','0'},
                    {'0','7',' ',' ',' ',' ','7',' ',' ',' ',' ',' ',' ','7',' ','7',' ',' ',' ',' ',' ',' ','7',' ',' ',' ',' ',' ','7','0'},
                    {'0',' ','0','0','0','0',' ','0',' ','0','0','0','0','0','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0',' ','0'},
                    {'0',' ',' ',' ',' ',' ','7','0',' ',' ',' ',' ',' ',' ','0',' ',' ',' ',' ',' ',' ','0','7',' ',' ',' ',' ',' ',' ','0'},
                    {'0',' ','0','0','0','0',' ','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0','0',' ','0','0','0','0','0',' ','0'},
                    {'0',' ','0','0','0','0',' ','0',' ',' ',' ',' ',' ','6',' ','6',' ',' ',' ',' ',' ','0',' ','0','0','0','0','0',' ','0'},
                    {'0',' ','0','0','0','0',' ','0',' ','0','0','0','0','0','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0',' ','0'},
                    {'0',' ','0','0','0','0',' ',' ','7','0','0','0','0','0','0','0','0','0','0','0','7',' ',' ','0','0','0','0','0',' ','0'},
                    {'0',' ','0','0','0','0',' ','0',' ','0','0','0','0','0','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0',' ','0'},
                    {'0',' ','0','0','0','0',' ','0',' ','0','0','0','0','0','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0',' ','0'},
                    {'0',' ','0','0','0','0',' ','0','7',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','7','0',' ','0','0','0','0','0',' ','0'},
                    {'0',' ','0','0','0','0',' ','0',' ','0','0','0','0','0','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0',' ','0'},
                    {'0',' ',' ',' ',' ',' ','7',' ','7',' ',' ',' ',' ',' ','0',' ',' ',' ',' ',' ','7',' ','7',' ',' ',' ',' ',' ',' ','0'},
                    {'0',' ','0','0','0','0',' ','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0','0',' ','0','0','0','0','0',' ','0'},
                    {'0','7',' ',' ',' ',' ','7',' ','7',' ',' ',' ',' ','6',' ','6',' ',' ',' ',' ','7',' ','7','0',' ',' ',' ',' ','7','0'},
                    {'0',' ','0','0','0','0',' ','0',' ','0','0','0','0','0','0','0','0','0','0','0',' ','0',' ','0',' ','0','0','0',' ','0'},
                    {'0','7',' ',' ',' ',' ',' ','0',' ',' ',' ',' ',' ',' ','0',' ',' ',' ',' ',' ',' ','0',' ',' ','7',' ',' ',' ','7','0'},
                    {'0',' ','0','0','0','0','0','0','0','0','0','0','0',' ','0',' ','0','0','0','0','0','0','0','0','0','0','0','0',' ','0'},
                    {'0',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','7',' ','7',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','0'},
                    {'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'}};
        int red[3], pacman[3], *dis, ghost[3];
        dis=malloc(sizeof(int) * 2);
        red[0]=4;
        red[1]=2;
        red[2]=RIGHT;
        pacman[0]=4;  
        pacman[1]=7;
        pacman[2]=RIGHT;
        ghost[0]=1;
        ghost[1]=1;
        ghost[2]=RIGHT;
        dis=dist(pacman);
        inky(dis, red, maze, ghost);
        return 0;
}
Esempio n. 3
0
int main(){
	//game map is 224 x 288
	//28 x 36 tiles, 8 pixels square
	int gameWidth = 224;
	int gameHeight = 288;
	sf::RenderWindow window(sf::VideoMode(gameWidth, gameHeight), "SFML Application");
	int rows = 36;
	int cols = 28;
	Tile tileArray[36][28];

	//background stuff
	//main sprite sheet, textures from this
	sf::Texture spriteSheet;
	spriteSheet.loadFromFile("ARC_Pacman_everything.png");

	//dot sprite
	sf::Sprite dot;
	dot.setTexture(spriteSheet);
	dot.setTextureRect(sf::IntRect(8, 8, 8, 8));
	dot.setOrigin(4, 4);

	//powerup sprite
	sf::Sprite powerup;
	powerup.setTexture(spriteSheet);
	powerup.setTextureRect(sf::IntRect(8, 8 * 3, 8, 8));
	powerup.setOrigin(4, 4);

	//wall sprite for testing
	sf::Sprite wall;
	wall.setTexture(spriteSheet);
	wall.setTextureRect(sf::IntRect(8, 8, 8, 8));
	wall.setColor(sf::Color(0, 255, 0)); // green
	wall.setOrigin(4, 4);

	//set up the map, tiles wall by default
	for (int i = 0; i < rows; i++){
		for (int j = 0; j < cols; j++){
			tileArray[i][j].resetMap(i, j);
			if (tileArray[i][j].getType() == 'd'){
				tileArray[i][j].setSprite(dot);
			}
			if (tileArray[i][j].getType() == 'u'){
				tileArray[i][j].setSprite(powerup);
			}
			if (tileArray[i][j].getType() == 'e'){
				tileArray[i][j].setSprite(wall);
			}

		}
	}


	//cosmetic background
	sf::Sprite background;
	sf::Texture mazeBackground;
	if (!mazeBackground.loadFromFile("Pac Man Map.png", sf::IntRect(0, 0, 224, 288))) //map section of spritesheet
	{
		printf("unable to load background texture");
	}
	background.setTexture(mazeBackground);
	//background.setPosition(0, (8 * 3)); //leave space for score and lives	
	background.setPosition(-4, 8 * 2.5);

	//player
	sf::Sprite playerSprite;
	playerSprite.setTexture(spriteSheet);
	playerSprite.setTextureRect(sf::IntRect(470, 0, 16, 16));
	playerSprite.setOrigin(sf::Vector2f(8, 8));
	playerSprite.setPosition(14 * 8, 20 * 8); //(gameWidth/2,gameHeight/2+20); //just under ghost house
	Player player(20, 14, playerSprite);


//score display and other text
	//score display 
	sf::Font font;
	if (!font.loadFromFile("arial.ttf")) printf("unable to load font");

	sf::Text scoreDisplay;
	scoreDisplay.setFont(font);
	scoreDisplay.setCharacterSize(11);
	scoreDisplay.setPosition(8, gameHeight - 16);
	scoreDisplay.setColor(sf::Color::White);
	int score = 0;
	scoreDisplay.setString("Score: "+ (std::to_string(score)) );

//ghosts	
	//ghost sprites
	sf::Texture ghostTex;
	ghostTex.loadFromFile("Pac Man Map.png");

	//blinky
	sf::Sprite blinkySpr;
	blinkySpr.setTexture(ghostTex);
	sf::IntRect blink (228, 64, 16, 16);
	blinkySpr.setTextureRect(blink);
	blinkySpr.setOrigin(8, 8);
	
	Ghosts blinky('c', 'b', blinkySpr, 14, 14);
	blinkySpr.setPosition(14 * 8, 14 * 8); 

	//inky
	sf::Sprite inkySpr;
	inkySpr.setTexture(ghostTex);
	inkySpr.setTextureRect(sf::IntRect(228, 96, 16, 16));
	inkySpr.setOrigin(8, 8);

	Ghosts inky('h', 'i', inkySpr, 14, 14); //movement will start outside house
	inkySpr.setPosition(11.5 * 8, 16.5* 8);

	//pinky
	sf::Sprite pinkySpr;
	pinkySpr.setTexture(ghostTex);
	pinkySpr.setTextureRect(sf::IntRect(228, 80, 16, 16));
	pinkySpr.setOrigin(8, 8);

	Ghosts pinky('h', 'p', pinkySpr, 14, 14);
	pinkySpr.setPosition(13.5 * 8, 17 * 8);

	//clyde
	sf::Sprite clydeSpr;
	clydeSpr.setTexture(ghostTex);
	clydeSpr.setTextureRect(sf::IntRect(228, 112, 16, 16));
	clydeSpr.setOrigin(8, 8);

	Ghosts clyde('h', 'c', clydeSpr, 14, 14);
	clydeSpr.setPosition(15.5 * 8, 16.5 * 8);

	//fright sprite
	//sf::Sprite frightSpr;
	//frightSpr.setTexture(ghostTex);
	sf::IntRect fright (356, 64, 16, 16);
	//frightSpr.setTextureRect(fright);
	//frightSpr.setOrigin(8, 8);

	//timer
	sf::Clock clock;
	sf::Time elapsed1;
	int waveCount = 1;
	int dotCounter = 0;
	
	////////--------window loop--------------/////////////
	while (window.isOpen()){

		
		elapsed1 = clock.getElapsedTime();
		if (clock.getElapsedTime() >= sf::seconds(4)){
			/*
			blinky.frightenGhost(fright);
			blinkySpr.setTextureRect(fright); //fright blinky
			inky.frightenGhost(fright);
			inkySpr.setTextureRect(fright); //fright inky
			pinky.frightenGhost(fright);
			pinkySpr.setTextureRect(fright); //fright pinky
			clyde.frightenGhost(fright);
			clydeSpr.setTextureRect(fright); //fright clyde
			*/
		}
		
			
		int pRow = player.xpos;
		int pCol = player.ypos;
		char toTileType;

		sf::Event event;
		while (window.pollEvent(event)){

			if (event.type == sf::Event::Closed){
				window.close();
			}

// can't get continuous movement to work to save my life

			//move player up
			if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up)){
				toTileType = tileArray[pRow - 1][pCol].getType();
				if (toTileType != 'w'){
					player.setDirection('u');
					player.move();
					//playerSprite = player.getSprite();
				}
				//adjust score & tile if applicable
				if (toTileType == 'd'){
					tileArray[pRow - 1][pCol].setType('e');
					score += 1;
					scoreDisplay.setString("Score: " + (std::to_string(score)));
				}
				else if (toTileType == 'u'){
					tileArray[pRow - 1][pCol].setType('e');
					score += 2;
					scoreDisplay.setString("Score: " + (std::to_string(score)));
					blinky.frightenGhost(fright);
					blinkySpr.setTextureRect(fright); //fright blinky
					inky.frightenGhost(fright);
					inkySpr.setTextureRect(fright); //fright inky
					pinky.frightenGhost(fright);
					pinkySpr.setTextureRect(fright); //fright pinky
					clyde.frightenGhost(fright);
					clydeSpr.setTextureRect(fright); //fright clyde
				}
			}
			//move player down
			if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down)){
				toTileType = tileArray[pRow + 1][pCol].getType();
				if (toTileType != 'w'){
					player.setDirection('d');
					player.move();
					//playerSprite = player.getSprite();
				}
				//adjust score & tile if applicable
				if (toTileType == 'd'){
					tileArray[pRow + 1][pCol].setType('e');
					score += 1;
					scoreDisplay.setString("Score: " + (std::to_string(score)));
				}
				else if (toTileType == 'u'){
					tileArray[pRow + 1][pCol].setType('e');
					score += 2;
					scoreDisplay.setString("Score: " + (std::to_string(score)));
					blinky.frightenGhost(fright);
					blinkySpr.setTextureRect(fright); //fright blinky
					inky.frightenGhost(fright);
					inkySpr.setTextureRect(fright); //fright inky
					pinky.frightenGhost(fright);
					pinkySpr.setTextureRect(fright); //fright pinky
					clyde.frightenGhost(fright);
					clydeSpr.setTextureRect(fright); //fright clyde
				}
			}
			//move player left
			if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)){
				toTileType = tileArray[pRow][pCol - 1].getType();
				if (toTileType != 'w'){
					player.setDirection('l');
					if (pRow == 17 && pCol == 1) player.wrapHorizontal();
					else {
						player.move();
					}
					//playerSprite = player.getSprite();
				}
				//adjust score & tile if applicable
				if (toTileType == 'd'){
					tileArray[pRow][pCol - 1].setType('e');
					score += 1;
					scoreDisplay.setString("Score: " + (std::to_string(score)));
				}
				else if (toTileType == 'u'){
					tileArray[pRow][pCol-1].setType('e');
					score += 2;
					scoreDisplay.setString("Score: " + (std::to_string(score)));
					blinky.frightenGhost(fright);
					blinkySpr.setTextureRect(fright); //fright blinky
					inky.frightenGhost(fright);
					inkySpr.setTextureRect(fright); //fright inky
					pinky.frightenGhost(fright);
					pinkySpr.setTextureRect(fright); //fright pinky
					clyde.frightenGhost(fright);
					clydeSpr.setTextureRect(fright); //fright clyde
				}
			}
			//move player right
			if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)){
				toTileType = tileArray[pRow][pCol + 1].getType();
				if (pRow == 17 && pCol == 27) {
					player.setDirection('r');
					player.wrapHorizontal();
					//playerSprite = player.getSprite();
				}
				else{
					if (toTileType != 'w'){
						player.setDirection('r');
						player.move();
					}
				}
				//playerSprite = player.getSprite();
				//adjust score & tile if applicable
				if (toTileType == 'd'){
					tileArray[pRow][pCol + 1].setType('e');
					score += 1;
					scoreDisplay.setString("Score: " + (std::to_string(score)));
				}
				else if (toTileType == 'u'){
					tileArray[pRow][pCol+1].setType('e');
					score += 2;
					scoreDisplay.setString("Score: " + (std::to_string(score)));
					blinky.frightenGhost(fright);
					blinkySpr.setTextureRect(fright); //fright blinky
					inky.frightenGhost(fright);
					inkySpr.setTextureRect(fright); //fright inky
					pinky.frightenGhost(fright);
					pinkySpr.setTextureRect(fright); //fright pinky
					clyde.frightenGhost(fright);
					clydeSpr.setTextureRect(fright); //fright clyde
				}
			}

			//reset dots
			if ((event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::R)){
				for (int i = 0; i < rows; i++){
					for (int j = 0; j < cols; j++){
						tileArray[i][j].resetMap(i, j);
						if (tileArray[i][j].getType() == 'd'){
							tileArray[i][j].setSprite(dot);
						}
						if (tileArray[i][j].getType() == 'u'){
							tileArray[i][j].setSprite(powerup);
						}
						if (tileArray[i][j].getType() == 'e'){
							tileArray[i][j].setSprite(wall);
						}

					}
				}
			}


			playerSprite = player.getSprite();

			window.clear();
			window.draw(background);

			//draw dots and powerups
			for (int j = 0; j < rows; j++){
				for (int i = 0; i < cols; i++){
					int xpos = i * 8;
					int ypos = j * 8;
					Tile t = tileArray[j][i]; //j row, i col

					/*
					if (i == 25 && j == 26) {
						//playerSprite.setPosition(i * 8, j * 8);
						//window.draw(playerSprite);
						}
						//*/

					if (t.getType() == 'd' || t.getType() == 'u'){
						sf::Sprite drawTi = t.getSprite();
						drawTi.setPosition(xpos, ypos);
						window.draw(drawTi);

					} 
					/*
					else if (t.getType() == 'e'){
						sf::Sprite drawTi = wall; //t.getSprite();
						drawTi.setPosition(xpos, ypos);
						window.draw(drawTi);
					}
					*/
				}
			}


			window.draw(playerSprite);
			window.draw(blinkySpr);
			window.draw(inkySpr);
			window.draw(pinkySpr);
			window.draw(clydeSpr);
			window.draw(scoreDisplay);

			window.display();
		}

	}
}
Esempio n. 4
0
int main(int, char const**)
{
  // Create the main window
  sf::RenderWindow window(sf::VideoMode(TILE_WIDTH*28, TILE_WIDTH*31), "PAC MAN");
  window.setFramerateLimit(FRAME_RATE);
  
  // Set the Icon
  sf::Image icon;
  if (!icon.loadFromFile(resourcePath() + "icon.png")) {
    return EXIT_FAILURE;
  }
  window.setIcon(icon.getSize().x, icon.getSize().y, icon.getPixelsPtr());
  
  // Try to open the given texture
  sf::Texture tileset_texture;
  if (!tileset_texture.loadFromFile(resourcePath() + "data/full_texture_x3.png")) {
    return EXIT_FAILURE;
  }
  
  // More importantly, let's generate our tileset from that texture.
  AssetManager assetManager(TILE_WIDTH);
  std::map<sf::String, sf::Sprite> spriteSet = assetManager.generateSpriteSet(&tileset_texture);
  std::map<sf::String, PacTile*> tileSet;

  PacTile outer_top_left_corner(spriteSet["outer_top_left_corner"], "WALL");
  tileSet["outer_top_left_corner"] = &outer_top_left_corner;
  
  PacTile weird_north_left_corner(spriteSet["weird_north_left_corner"], "WALL");
  tileSet["weird_north_left_corner"] = &weird_north_left_corner;
  
  PacTile weird_west_upper_corner(spriteSet["weird_west_upper_corner"], "WALL");
  tileSet["weird_west_upper_corner"] = &weird_west_upper_corner;
  
  PacTile weird_east_upper_corner(spriteSet["weird_east_upper_corner"], "WALL");
  tileSet["weird_east_upper_corner"] = &weird_east_upper_corner;
  
  PacTile weird_west_lower_corner(spriteSet["weird_west_lower_corner"], "WALL");
  tileSet["weird_west_lower_corner"] = &weird_west_lower_corner;
  
  PacTile weird_east_lower_corner(spriteSet["weird_east_lower_corner"], "WALL");
  tileSet["weird_east_lower_corner"] = &weird_east_lower_corner;
  
  PacTile box_top_left_corner(spriteSet["box_top_left_corner"], "WALL");
  tileSet["box_top_left_corner"] = &box_top_left_corner;
  
  PacTile top_right_corner(spriteSet["top_right_corner"], "WALL");
  tileSet["top_right_corner"] = &top_right_corner;
  
  PacTile weird_north_right_corner(spriteSet["weird_north_right_corner"], "WALL");
  tileSet["weird_north_right_corner"] = &weird_north_right_corner;
  
  PacTile box_top_right_corner(spriteSet["box_top_right_corner"], "WALL");
  tileSet["box_top_right_corner"] = &box_top_right_corner;
  
  PacTile bottom_right_corner(spriteSet["bottom_right_corner"], "WALL");
  tileSet["bottom_right_corner"] = &bottom_right_corner;
  
  PacTile box_bottom_right_corner(spriteSet["box_bottom_right_corner"], "WALL");
  tileSet["box_bottom_right_corner"] = &box_bottom_right_corner;
  
  PacTile bottom_left_corner(spriteSet["bottom_left_corner"], "WALL");
  tileSet["bottom_left_corner"] = &bottom_left_corner;
  
  PacTile box_bottom_left_corner(spriteSet["box_bottom_left_corner"], "WALL");
  tileSet["box_bottom_left_corner"] = &box_bottom_left_corner;
  
  PacTile top_edge(spriteSet["top_edge"], "WALL");
  tileSet["top_edge"] = &top_edge;
  
  PacTile box_top_edge(spriteSet["box_top_edge"], "WALL");
  tileSet["box_top_edge"] = &box_top_edge;
  
  PacTile left_edge(spriteSet["left_edge"], "WALL");
  tileSet["left_edge"] = &left_edge;
  
  PacTile inner_left_edge(spriteSet["inner_left_edge"], "WALL");
  tileSet["inner_left_edge"] = &inner_left_edge;
  
  PacTile right_edge(spriteSet["right_edge"], "WALL");
  tileSet["right_edge"] = &right_edge;
  
  PacTile inner_right_edge(spriteSet["inner_right_edge"], "WALL");
  tileSet["inner_right_edge"] = &inner_right_edge;
  
  PacTile bottom_edge(spriteSet["bottom_edge"], "WALL");
  tileSet["bottom_edge"] = &bottom_edge;
  
  PacTile box_bottom_edge(spriteSet["box_bottom_edge"], "WALL");
  tileSet["box_bottom_edge"] = &box_bottom_edge;
  
  // House tiles!
  PacTile house_top_right_corner(spriteSet["house_top_right_corner"], "WALL");
  tileSet["house_top_right_corner"] = &house_top_right_corner;
  
  PacTile house_bottom_right_corner(spriteSet["house_bottom_right_corner"], "WALL");
  tileSet["house_bottom_right_corner"] = &house_bottom_right_corner;
  
  PacTile house_top_left_corner(spriteSet["house_top_left_corner"], "WALL");
  tileSet["house_top_left_corner"] = &house_top_left_corner;
  
  PacTile house_bottom_left_corner(spriteSet["house_bottom_left_corner"], "WALL");
  tileSet["house_bottom_left_corner"] = &house_bottom_left_corner;
  
  PacTile door(spriteSet["door"], "WALL");
  tileSet["door"] = &door;
  
  PacTile floor(spriteSet["floor"], "FLOOR");
  tileSet["floor"] = &floor;
  
  // Load up the map!
  Map map(sf::Vector2<double>(0, 0), sf::Vector2<int>(28, 31), TILE_WIDTH);
  map.configureMap(tileSet);
  
  // Create a graphical text to display
  /*sf::Font font;
  if (!font.loadFromFile(resourcePath() + "sansation.ttf")) {
    return EXIT_FAILURE;
  }

  // Load a music to play
  sf::Music music;
  if (!music.openFromFile(resourcePath() + "nice_music.ogg")) {
    return EXIT_FAILURE;
  }*/
  
  // Declare the ghosts!
  Pinky pinky(sf::Vector2<double>(0, 0), "HOME");
  Blinky blinky(sf::Vector2<double>(0, 0), "HOME");
  Inky inky(sf::Vector2<double>(0, 0), "HOME");
  Sue sue(sf::Vector2<double>(0, 0), "HOME");
  
  // Game variables
  // Assemble the PacMan!
  PacMan pacman(1, 1, 1, 60, map);
  std::vector<sf::Sprite> pacUpSprites;
  std::vector<sf::Sprite> pacDownSprites;
  std::vector<sf::Sprite> pacLeftSprites;
  std::vector<sf::Sprite> pacRightSprites;
  
  pacUpSprites.push_back(spriteSet["pacUp0"]);
  pacUpSprites.push_back(spriteSet["pacUp1"]);
  pacUpSprites.push_back(spriteSet["pacUp2"]);
  pacUpSprites.push_back(spriteSet["pacUp1"]);
  
  pacDownSprites.push_back(spriteSet["pacDown0"]);
  pacDownSprites.push_back(spriteSet["pacDown1"]);
  pacDownSprites.push_back(spriteSet["pacDown2"]);
  pacDownSprites.push_back(spriteSet["pacDown1"]);
  
  pacLeftSprites.push_back(spriteSet["pacLeft0"]);
  pacLeftSprites.push_back(spriteSet["pacLeft1"]);
  pacLeftSprites.push_back(spriteSet["pacLeft2"]);
  pacLeftSprites.push_back(spriteSet["pacLeft1"]);
  
  pacRightSprites.push_back(spriteSet["pacRight0"]);
  pacRightSprites.push_back(spriteSet["pacRight1"]);
  pacRightSprites.push_back(spriteSet["pacRight2"]);
  pacRightSprites.push_back(spriteSet["pacRight1"]);
  
  pacman.setUpSprites(pacUpSprites, 4);
  pacman.setDownSprites(pacDownSprites, 4);
  pacman.setLeftSprites(pacLeftSprites, 4);
  pacman.setRightSprites(pacRightSprites, 4);
  pacman.setVelocity(sf::Vector2<double>(0.0, 1.0));
  pacman.initialize("RIGHT");
  
  
  // Play the music
  // music.play();
  
  // Start the game loop
  while (window.isOpen()) {
    // Process events
    sf::Event event;
    while (window.pollEvent(event)) {
      // Close window: exit
      if (event.type == sf::Event::Closed) {
        window.close();
      }

      // Escape pressed: exit
      if (event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Escape) {
        window.close();
      }
    }
    
    pacman.update(map);

    // DRAWING THE SCREEN
    window.clear();
    
    // Draw the map
    drawMap(&window, map);
    
    // Then, draw any pellets / fruits, those type things
    
    // Then, draw the ghosts
    
    // Then, draw pacman
    window.draw(pacman.getSprite());
    
    // Update the window
    window.display();
  }

  return EXIT_SUCCESS;
}
Esempio n. 5
0
int main(){

	//The game map is 224 x 288
	//28 x 36 tiles of 8 pixels square
	
	//spritesheet is 452 x 248

	sf::SoundBuffer introb;

	introb.loadFromFile("pacman_beginning.wav");
	sf::Sound intro;
	intro.setBuffer(introb);

	sf::SoundBuffer nomgb;
	nomgb.loadFromFile("pacman_eatghost.wav");
	sf::Sound nomGhost;
	nomGhost.setBuffer(nomgb);

	sf::SoundBuffer wakab;
	wakab.loadFromFile("pacman_chomp.wav");
	sf::Sound waka;
	waka.setBuffer(wakab);

	sf::SoundBuffer dieb;
	dieb.loadFromFile("pacman_death.wav");
	sf::Sound deathNoise;
	deathNoise.setBuffer(dieb);

	bool started = false;
	bool godMode = true;
	int addScore = 0;
	int score = 0;
	int dots = 0;
	int lives = 2;
	int locationID;
	double targetX;
	double targetY;
	double distance;
	double lastDistance;
	char nextDirection;

	int random;
	srand(100);

	sf::RenderWindow window(sf::VideoMode(224, 288), "SFML Application");

	sf::Texture spriteSheet;
	spriteSheet.loadFromFile("Pac Man Map.png");

	sf::Sprite mazeSprite;
	mazeSprite.setTexture(spriteSheet);
	mazeSprite.setPosition(0, 24);

	//create pacman
	sf::Sprite player;
	player.setTexture(spriteSheet);
	Player pacMan(player);

	sf::Sprite life1;
	sf::Sprite life2;
	life1.setTexture(spriteSheet);
	life2.setTexture(spriteSheet);
	life1.setTextureRect(sf::IntRect(225, 0, 16, 16));
	life2.setTextureRect(sf::IntRect(225, 0, 16, 16));
	life1.setPosition(2 * 8, 34 * 8);
	life2.setPosition(4 * 8, 34 * 8);

	Tile tileSet[28][36];
	//give each tile a location and unique ID
	int ID = 0;
	for (int i = 0; i < 28; i++){
		for (int j = 0; j < 36; j++){
			tileSet[i][j].setTile('d', mazeSprite);
			tileSet[i][j].setLocationID(i * 8, j * 8, ID);
			ID++;
		}
	}

	tileSet[1][6].setTile('e', mazeSprite);
	tileSet[26][6].setTile('e', mazeSprite);
	tileSet[1][26].setTile('e', mazeSprite);
	tileSet[26][26].setTile('e', mazeSprite);

	//create ghosts
	//(i)nky, (b)linky, (c)lyde, (p)inky
	Ghost blinky('b', 110, (14 * 8) + 4, mazeSprite);
	Ghost pinky('p', 100, 100, mazeSprite);
	Ghost inky('i', 100, 100, mazeSprite);
	Ghost clyde('c', 120, 100, mazeSprite);

	Ghost enemies[4] = {blinky, pinky, inky, clyde};

	double inkyX;
	double inkyY;

	while (window.isOpen()){

		sf::Event event;
		while (window.pollEvent(event)){

			if (event.type == sf::Event::Closed)
				window.close();
		}

		//change PacMan's facing to direction pressed if direction valid
		if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)){
			if (tileSet[pacMan.getTileX() - 1][pacMan.getTileY()].isLegal() == true){
				pacMan.move('l');
			}
		}
		else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)){
			if (tileSet[pacMan.getTileX() + 1][pacMan.getTileY()].isLegal() == true){
				pacMan.move('r');
			}
		}
		else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up)){
			if (tileSet[pacMan.getTileX()][pacMan.getTileY() - 1].isLegal() == true){
				pacMan.move('u');
			}
		}
		else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down)){
			if (tileSet[pacMan.getTileX()][pacMan.getTileY() + 1].isLegal() == true){
				pacMan.move('d');
			}
		}

		//move PacMan forward if there is no wall in front of him
		if (pacMan.getFacing() == 'u' && tileSet[pacMan.getTileX()][pacMan.getTileY() - 1].isLegal() == true ||
			pacMan.getFacing() == 'd' && tileSet[pacMan.getTileX()][pacMan.getTileY() + 1].isLegal() == true ||
			pacMan.getFacing() == 'l' && tileSet[pacMan.getTileX() - 1][pacMan.getTileY()].isLegal() == true ||
			pacMan.getFacing() == 'r' && tileSet[pacMan.getTileX() + 1][pacMan.getTileY()].isLegal() == true){
			pacMan.update();
		}
		
		//eat whatever is in current tile, add to score, and apply effects
		addScore = tileSet[pacMan.getTileX()][pacMan.getTileY()].eatTile();
		score = score + addScore;
		if (addScore == 10){
			waka.play();
			dots++;
			for (int i = 0; i < 4; i++){
				enemies[i].add();
			}
			if (dots == 254){
				printf("all dots eaten");
				for (int j = 0; j < 4; j++){
					enemies[j].setMode('h');
				}
				pacMan.die();
				for (int k = 0; k < 28; k++){
					for (int l = 0; l < 36; l++){
						tileSet[k][l].resetTile();
					}
				}
				tileSet[1][6].setTile('e', mazeSprite);
				tileSet[26][6].setTile('e', mazeSprite);
				tileSet[1][26].setTile('e', mazeSprite);
				tileSet[26][26].setTile('e', mazeSprite);
				started = false;
			}
		}
		else if (addScore == 50){
			for (int i = 0; i < 4; i++){
				enemies[i].setMode('f');
				dots++;
				for (int i = 0; i < 4; i++){
					enemies[i].add();
				}
				if (dots == 254){
					printf("all dots eaten");
					for (int j = 0; j < 4; j++){
						enemies[j].setMode('h');
					}
					pacMan.die();
					for (int k = 0; k < 28; k++){
						for (int l = 0; l < 36; l++){
							tileSet[k][l].resetTile();
						}
					}
					tileSet[1][6].setTile('e', mazeSprite);
					tileSet[26][6].setTile('e', mazeSprite);
					tileSet[1][26].setTile('e', mazeSprite);
					tileSet[26][26].setTile('e', mazeSprite);
					started = false;
				}
			}
		}

		for (int i = 0; i < 4; i++){
			//find pacmans's tile and compare to ghost's tile, if same eat or die
			locationID = tileSet[pacMan.getTileX()][pacMan.getTileY()].getID();
			if (tileSet[enemies[i].getTileX()][enemies[i].getTileY()].getID() == locationID){
				if (enemies[i].getMode() == 'f'){
					enemies[i].setMode('h');
					nomGhost.play();
				}
				else if (godMode == false){
					deathNoise.play();
					Sleep(2000);
					for (int j = 0; j < 4; j++){
						enemies[j].setMode('h');
					}
					pacMan.die();
					lives--;
					if (lives < 0){
						score = 0;
						for (int k = 0; k < 28; k++){
							for (int l = 0; l < 36; l++){
								tileSet[k][l].resetTile();
							}
						}
						tileSet[1][6].setTile('e', mazeSprite);
						tileSet[26][6].setTile('e', mazeSprite);
						tileSet[1][26].setTile('e', mazeSprite);
						tileSet[26][26].setTile('e', mazeSprite);
						started = false;
					}
					break;
				}

			}

			//check if each ghost is in a new tile, break if false
			if (tileSet[enemies[i].getTileX()][enemies[i].getTileY()].getID() != enemies[i].getCurrentTile()){
				//set up target tile

				//chase mode different for each ghost
				if (enemies[i].getName() == 'b' && enemies[i].getMode() == 'c'){
					targetX = pacMan.getTileX();
					targetY = pacMan.getTileY();
				}

				if (enemies[i].getName() == 'p' && enemies[i].getMode() == 'c'){
					if (pacMan.getFacing() == 'l'){
						targetX = pacMan.getTileX() - 3;
						targetY = pacMan.getTileY();
					}
					if (pacMan.getFacing() == 'r'){
						targetX = pacMan.getTileX() + 3;
						targetY = pacMan.getTileY();
					}
					if (pacMan.getFacing() == 'u'){
						//this is wrong intentionally, it is a bug in the original version of PacMan
						targetX = pacMan.getTileX() - 3;
						targetY = pacMan.getTileY() - 3;
					}
					if (pacMan.getFacing() == 'd'){
						targetX = pacMan.getTileX();
						targetY = pacMan.getTileY() + 3;
					}
				}

				if (enemies[i].getName() == 'i' && enemies[i].getMode() == 'c'){
					if (pacMan.getFacing() == 'l'){
						inkyX = pacMan.getTileX() - 3;
						inkyY = pacMan.getTileY();
					}
					if (pacMan.getFacing() == 'r'){
						inkyX = pacMan.getTileX() + 3;
						inkyY = pacMan.getTileY();
					}
					if (pacMan.getFacing() == 'u'){
						//this is wrong intentionally, it is a bug in the original version of PacMan
						inkyX = pacMan.getTileX() - 3;
						inkyY = pacMan.getTileY() - 3;
					}
					if (pacMan.getFacing() == 'd'){
						inkyX = pacMan.getTileX();
						inkyY = pacMan.getTileY() + 3;
					}

					targetX = inkyX + (inkyX - enemies[0].getTileX());
					targetY = inkyY + (inkyY - enemies[0].getTileY());
				}

				if (enemies[i].getName() == 'c' && enemies[i].getMode() == 'c'){
					targetX = pacMan.getTileX();
					targetY = pacMan.getTileY();

					if (sqrt((enemies[i].getTileX() - targetX) * (enemies[i].getTileX() - targetX)
						+ (pacMan.getTileY() - enemies[i].getTileY()) * (pacMan.getTileY() - enemies[i].getTileY())) < 8){
						targetX = 0;
						targetY = 34;
					}
				}

				//set target to home corner in scatter mode
				if (enemies[i].getMode() == 's'){
					if (enemies[i].getName() == 'b'){
						targetX = 26;
						targetY = 0;
					}
					if (enemies[i].getName() == 'p'){
						targetX = 2;
						targetY = 0;
					}
					if (enemies[i].getName() == 'i'){
						targetX = 27;
						targetY = 34;
					}
					if (enemies[i].getName() == 'c'){
						targetX = 0;
						targetY = 33;
					}
				}

				//check each tile in order around ghost, except for behind, for closest tile to target
				//right down left up order

				if (enemies[i].getMode() == 'c' || enemies[i].getMode() == 's'){
					lastDistance = -1;
					if (tileSet[enemies[i].getTileX() + 1][enemies[i].getTileY()].isLegal() == true && enemies[i].getFacing() != 'l'){
						nextDirection = 'r';
						lastDistance = (sqrt((enemies[i].getTileX() + 1 - targetX) * (enemies[i].getTileX() + 1 - targetX)
							+ (pacMan.getTileY() - enemies[i].getTileY()) * (pacMan.getTileY() - enemies[i].getTileY())));
						//printf("R");
					}
					if (tileSet[enemies[i].getTileX()][enemies[i].getTileY() + 1].isLegal() == true && enemies[i].getFacing() != 'u'){
						distance = (sqrt((enemies[i].getTileX() - targetX) * (enemies[i].getTileX() - targetX)
							+ (enemies[i].getTileY() + 1 - targetY) * (enemies[i].getTileY() + 1 - targetY)));
						if (distance <= lastDistance || lastDistance == -1){
							nextDirection = 'd';
							lastDistance = distance;
						}
						//printf("D");
					}
					if (tileSet[enemies[i].getTileX() - 1][enemies[i].getTileY()].isLegal() == true && enemies[i].getFacing() != 'r'){
						distance = (sqrt((enemies[i].getTileX() - 1 - targetX) * (enemies[i].getTileX() - 1 - targetX)
							+ (enemies[i].getTileY() - targetY) * (enemies[i].getTileY() - targetY)));
						if (distance <= lastDistance || lastDistance == -1){
							nextDirection = 'l';
							lastDistance = distance;
						}
						//printf("L");
					}
					if (tileSet[enemies[i].getTileX()][enemies[i].getTileY() - 1].isLegal() == true && enemies[i].getFacing() != 'd'){
						distance = (sqrt((enemies[i].getTileX() - targetX) * (enemies[i].getTileX() - targetX)
							+ (enemies[i].getTileY() - 1 - targetY) * (enemies[i].getTileY() - 1 - targetY)));
						if (distance <= lastDistance || lastDistance == -1){
							nextDirection = 'u';
						}
						//printf("U");
					}
				}
				else if (enemies[i].getMode() == 'f'){
					random = rand() % 4;
					for (int j = 0; j < 4; j++){
						if (tileSet[enemies[i].getTileX()][enemies[i].getTileY() - 1].isLegal() == true && enemies[i].getFacing() != 'd'){
							if (random == 0){
								nextDirection = 'u';
								random--;
							}
							else{ random--; }
						}
						if (tileSet[enemies[i].getTileX() - 1][enemies[i].getTileY()].isLegal() == true && enemies[i].getFacing() != 'r'){
							if (random == 0){
								nextDirection = 'l';
								random--;
							}
							else{ random--; }
						}
						if (tileSet[enemies[i].getTileX()][enemies[i].getTileY() + 1].isLegal() == true && enemies[i].getFacing() != 'u'){
							if (random == 0){
								nextDirection = 'd';
								random--;
							}
							else{ random--; }
						}
						if (tileSet[enemies[i].getTileX() + 1][enemies[i].getTileY()].isLegal() == true && enemies[i].getFacing() != 'l'){
							if (random == 0){
								nextDirection = 'r';
								random--;
							}
							else{ random--; }
						}
					}
				}

				//if that tile is closer to target than last, face towards that one
				enemies[i].move(nextDirection);

				//set new currentTile
				enemies[i].setCurrentTile(tileSet[enemies[i].getTileX()][enemies[i].getTileY()].getID());
			}

			enemies[i].update();
		}

		window.clear();
		window.draw(mazeSprite);

		for (int i = 0; i < 28; i++){
			for (int j = 0; j < 36; j++){
				if (tileSet[i][j].isVisible() == true){
					window.draw(tileSet[i][j].getSprite());
				}
			}
		}
		window.draw(pacMan.getSprite());
		window.draw(enemies[0].getSprite());
		window.draw(enemies[1].getSprite());
		window.draw(enemies[2].getSprite());
		window.draw(enemies[3].getSprite());
		if (lives > 0){
			window.draw(life1);
		}
		if (lives > 1){
			window.draw(life2);
		}
		window.display();

		if (started == false){
			started = true;
			intro.play();
			Sleep(4000);
		}
		
	}

}
Esempio n. 6
0
        main_game::main_game()
        {
            Level levelMap[36][28];

            sf::RenderWindow window(sf::VideoMode(screenW, screenH), "Pacman Game");
            sf::Texture spriteSheet;
            spriteSheet.loadFromFile("SpriteSheet.png");

            int screenW = 488;
            int screenH = 512;

            int map_rows = 36;
            int map_cols = 28;

            sf::Sprite playerSprite;
            playerSprite.setTexture(spriteSheet);
            playerSprite.setTextureRect(sf::IntRect(470, 0, 16, 16));
            playerSprite.setOrigin(sf::Vector2f(8, 8));
            playerSprite.setPosition(14 * 8, 20 * 8); 
            Player player(20, 14, playerSprite);
            sf::Sprite background;
            sf::Texture mazeBackground;
            background.setPosition(10, 12);

    
    

            for (int a = 0; a < map_rows; a++)
            {
                for (int b = 0; b < map_cols; b++)
                {
                    levelMap[a][b].resetMap(a, b);
                    if (levelMap[a][b].getType() == 'ball')
                    {
                        levelMap[a][b].setSprite(ball);
                    }
                    if (levelMap[a][b].getType() == 'power')
                    {
                        levelMap[a][b].setSprite(wall);
                    }

                }
            }

        sf::Font font;

        sf::Clock clock;
        sf::Time elapsed1;
        int waveCount = 1;
        int dotCounter = 0;


        sf::Texture ghostTex;
        ghostTex.loadFromFile("Level1 (blue).png");

        sf::Sprite blinkySpr;
       
        blinkySpr.setOrigin(8, 8);

        blinkySpr.setTexture(ghostTex);
        sf::IntRect blink (228, 64, 16, 16);
        blinkySpr.setTextureRect(blink);
        Ghosts blinky('follow', 'blinky', blinkySpr, 14, 14);
        blinkySpr.setPosition(14 * 8, 14 * 8); 

        sf::Sprite inkySpr;

       
        inkySpr.setOrigin(8, 8);

        inkySpr.setTexture(ghostTex);
        inkySpr.setTextureRect(sf::IntRect(228, 96, 16, 16));
        Ghosts inky('origin', 'inky', inkySpr, 14, 14); 
        inkySpr.setPosition(11.5 * 8, 16.5* 8);

        sf::Sprite pinkySpr;

        pinkySpr.setOrigin(8, 8);

        pinkySpr.setTexture(ghostTex);
        pinkySpr.setTextureRect(sf::IntRect(228, 80, 16, 16));
        Ghosts pinky('origin', 'pinky', pinkySpr, 14, 14);
        pinkySpr.setPosition(13.5 * 8, 17 * 8);

        sf::Sprite clydeSpr;
        
        clydeSpr.setOrigin(8, 8);

        clydeSpr.setTexture(ghostTex);
        clydeSpr.setTextureRect(sf::IntRect(228, 112, 16, 16));
        Ghosts clyde('origin', 'clyde', clydeSpr, 14, 14);
        clydeSpr.setPosition(15.5 * 8, 16.5 * 8);

        sf::IntRect fright (356, 64, 16, 16);

        sf::Text scoreDisplay;
        scoreDisplay.setFont(font);
        scoreDisplay.setCharacterSize(11);
        scoreDisplay.setPosition(8, screenH - 16);
        scoreDisplay.setColor(sf::Color::White);
        int score = 0;
        scoreDisplay.setString("Score: "+ (std::to_string(score)) );

            if (event.type == sf::Event::Closed)
            {
                window.close();
            }
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
            {
                levelEntity = levelMap[pRow - 1][pCol].getType();
                player.setDirection('up');
                player.move();
                }
                if (levelEntity == 'u')
                {
                    levelMap[pRow - 1][pCol].setType('power');
                    score += 2;
                    scoreDisplay.setString("Score: " + (std::to_string(score)));
                    blinky.frightenGhost(fright);
                    blinkySpr.setTextureRect(fright); 
                    inky.frightenGhost(fright);
                    inkySpr.setTextureRect(fright);
                    pinky.frightenGhost(fright);
                    pinkySpr.setTextureRect(fright); 
                    clyde.frightenGhost(fright);
                    clydeSpr.setTextureRect(fright); 
                }
                else if (levelEntity == 'ball')
                {
                    levelMap[pRow - 1][pCol].setType('power');
                    score += 1;
                    scoreDisplay.setString("Score: " + (std::to_string(score)));
                }
            }