好吧,我的問題是: 我正在做2D遊戲(就像馬里奧兄弟)..我被卡在角色動作 我得到了鑰匙的實施。並得到了一個簡單的四方來測試運動......但它並沒有按照我想要的方式工作。一個2D角色的動作只能在一個方向上工作
當我按'a'我的四個移動向左移動,當我按'w'我的四個移動向上..簡單但它的作品 但如果我按'd'我的四個不會移動對..它只是以某種方式消失,雖然我已經完成了與左鍵相同的方式..並刪除左鍵,看看它是否影響x的運動沒有幫助
在此先感謝..希望你們有一個想法..我很困惑
- 正如我所說..其他鍵工作..但按d不會移動四邊形 -xpos是GLfloat,我也試過浮動..沒有變化 - 按d使我的四重奏消失一些reaso ñ
if (active){
if (keys[VK_ESCAPE])
{
done=TRUE;
}
if (keys['W'])
{
if(!toggle)
{
ypos=ypos+1.0;
toggle=1;
}
}
if (!keys['W'])
{
ypos=0.0;toggle=0;
}
if (keys['A'])
{
t_key=1;
xpos1=xpos1-0.1f;
}
if (keys['D'])
{
t_key=0;
xpos2=xpos2-0.1f;
}
else
{
DrawWorld();
DrawChar();
SwapBuffers(hDC);
}
}
int DrawChar(GLvoid){
glLoadIdentity(); // Reset The Current Modelview Matrix
GLfloat xtrans;
if(t_key){
xtrans=xpos1;
xpos2=xpos1;
}
else{
xtrans=xpos2;
xpos1=xpos2;
}
GLfloat ytrans=ypos;
glTranslatef(0.0f,0.0f,-30.0f); // move 5 units into the screen
glTranslatef(xtrans,ytrans,0.0f);
...
CONLUSION
,如果有任何人有同樣的問題..和他只讀訥河的TUTS幾代替做所有的經驗教訓......(他用if來逃避,其中工程) 這裏是什麼ü可能得到錯誤..把平局的功能和swapbuffers的其他外和刪除..將無法正常工作,否則
和日Thnx的快速回答 解決方案:
if (active){
if (keys[VK_ESCAPE])
{
done=TRUE;
}
if (keys['W'])
{
if(!toggle)
{
ypos=ypos+1.0;
toggle=1;
}
}
if (!keys['W'])
{
ypos=0.0;toggle=0;
}
if (keys['A'])
{
t_key=1;
xpos1=xpos1-0.1f;
}
if (keys['D'])
{
t_key=0;
xpos2=xpos2-0.1f;
}
DrawWorld();
DrawChar();
SwapBuffers(hDC);
omg ...我現在覺得很尷尬^^我剛剛刪除了其他的東西,它的工作原理..非常感謝你..它總是一樣的..我想太複雜了 – Stryke 2011-04-09 19:21:59