Here is the loop:
for(int i = 0; i < enemyList.size(); i++)
{
//sf::Sprite tempSprite = enemyList[i];
window.draw(enemyList[i]);
}
The vector is intialised as:
std::vector<sf::Sprite> enemyList;
and added too with this function:
void Game::addEnemy(int x, int y)
{
sf::Texture enemyImageTemp;
sf::Sprite enemyTemp;
if(!enemyImageTemp.loadFromFile("images/tux.png"))
{
//Something went wrong
std::cout << "Couldnt Load image for enemy" << std::endl;
}
enemyTemp.setTexture(enemyImageTemp);
enemyTemp.setPosition(x,y);
enemyList.push_back(enemyTemp);
if(enemyList.size() < 1)
{
std::cout << "nothing added" << std::endl;
}
}
here is all my code:
main.h
#ifndef _main_H_
#define _main_H
#include <SFML/Graphics.hpp>
#include <iostream>
#include <Windows.h>
#include <vector>
class Game {
private:
public:
sf::RenderWindow window;
std::vector<sf::Sprite> enemyList;
sf::Sprite playerSprite;
sf::Texture playerTexture;
void addEnemy(int x, int y);
};
#endif
main.cpp
#include "main.h"
const int PLAYER_MOVE_SPEED = 3;
std::vector<sf::Sprite> enemyList;
void Game::addEnemy(int x, int y)
{
sf::Texture enemyImageTemp;
sf::Sprite enemyTemp;
if(!enemyImageTemp.loadFromFile("images/tux.png"))
{
//Something went wrong
std::cout << "Couldnt Load image for enemy" << std::endl;
}
enemyTemp.setTexture(enemyImageTemp);
enemyTemp.setPosition(x,y);
enemyList.push_back(enemyTemp);
if(enemyList.size() < 1)
{
std::cout << "nothing added" << std::endl;
}
}
int main()
{
Game game;
sf::RenderWindow window(sf::VideoMode(1024, 768), "SFML works!");
window.setFramerateLimit(60);
window.setVerticalSyncEnabled(true);
sf::Sprite playerSprite;
sf::Texture playerTexture;
if(!playerTexture.loadFromFile("images/tux.png"))
{
//Something went wrong
std::cout << "Couldnt Load image for player" << std::endl;
}
playerSprite.setTexture(playerTexture);
playerSprite.setScale(0.2,0.2);
playerSprite.setPosition(0, 768 - 100);
game.addEnemy(100,100);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
{
playerSprite.move(-PLAYER_MOVE_SPEED,0);
}
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
{
playerSprite.move(PLAYER_MOVE_SPEED,0);
}
window.clear();
window.draw(playerSprite);
window.draw(enemyList[0]);
for(int i = 0; i < enemyList.size(); i++)
{
//sf::Sprite tempSprite = enemyList[i];
window.draw(enemyList[i]);
}
window.display();
}
TerminateProcess(GetCurrentProcess(), EXIT_SUCCESS);
}

New Topic/Question
Reply




MultiQuote





|