[英]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.