为什么我的线条不会移动?
Why won't my lines move?
好了,我调用了一个函数,它绘制了三条线来在屏幕上显示一个'I'。然后,我调用另一个函数,它调用这个函数,但是给变量x加1把这个字母加粗。然后我想把x++添加到'tick'函数中,它会执行每一帧。它不起作用,但为什么呢?如果你不明白我的意思,请查看这个页面,这是我所遵循的教程:http://www.devmaster.net/articles/intro-to-c++-with-game-dev/part3.php
声明全局x和y并调用函数tick:
int x = 0;
int y = 0;
void Game::Tick( float a_DT )
{
m_Screen->Clear( 80 );
DrawI(0,0);
x++;
}
生产函数:
void Game::DrawI(int x, int y)
{
m_Screen->Line( 100 + x, 50 + y, 200 + x, 50 + y, 0xffffff );
m_Screen->Line( 150 + x, 50 + y, 150 + x, 300 + y, 0xffffff );
m_Screen->Line( 100 + x, 300 + y, 200 + x, 300 + y, 0xffffff );
}
void Game::DrawFatI()
{
DrawI(1,0);
DrawI(0,1);
DrawI(0,0);
DrawI(1,1);
}
当你调用DrawI时,它有x
和y
作为参数传递给它:
void Game::DrawI(int x, int y)
这些掩码全局的x
和y
,这样在DrawI
里面你说的x
和y
都是指函数参数。(您可以使用::x
和::y
访问全局文件)。
因为你总是用字面量调用DrawI
,而不是变量,例如DrawI(1,0);
, x
和y
在DrawI
中的值永远不会改变,它们总是这些固定的值,而不是全局变量,因此Line
总是传递相同的值,即使你的全局x
已经改变。
- 不要有多个同名的变量,其中一个掩盖了另一个
- 不要使用全局变量,除非有好的理由。(据我所见,这似乎不是一个)
相关文章:
- C++ - 块不移动,我的数组不起作用
- 将内容从第一个文件("constituencies")移动到第二个文件("temp")并在之后重命名时,我的文件被删除
- 我应该使我的局部变量常量还是可移动的
- 在我的小行星游戏中,我无法在x坐标上移动我的飞船
- 为什么我的蛇只向上移动
- 为什么在我的代码中调用复制构造函数而不是移动构造函数?
- 我的移动分配操作程序重载的分段错误
- 在C++中,我的主机游戏角色在游戏场数组内移动时不会停止
- 尽管传递了一个右值,为什么我的移动构造函数没有被调用?
- QT QTest::键单击或鼠标移动似乎不适用于 QMenu 在我的情况下
- 擦除矢量中的对象时出错.如何将移动作业运算符添加到我的类中
- 为什么在这种情况下不调用我的移动构造函数?(首先分配 r 值引用并创建对象)
- 为什么我的元素在移动
- OpenGL - 为什么我的球不移动?
- 每次复制实现移动分配的非 const 对象时,我是否总是获得移动语义
- 在Visual Studio中,我不想提交我的Debug文件夹,但它中有dll文件,如果我移动它,项目将无法编译
- DirectX 11 移动我的正方形
- 当我移动我的精灵时,它一直从窗户掉下来
- DirectX 9.0(世界坐标移动我的对象(三角形)动画
- 为什么我无法移动我的 3D 立方体?OpenGL