#include SFML\Graphics.hpp //declaramos una funcion donde iniciaremos las figuras, su posicion y su color void iniciarFigura(sf::RectangleShape &figura, sf::Vector2f const &posicion, sf :: Color const &color); int main() { //########### MECANICAS DEL JUEGO ############## //Tendremos un jugador que sera el que controlemos, un obstaculo y un enemigo //moveremos el personaje solo de arriba y abajo, tendra un movimiento constante //si choca con el obstaculo se reiniciara //si choca con el enemigo ganamos y cerramos la aplicacion //############################################## //Creo mi ventana sf::RenderWindow window(sf::VideoMode(640 , 480), "Juego simple con figuras"); window.setFramerateLimit(60); //establecemos la posicion inicial que tomara el jugador sf::Vector2f posicionInicial = sf::Vector2f(50, 50); //Creamos la figura que sera nuestro jugador sf::RectangleShape jugador(sf::Vector2f(50, 50)); //mandamos a llamar a nuestra funcion para determinar la posicion y el color de nuestro jugador iniciarFigura(jugador, posicionInicial, sf::Color::Yellow); //Creamos la figura que sera nuestro enemigo sf::RectangleShape enemigo(sf::Vector2f(50, 50)); //mandamos a llamar a nuestra funcion para determinar la posicion y el color de nuestro enemigo iniciarFigura(enemigo, sf::Vector2f(400, 50), sf::Color::Red); //Creamos la figura que sera nuestro obstaculo sf::RectangleShape obstaculo(sf::Vector2f(50, 100)); //mandamos a llamar a nuestra funcion para determinar la posicion y el color de nuestro obstaculo iniciarFigura(obstaculo, sf::Vector2f(250, 50), sf::Color::Blue); //GameLoop while (window.isOpen()) { window.clear(); //Dibujamos en la escena nuestras figuras window.draw(jugador); window.draw(obstaculo); window.draw(enemigo); jugador.move(1, 0); //si mantienes presionada la tecla de direccion para abajo el personaje baja if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down)) { jugador.move(0, 1); } //si mantienes presionada la tecla de direccion para arriba el personaje sube if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up)) { jugador.move(0, -1); } //si chocamos o colisionamos con nuestro enemigo ganamos y salimos de la partida if (jugador.getGlobalBounds().intersects(enemigo.getGlobalBounds())) { window.close(); } //si chocamos o colisionamos con nuestro obstaculo, regresamos a la posicion original if (jugador.getGlobalBounds().intersects(obstaculo.getGlobalBounds())) { jugador.setPosition(posicionInicial); } //Eventos sf::Event event; //Se manejan los eventos while (window.pollEvent(event)) { //Creo una sentencia switch para controlar muchos eventos switch (event.type) { //Cierra la ventana case sf :: Event::EventType::Closed: window.close(); break; default: break; } } window.display(); } return 0; } //Realizamos nuestra funcion para inicializar nuestras figuras. void iniciarFigura(sf::RectangleShape &figura, sf::Vector2f const &posicion, sf::Color const &color) { figura.setFillColor(color); figura.setPosition(posicion); figura.setOrigin(figura.getSize() * 0.5f); //El centro del rectangulo }
Herramientas Para el Desarrollo de Videojuegos y Lenguajes de Programación en Español
sábado, 25 de abril de 2015
Juego simple con figuras en SFML
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario