Как поставить картинку на объект в Java? - PullRequest
0 голосов
/ 05 ноября 2019

Ну, я пытаюсь сделать объект изображением, объектом, который входит в ArrayList. Но я не знаю, как это сделать. Я пробовал несколько методов, но ни один из них, которые я пробовал, не работал. Как вы думаете, следует добавить? И мой объект называется Apple. Заранее спасибо


    public class Gamepanel extends JPanel {

     public void tick()
    {
         if(apples.size()==0)
        {
            //System.out.println(apples.size());
            int xC=r.nextInt(79);

            int yC=r.nextInt(79);

            apple=new Apple(xC,yC,10);
            apples.add(apple);
        }
        for(int i=0;i<apples.size();i++)
        {
            if(xC==apples.get(i).getxC()&&yC==apples.get(i).getyC())
            {   
                size++;
                score++;
                apples.remove(i);
                i++;

            }
        }
    }
    public void paint(Graphics g)
    {   

        //here I draw the snake and his food    
        if(State==STATE.GAME)
        {
            g.clearRect(0, 0, WIDTH, HEIGHT);
            g.setColor(Color.BLACK);
            g.fillRect(0,0,WIDTH,HEIGHT);
        //here i make my map of the game 

        for(int i=0;i<apples.size();++i)
        {
            apples.get(i).draw(g);
        }


}   

публичный класс Apple {

private int xC,yC,width,height;

BufferedImage ap=null;

public Apple(int xC,int yC,int titleSize) {

    this.xC=xC;
    this.yC=yC;
    width=titleSize;
    height=titleSize;   
}
//here i want to draw a picture for each my objects from ArrayList
public void draw(Graphics g) 
{

}

1 Ответ

0 голосов
/ 05 ноября 2019

Я не уверен, что вы имеете в виду, делая объект изображением ... Я не вижу кода с определением для яблока ...

Вы пробовали использовать текстуры? Вы можете легко создать массив Texture [], содержащий различные текстуры для использования.

Texture[] apples = new Texture[2];

apples[0] = new Texture("apple1.png");
apples[1] = new Texture("apple2.png");

Можно также использовать ArrayLists, но мой опыт работы с 2d-играми заключается в использовании libGDx (я предполагаю, что ваш пакет - graphics2D? С GDxВы можете ...

SpriteBatch batch = new SpriteBatch();

ArrayList<Texture> apples = new ArrayList<Texture>();

//add your textures, then draw using a SpriteBatch

batch.begin();
batch.draw([texture],xpos,ypos); batch.draw(apples.get(i), 150, 500);
batch.end();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...