2012-08-14 2 views
1

Board 클래스의 배열 텍스처 [] (텍스처 클래스 int에 위치)의 변수를 사용할 수 있어야합니다. 그러나 나는 그 일을 어떻게 처리 할 것인지 생각할 수 없다.다른 클래스의 배열 텍스처를 어떻게 사용할 수 있습니까?

이것은 자바의 텍스처에 텍스처를 추가하는 방법을 알아 내려고 노력하고 있습니다. 게임을 만드는 법을 배우려고합니다. 그래서 나는 아주 noobish 하하.

난에 텍스쳐 [] 배열을 사용하고자하는 클래스이다.

import java.awt.Color; 
import java.awt.Font; 
import java.awt.Graphics; 
import java.awt.Image; 
import javax.swing.ImageIcon; 
import javax.swing.JPanel; 

public class Board extends JPanel{ 

    public Board(){ 

    } 

    public void paint(Graphics g){ 
     g.drawImage(texture[1], 0, 0, null); 
     g.setFont(new Font("Verdana", 0, 50)); 
     g.setColor(Color.YELLOW); 
     g.drawString(": FPS", 20, 50); 
    } 

    public void update(){ 
     repaint(); 
    } 
} 

이 텍스쳐 [] 배열을 생성하는 클래스이다. 또 다른 방법으로

texturesClassInstance.texture; 

: 당신의 texture 변수가 공개로

import java.awt.image.BufferedImage; 
import java.io.IOException; 
import java.net.URL; 
import javax.imageio.ImageIO; 
import javax.swing.ImageIcon; 

public class Textures { 

    BufferedImage img; 
    private int w, h; 
    public int id[]; 
    public Image texture[]; 

    public Textures() throws IOException { 
     URL url = this.getClass().getResource("Resources/Textures.png"); 
     img = ImageIO.read(url); 
     w = 0; 
     h = 0; 
     for(int i1 = 0; i1 < 16; i1++){ 
      texture[i1] = img.getSubimage(w, h, 16, 16); 
      id[i1] = i1; 
      w += 16; 
      h += 16; 
     } 
    } 
} 

답변

1

바로 수행 Board 클래스

public class Board extends JPanel{ 

    public void someMethod(){ 

     Textures texturesClassInstance = new Textures(); 

     Image image1 = texturesClassInstance.texture[0]; 
     Image image2 = texturesClassInstance.texture[1]; 

     //do something with image1 and image2 
    } 
} 

하지만 최고의 private로 선언하고 만드는 것입니다 같은 방법 :

public class Textures { 

    // more variables 
    private Image texture[]; 

    // more code 

    public Image[] getTextures(){ 
     return this.texture; 
    } 

} 
+0

getTextures 메서드를 추가하고 Board.java에 Image [] 텍스처를 추가했지만, Board 클래스의 im에 언제든지 texture = Textures.getTextures(); getTextures는 정적 일 필요가 있지만 프로그램을 실행할 때 더 많은 오류가 발생합니다. – user1598967

+0

'Textures texturesClassInstance = new Textures();'와'TexturesClassInstance.getTextures()'와 같이 Textures 클래스의 인스턴스가 필요합니다. – elias

관련 문제