Niedziałająca funkcja

0

Dobry wieczór,
byłym bardzo wdzięczny, gdyby ktoś mógł rzucić okiem na ten kod. Nie działą mi poniższa funkcja ( nie wypluwa errorów, ale nie przesuwa samochodzika).


void CRed::move_left(float velocity, float acceleration, CRed red1, CBlue blue1, sf::Sprite map1)    //CRed dziedziczy po sf::Sprite
{
	if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) 
		if (!red1.getGlobalBounds().intersects(blue1.getGlobalBounds()) && !red1.getGlobalBounds().intersects(map1.getGlobalBounds()))
		{
			red1.move(0.0, -1 * velocity);
			if (velocity<max_speed) velocity += acceleration;
			red1.setRotation(0);
		}
		else
			contact = true;
}

Poniżej wklejam też kod do maina w którym próbuje użyj tej funkcji ( podonbie z pozostałymi kierunkami )
https://pastebin.com/jkPqVj8q

Bardzo bym prosił o pomoc bo mam 3 h do deadline a nie działa mi główna część programu :XX

0

Ktoś jest w stanie coś z tym pomóc, bo nie widzę dalej błędu :/

0

Kopię masz w argumencie funkcji:

sf::Sprite map1
0

DLa sprawdzenia co jest nie tak uprościłem funckje do

void move_right(CRed red1);                     - w pliku CRed.h

void CRed::move_right(CRed red1)                      - w pliku CRed.cpp
{
	if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
			red1.move(sf::Vector2f(50, 40));

}

red1.move_right(red1);             - wywołamie w main.cpp 

Ale dalej nie działa. Nie musze tu jakoś inaczej wysyłać tych zmiennych czy coś ?

1
void CRed::move_left(float velocity, float acceleration, CRed& red1, CBlue& blue1, sf::Sprite& map1)

Ampersand widzisz?
Tyle z tego kodu można wywnioskować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1