2016-07-19 6 views
-1
int move_player() { 
    if (GetAsyncKeyState(VK_RIGHT) && current_x<max_x) { 
     int old_x = current_x; 
     int new_x = current_x+1; 
     path[old_x] = '_'; 
     path[new_x] = player; 
     system("cls"); 
     cout << endl; 
     for (int a=0; a <= 9; a++) { 
      cout << path[a]; 
     } 
    } else if (GetAsyncKeyState(VK_LEFT) && current_x>min_x) { 
     int old_x = current_x; 
     int new_x = current_x-1; 
     path[old_x] = '_'; 
     path[new_x]=player; 
     system("cls"); 
     cout << endl; 
     for (int b = 0; b <= 9; b++) { 
      cout << path[b]; 
     } 
    } 
    return current_x; 
} 

大量のコードは、オブジェクトの周囲を移動するだけです(右または左のみ)。左端のオブジェクトを表示することから始まり、それを1回右に移動できますが、右または左のキーを押しても何もしません。 どうすれば解決できますか?配列の表示でエラーが発生する

+3

どこでも 'current_x'を変更するようなことはありませんか? –

答えて

0

どうすれば解決できますか?

if-elseブロックの周りにwhileループを使用する必要があります。呼び出し元の関数でwhileループで

または

コールmove_player

+0

これは私がやったことですが、それでも動作しません。 –

+0

はメインの中にあります: 'while(true){current_x = movePlayer(); } '?いいえ? –

+0

@TimStraubinger、その仕事のために、 'move_player'から返された値は' new_x'でなければなりません。それが問題の原因かもしれません。 –

関連する問題