2d画面でボートを使ってゲームを作成しようとしていて、画面から外れてしまうとラップするようにしたい。サイドスクロールゲームのようにラップする方法
public static void placeBoat (char [][] boat,int x, int y){
for(int row = 0; row < boat.length; row++){
if(row==x){
for(int column = 0; column < boat[row].length; column++){
if(column==y){boat [x][y] = '>';
boat [x][y-1] = '=';
boat [x][y-2] = '|';
boat [x][y-3] = '|';
boat [x][y-4] = '=';
boat [x][y-5] = '<';
}
}
}
}
}
だから例として、これは私がこれらの座標を取得するときに何が起こるかであり、これはそれが左に船の前部がプリントされ、その後、船の残りの部分が印刷された参照座標prints.Theものですそれの。
1,18,
6,19,
2,6,
5,8,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~<=||=>~~~~~~~~~~~~~
~<=||=>~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~<=||=>~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~<=||=>~~~~~~~~~~~~
座標の一つが5少ないしyの値として持っている場合は、これを行う方法を把握しようとしているが、私が午前問題その後、船の他の部分が画面から外れになるので、それは私がyが4の場合のようにoutofbounds例外を取得すると、4-5になり、範囲外の例外が発生します。 if(y < 5)を実行し、それについて別個の陳述を行うつもりでしたが、yが4,3,2,1および0の場合にはそれを行わなければなりませんでした。ありがとう!
ボート全体またはその個々の文字は何ですか? –
ボート全体ではなく個性的なキャラクターなので、ボートのコードが0,1の場合、最初の行は次のようになります。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ =範囲外になった部分だけが折り返します –
次に座標をインクリメントした後にモジュロを使用します。見てみましょう:https://codereview.stackexchange.com/questions/58063/screen-wraparound –