ゲームオブジェクトの各タイプが特定のrgb値に割り当てられるプラットフォームゲームを作成しましたので、ペイントと読み込みで描画することでレベルを作成できます画像。今は最初の2つのレベルが既にロードされており、3番目のレベルのパスをテキストフィールド入力で取得し、カスタム3番目のレベルをロードできます。各レベルには、レベルのpng画像へのパスと、次のレベルに進むために必要なコインの数が必要です。私は各レベルが1つのテキストファイルからすべてのレベルをロードしたいと思っています。各行には、レベル番号、イメージパス、およびコインの数が含まれている可能性があります。私はそれをカスタマイズできるようにして、ユーザが私のカスタマイズメニューの3つのテキストフィールドを介してこれらのパラメータを追加するだけで、レベルを追加または変更できるようにしています。この方法でもデザイナーがレベルを作成するのを助け、テキストファイルから読み込むことで、20以上のレベルがあるときに長期的にコードが少なくなると思います。このファイルからどのようにロードして追加することができますか?ここで私が今作業しているものは次のとおりです:テキストファイルから画像とデータを読み込んでそれに追加する(Java)
public static BufferedImageLoader loader = new BufferedImageLoader();
public Handler(Camera cam){
this.cam = cam;
level1 = loader.loadImage("/level1.png");
level2 = loader.loadImage("/level2.png");
}
public void changeLevel(){
clearLevel();
cam.setX(0);
Player.coinCount = 0;
if(Game.LEVEL == 1){
Player.maxCoins = 4;
LoadImageLevel(level1);
}
if(Game.LEVEL == 2){
LoadImageLevel(level2);
Player.maxCoins = 11;
}
if(Game.LEVEL == 3){
System.out.println(Data.levelPath);
try{
level3 = loader.loadImage(Data.levelPath);
LoadImageLevel(level3);
} catch (Exception e) {
e.printStackTrace();
System.out.println("error loading custom level");
}
}
}
public Menu(Game game, Handler handler){
this.handler = handler;
pathField = new JTextField(10);
levelField = new JTextField(10);
coinField = new JTextField(10);
if(Game.gameState == STATE.Menu){
int selection = JOptionPane.showConfirmDialog(
null, getPanel(), "Input Form : "
, JOptionPane.OK_CANCEL_OPTION
, JOptionPane.PLAIN_MESSAGE);
if(selection == JOptionPane.OK_OPTION) {
Data.levelPath = pathField.getText();
Data.level = levelField.getText();
Data.coinAmount = Double.valueOf(coinField.getText());
System.out.println(Data.levelPath + Data.level + Data.coinAmount);
}
}
private JPanel getPanel(){
JPanel basePanel = new JPanel();
basePanel.setOpaque(true);
JPanel centerPanel = new JPanel();
centerPanel.setLayout(new GridLayout(3, 2, 5, 5));
centerPanel.setBorder(
BorderFactory.createEmptyBorder(5, 5, 5, 5));
centerPanel.setOpaque(true);
JLabel mLabel1 = new JLabel("Enter path: (e.g., /level1.png) ");
JLabel mLabel2 = new JLabel("Enter which level to load the image in: ");
JLabel mLabel3 = new JLabel("Enter the amount of coins you must collect");
centerPanel.add(mLabel1);
centerPanel.add(pathField);
centerPanel.add(mLabel2);
centerPanel.add(levelField);
centerPanel.add(mLabel3);
centerPanel.add(coinField);
basePanel.add(centerPanel);
return basePanel;
}
アイデアや提案はありがとうございます! 1#path#20
として
を取得LoadImageLevel(level [i])、独自のファイルと配列のコインについても同じことをしますか? –