I am working through a DirectX game tutorial on YouTube. I was doing the homework for Tutorial 10, and I declared a member variable in the Game class called yPos, but Visual Studio insists that it doesn't exist. The other three variables I declare (in the class file) and use (in the member function) exist, but Visual Studio has a problem with this one variable. Why?
/******************************************************************************************
* Chili DirectX Framework Version 16.07.20 *
* Game.h *
* Copyright 2016 PlanetChili.net <http://www.planetchili.net> *
* *
* This file is part of The Chili DirectX Framework. *
* *
* The Chili DirectX Framework is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
* *
* The Chili DirectX Framework is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with The Chili DirectX Framework. If not, see <http://www.gnu.org/licenses/>. *
******************************************************************************************/
#pragma once
#include "Keyboard.h"
#include "Mouse.h"
#include "Graphics.h"
class Game
{
public:
Game( class MainWindow& wnd );
Game( const Game& ) = delete;
Game& operator=( const Game& ) = delete;
void Go();
private:
void ComposeFrame();
void UpdateModel();
/********************************/
/* User Functions */
/********************************/
private:
MainWindow& wnd;
Graphics gfx;
/********************************/
/* User Variables */
int xPos = 100;
int yPos = 100;
int width = 100;
int height = 100;
/********************************/
};
/******************************************************************************************
* Chili DirectX Framework Version 16.07.20 *
* Game.cpp *
* Copyright 2016 PlanetChili.net <http://www.planetchili.net> *
* *
* This file is part of The Chili DirectX Framework. *
* *
* The Chili DirectX Framework is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
* *
* The Chili DirectX Framework is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with The Chili DirectX Framework. If not, see <http://www.gnu.org/licenses/>. *
******************************************************************************************/
#include "MainWindow.h"
#include "Game.h"
Game::Game( MainWindow& wnd )
:
wnd( wnd ),
gfx( wnd )
{
}
void Game::Go()
{
gfx.BeginFrame();
UpdateModel();
ComposeFrame();
gfx.EndFrame();
}
void Game::UpdateModel()
{
/*if (wnd.kbd.KeyIsPressed(VK_LEFT));
{
}
if (wnd.kbd.KeyIsPressed(VK_RIGHT))
{
}
if (wnd.kbd.KeyIsPressed(VK_DOWN))
{
}
if (wnd.kbd.KeyIsPressed(VK_UP))
{
}*/
}
void Game::ComposeFrame()
{
for (int y = yPos; y < (yPos + height); y++)
{
for (int x = xPos; x < (xPos + width ; x++)
{
gfx.PutPixel(x, y, 255, 255, 255);
}
}
}
I've encountered this problem many many times in the past. We used to refer to this years ago as an IVI error. In the past, I've tried many things such as renaming the variable to something else, but it rarely works. Usually, I get bored and give up. I'm trying very hard not to do that this time. Thank you in advance for anyone who can give any information toward resolving this issue.
The first point yPos is throwing the error is on 111. I do see the missing closing paren on 113. Thank you for that. I re-downloaded his framework and recreated the program, and it worked. I only had to add xPos, yPos, width and height to the header file, and then mess with the loops in ComposeFrame. I would still like to know why yPos was reporting as undefined, so I'll leave this thread open...