![](/img/trans.png)
[英]My java game runs in eclipse, but once exported it “can't find LWJGL” and won't run
[英]can't find solution for my Java Game
為了上學,我必須做一個已經存在的游戲。 這是游戲的鏈接 : 游戲鏈接
簡短說明:您收到的每個級別(在屏幕右側)都有一組箭頭,您可以將它們放置在屏幕上,當您按下“開始”按鈕時,母牛開始移動。 當他在箭頭上移動時,他將沿該箭頭的方向改變方向。 因此,您必須使用箭頭將母牛引導到他的最終目的地(獎杯),而不要碰到任何障礙物(例如牆壁或樹木...)。
我們必須實現Model-View-Presenter設計模式。 所以我從我的模型開始,因為那是我的游戲邏輯。
我的問題:在我的等級示例下,每個等級都應使用簡單的.txt文件讀取:
26,6
xxxxxxxxxxxxxxxxxxxxxxxxxx
xGRGGBGxGGRGGGGGGGGGGBGGTx
xGGGGRGGGGFGxGGGGGGGGGGGGx
xGFGGLGGGGGGGLGGGGGGGGGGGG
xGGGGSGGGxGGGGGGxGGGGGGGGx
xxxxxxxxxxxxxxxxxxxxxxxxxx
x=obstacle
G=grass
T=trophy
S= Start position of the cow
L= Fixed left arrow
R= Fixed right arrow
F= fixed front arrow
B= fixed back arrow
我讀取了文件,並使用case語句將每個字符放在2D數組的一行中(每個字符代表一個對象)。
我的問題是:您有2組箭頭:FixedArrow(它已經在字段上,您不能更改其位置)和VariableArrow(屏幕右邊的箭頭,用戶可以將它們放置在字段,如果該字段是免費的,或者如果該字段位於Grass對象上,則換句話說,但是我該怎么做?如何創建一個單獨的屏幕,在其中可以放置用戶可以放置在該字段上的箭頭?
我知道我的解釋含糊不清,所以我希望你們打開我上面發布的鏈接並打1級,這樣您才能更好地理解我的意思。
我將在下面發布我的代碼和類圖的一部分。 path =是我在上文中解釋的.txt文件的路徑。
public class Board {
private Tile[][] tiles;
public Board(Path path) {
try {
int yRow = 0;
Scanner scanner = new Scanner(path);
String[] split = scanner.nextLine().split(",");
tiles = new Tile[Integer.parseInt(split[1])][Integer.parseInt(split[0])];
while (scanner.hasNext()) {
String line = scanner.nextLine();
for (int xRow = 0; xRow < line.length(); xRow++) {
char character = line.charAt(xRow);
switch (character) {
case 'x':
tiles[yRow][xRow] = new Tile(new Obstacle());
break;
case 'G':
tiles[yRow][xRow] = new Tile(new Grass());
break;
case 'S':
tiles[yRow][xRow] = new Tile(new Grass());
//cow.setStartPosition(xRow,yRow);
break;
case 'L':
tiles[yRow][xRow] = new Tile(new FixedArrow(Direction.LEFT));
break;
case 'R':
tiles[yRow][xRow] = new Tile(new FixedArrow(Direction.RIGHT));
break;
case 'F':
tiles[yRow][xRow] = new Tile(new FixedArrow(Direction.FRONT));
break;
case 'B':
tiles[yRow][xRow] = new Tile(new FixedArrow(Direction.BACK));
break;
case 'T':
tiles[yRow][xRow] = new Tile(new Trophy());
break;
//How should i read a set of arrows in without placing them in the game field but on the right side of the screen
}
}
++yRow;
}
} catch (IOException e) {
e.getMessage();
}
}
}
您只需要使用輸入掃描儀或其他工具設置可變箭頭。 可變箭頭應位於二維數組中。 您需要將輸入中的可變箭頭坐標與數組中這些點處的符號進行比較,並檢查是否可以在其中放置新箭頭或是否不允許使用。 如果允許,則用新的箭頭符號替換該符號,或者重新使用固定的箭頭符號。
希望我能正確理解您的問題,這對您有所幫助:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.