2014-11-18 5 views
1

У меня возникли проблемы с созданием прокручиваемого фона. Я буквально пытаюсь перевести C#, который я сделал два года назад, на C++ и как «newb» (как бы), у меня проблемы.Создание прокручиваемого фона (прокрутка сверху вниз)

Ниже приведены переменные и объекты, которые я использую.

//ScrollingBackground Inits from the Contructor/Main Method 
_screenHeight = Graphics::GetViewportHeight(); 
_screenWidth = Graphics::GetViewportWidth(); 

//ScrollingBackground Content from the Load Content Method 
_backgroundPosition = new Vector2(_screenWidth/2, _screenHeight/2); 
_origin = new Vector2(_backgroundTexture->GetHeight()/2, 0); 
_textureSize = new Vector2(0, _backgroundTexture->GetHeight()); 
_backgroundTexture->Load("background.dds", false); 

Это метод, который я пытаюсь сделать там, где происходит прокрутка.

void Player::Scrolling(float deltaX) 
{ 
    //This is where the scrolling happens 
    _backgroundPosition->X += deltaX; 
    _backgroundPosition->X = _backgroundPosition->X % _textureSize->Y; 
} 

Тем не менее относительно новой для этого поэтому, пожалуйста, простите меня, если я расплывчатым или звук, как я понятия не имею, о чем я говорю.

Большое спасибо,

Ryan.

+0

Я продолжаю делать привычку не объяснить, что происходит не так LOL, мои извинения ... _backgroundPosition-> X = _backgroundPosition-> X% _textureSize-> Y; Я продолжаю получать «%: незаконный, левый операнд имеет тип« float »и тот же с правильным операндом –

ответ

0

Вы не можете использовать% оператора при поплавках. Следующие проблемы устраняют вашу проблему, но не дают истинного остатка. Если точность не является проблемой, вы можете использовать следующий код и не видеть огромную проблему с прокруткой фона.

void Player::Scrolling(float deltaX) 
{ 
    //This is where the scrolling happens 
    _backgroundPosition->X += deltaX; 
    _backgroundPosition->X = static_cast<int>(_backgroundPosition->X) % static_cast<int>(_textureSize->Y); 
} 
+0

Фактически ... Просто протестировал его. % не работает для типов float. – user2970916

+0

Благодарим вас за ввод. Это возвратило 4 ошибки, «синтаксическая ошибка: идентификатор _backgroundPosition», «Синтаксическая ошибка:;», intellisense, ожидаемая а) и «>» в ​​столбцах 1, 1, 45 и 86 соответственно. –

+0

Обновлен код после тестирования – user2970916

Смежные вопросы