2012-04-11 7 views
0

私はアンドロイドゲームをスムーズに実行していますが、レベルアップには至りません。 私はこの警告も受け取ります: 説明リソースパスの場所のタイプ 型の安全性:addElement(Object)メソッドは、生の型のVectorに属します。ジェネリック型ベクトルへの参照はLevelManager.java/FROZEN BUBBLES/SRC/ORG/bigdaddyapp /アンドロイド/ frozenbubblesは32 Javaの問題java.vector/android sdk

import android.os.Bundle; 
import java.util.Vector; 

public class LevelManager { 
private int currentLevel; 
private Vector levelList; 

public void saveState(Bundle map) { 
    map.putInt("LevelManager-currentLevel", currentLevel); 
} 

public void restoreState(Bundle map) { 
    currentLevel = map.getInt("LevelManager-currentLevel"); 
} 

public LevelManager(byte[] levels, int startingLevel) { 
    String allLevels = new String(levels); 

    currentLevel = startingLevel; 
    levelList = new Vector(); 

    int nextLevel = allLevels.indexOf("\n\n"); 
    if (nextLevel == -1 && allLevels.trim().length() != 0) { 
     nextLevel = allLevels.length(); 
    } 

    while (nextLevel != -1) { 
     String currentLevel = allLevels.substring(0, nextLevel).trim(); 

     levelList.addElement(getLevel(currentLevel)); 

     allLevels = allLevels.substring(nextLevel).trim(); 

     if (allLevels.length() == 0) { 
      nextLevel = -1; 
     } else { 
      nextLevel = allLevels.indexOf("\n\n"); 

      if (nextLevel == -1) { 
       nextLevel = allLevels.length(); 
      } 
     } 
    } 

    if (currentLevel >= levelList.size()) { 
     currentLevel = 0; 
    } 
} 

private byte[][] getLevel(String data) { 
    byte[][] temp = new byte[8][12]; 

    for (int j = 0; j < 12; j++) { 
     for (int i = 0; i < 8; i++) { 
      temp[i][j] = -1; 
     } 
    } 

    int tempX = 0; 
    int tempY = 0; 

    for (int i = 0; i < data.length(); i++) { 
     if (data.charAt(i) >= 48 && data.charAt(i) <= 55) { 
      temp[tempX][tempY] = (byte) (data.charAt(i) - 48); 
      tempX++; 
     } else if (data.charAt(i) == 45) { 
      temp[tempX][tempY] = -1; 
      tempX++; 
     } 

     if (tempX == 8) { 
      tempY++; 

      if (tempY == 12) { 
       return temp; 
      } 

      tempX = tempY % 2; 
     } 
    } 

    return temp; 
} 

public byte[][] getCurrentLevel() { 
    if (currentLevel < levelList.size()) { 
     return (byte[][]) levelList.elementAt(currentLevel); 
    } 

    return null; 
} 

public void goToNextLevel() { 
    currentLevel++; 
    if (currentLevel >= levelList.size()) { 
     currentLevel = 0; 
    } 
} 

public void goToFirstLevel() { 
    currentLevel = 0; 
} 

public int getLevelIndex() { 
    return currentLevel; 
} 

}

Eclipse環境のために

答えて

0

あなたがいないの警告を取得し、ラインパラメータ化されなければなりませんジェネリックを使用する必要がありますので、代わりに

private Vector<byte[][]> levelList; 

を使用してください。

代わりに、Eclipse環境設定で警告をオフにすることもできますが、推奨しません。警告はあなたを助けるためのものです。

byte[][]の代わりにLevelのクラスを作成することをおすすめします。

+0

ありがとうございます、それは正しい軌道に乗ります –