[英]Why won't my lines move?
好的,所以我要调用一个绘制三行以在屏幕上显示“ I”的函数。 然后,我调用另一个函数,该函数调用此函数,但在x变量上加1以使字母加粗。 然后,我想在“ tick”函数中添加x ++ add,该函数执行每一帧。 它不起作用,但是为什么呢? 如果您不明白我的意思,请查看此页面,这是我正在关注的教程: 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);
DrawI
中x
和y
的值永远不会改变,它们始终只是这些固定值,而不是全局变量,因此,即使您的全局x
发生了变化, Line
也会始终传递相同的值。
为了避免这种情况,我将提出两项建议:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.