Buenas,
Tengo un problema con las colisiones en sfml, tengo un cuadrado que manejo con keyboard y quiero que no sobre pase la ventana creada, pero no me deja sigue transpasando los bordes.
Aquí el código:
Sobre pasa el borde de la ventana:
Cuándo no debería pasar el borde de la ventana.
Si alguien tiene alguna de idea de por que puede ser agradecería su respuesta.
Gracias.
Saludos.
Tengo un problema con las colisiones en sfml, tengo un cuadrado que manejo con keyboard y quiero que no sobre pase la ventana creada, pero no me deja sigue transpasando los bordes.
Aquí el código:
Código (cpp) [Seleccionar]
#include <SFML/Graphics.hpp>
int main(){
//Creamos la ventana
sf::RenderWindow window(sf::VideoMode(800, 600), "Colision");
//Rectangualo
sf::RectangleShape rec(sf::Vector2f(50, 50));
rec.setFillColor(sf::Color::Cyan);
//Variables colisiones
int pared_x = 1, pared_y = 1;
int x_incremento = 2, y_incremento = 2;
int pared_izq = 0, pared_der = 750;
int pared_arriba = 0, pared_abajo = 550;
window.setFramerateLimit(200);
//Si la ventana está abierta
while(window.isOpen()){
//Creamos un evento
sf::Event ventana;
//Llamamos a los eventos
while(window.pollEvent(ventana)){
//Cerramos la ventana cuando se solicite
if(ventana.type == sf::Event::Closed){
window.close();
}
}
//Movimiento rectangulo
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Up)){
rec.move(0, -1);
}
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Down)){
rec.move(0, 1);
}
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Left)){
rec.move(-1, 0);
}
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Right)){
rec.move(1, 0);
}
//Colisiones
if(pared_x <= pared_izq){
x_incremento =- x_incremento;
}
if(pared_x >= pared_der){
x_incremento =- x_incremento;
}
if(pared_y <= pared_arriba){
y_incremento =- y_incremento;
}
if(pared_y >= pared_abajo){
y_incremento =- y_incremento;
}
pared_x = pared_x + x_incremento;
pared_y = pared_y + y_incremento;
//Limpiamos ventana
window.clear();
//Dibujamos el rectangulo
window.draw(rec);
//Actualizamos ventana
window.display();
}
}
Sobre pasa el borde de la ventana:
Cuándo no debería pasar el borde de la ventana.
Si alguien tiene alguna de idea de por que puede ser agradecería su respuesta.
Gracias.
Saludos.